010EC2DB-8E79-4ADF-8AF2-B50EF365C8E4

2.1 经验误差与过拟合

基本概念:

  • 错误率 error rate:分类错误的样本数占总样本数的比例。如,在m个样本中有a个样本分类错误,则错误率E=a/m。
  • 精度 accuracy:精度=1-错误率。如,续上,精度=1 - a/m。
  • 误差 error:学习器的实际预测输出与样本真实值之间的差异。
  • 训练误差 training error / 经验误差 empirical error:学习器在训练集上的误差。
  • 泛化误差 generalization error:学习器在新样本(除训练集之外的样本)上的误差。

  • 过拟合 overfitting / 过配:学习器把训练样本学得“太好”了,很可能把训练样本特有的性质当做所有潜在样本具有的一般性质,以致于泛化性能下降。学习器学习能力过于强大。

  • 欠拟合 underfitting / 欠配:学习器对样本的普遍性质尚未学习完全。学习器的学习能力不足。

机器学习的目标: * 学习的泛化误差小,即学习器对新样本的预测效果好。

过拟合是机器学习面临的关键障碍,只能“缓解”不可“避免”

过拟合是机器学习面临的关键障碍,各类学习算法都带有一些针对过拟合的措施;然而必须认识到,过拟合无法彻底避免,我们能做的只是“缓解”,或者说减小其风险。关于这一点,可以大致这样理解:机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成的,若可彻底避免过拟合,则通过经验误差最小化就能获得最优解,这就意味着我们构造性地证明了“P=NP”;因此,只要相信“P≠NP”,过拟合就不可避免

2.2 评估方法

在现实任务中,我们往往有多种算法可以选择,甚至对同一个算法,当使用不同的参数配置时,也会产生不同的模型。“选什么样的模型、使用哪种参数配置?”就是机器学习中的“模型选择”( model selection )问题。自然地,理想的解决方案是对不同算法、不同参数配置的模型进行评估,选择泛化误差最小的那个模型。但泛化误差无法直接获取,而经验误差由于过拟合的存在不适合作为评判标准。那么,在现实任务中应该如何选择呢?

“测试误差”近似“泛化误差”

概念: * 测试集 testing set:从样本真实分布中独立同分布采样得到的样本的集合。

注意:测试集应尽量与训练集互斥,即测试集中应尽量不出现训练集中已有的样本。 原因:测试集越是和训练集接近,其测试效果越没有说服力。如,老师上课讲了10道例题,考试时考的就是这10道原封不动的例题,自然没有办法测试出学生的真实水平,反映不出学生学得好不好。训练样本相当于练习题、例题,测试样本相当于考试题。老师都希望学生在学习上能够“举一反三”,就像我们希望训练的模型泛化能力强一样。

  • 测试误差 testing error:训练好的学习器对测试集中样本的预测值与测试集样本的真实值的误差。

但是,实际情况中,我们往往只有一个数据集。若全用来训练学习器,就没有多余的数据用来测试。同时,我们也很难保证在一样的条件下在总体中重新采样,获得新的样本。为了解决既要训练又要测试的问题,我们通常用一定的方法将数据集D划分为训练集S和测试集T,用于训练和测试模型。

2.2.1 留出法 hold-out

方法:

  • 直接将数据集D划分为两个互斥的集合,训练集S和测试集T。
  • T ∪ S = D 且,T ∩ S = ∅。

举🌰: 以二分类任务为例,假定D包含1000个样本,将其划分为S包含700个样本,T包含300个样本。用S进行训练后,如果模型在T上有90个样本分类错误,那么其错误率为$(90300)×100%=30%$,相应的,精确度为$1-30%=70%$。

注意:

  1. 训练/测试集的划分要尽可能保证数据分布的一致性,避免因数据划分产生额外偏差而影响模型准确性。 56BC7BED-24C4-4EC1-AEF5-8DE7C9DA1278

  2. 即使给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。一般采用若干次随机划分、重复实验后取平均值作为留出法的评估结果。 9E8DAD85-DDAF-447E-A725-A40172702E16

  3. 训练/测试集的比例会影响模型的评估效果。 若训练集S包含大多数样本,则训练出的模型可能更接近用D训练出的模型,但由于T较小,评估结果可能不够准确;反之,训练出的模型可能偏差较大,降低了评估结果的保真性( fidelity )。(从“偏差-方差”角度理解:测试集较小时,评估结果方差较大;训练集较小时,评估结果的偏差较大)该问题没有完美解决方案,通常做法是将2/3 ~ 4/5的样本用于训练,其余用于测试。一般而言,测试集应至少包含30个样例

2.2.2 交叉验证法 cross validation

方法:

  1. 将数据集D划分为k个大小相似的互斥子集,每个子集偶尽可能保证数据分布的一致性(分层采样)。($D=D_1 \cup D_2 \cup D_3 \cup \cdots \cup D_k, D_i \cap D_j = \varnothing ( i \neq j ) $)
  2. 每次用$k-1$个子集作为训练集$S$,$1$个子集作为测试集$T$;获得$k$组训练/测试集,做$k$次训练和测试;
  3. 返回$k$次测试结果的平均值。

注意:

  1. k折交叉验证法”(k-fold cross validation) k的取值很大程度上决定了交叉验证法评估结果的稳定性和保真性,因此得名如上。
  2. 最常用k=10,此时称为“10折交叉验证”;k=5, 20也较常用。 23BF683D-2637-4C49-B105-EA003A8072E2
  3. p次k折交叉验证 类似留出法,将数据集$D$划分为$k$个子集也有多种划分方式。为减小因样本划分不同而引入的误差,$k$折交叉验证通常要随机使用不用的划分$p$次,最终结果取这$p$次的均值。如,常见的有“10次10折交叉验证” ( $k = 10, p = 10 $)。 ( P.S. “10次10折交叉验证法”与“100次留出法”均进行了100次的模型训练。)
  4. 留一法 (Leave-One-Out, LOO) 假定数据集D中包含m个样本,若令k=m, 即得到“留一法”,是交叉验证法的特例。

    • 优点:
      • 不受样本划分方式的影响。因为每次划分为m-1个样本和1个样本只有一种方式。
      • 评估结果往往较准确。因为测试集只有1个样本,所以训练集的m-1个样本训练处的模型与直接用数据集D训练出的模型十分接近。
    • 不足:
      • 计算开销大。在数据集D较大时尤其明显。
      • 估计结果未必永远优于其他方法。(“没有免费午餐”定理。)

2.2.3 自助法 Bootstrapping

前两种方法的缺陷:

  1. 留出法、交叉验证法存在因训练样本规模不同引入的偏差。两种方法均保留了一部分样本做测试,因此实际评估的模型使用的训练集比D小(我们希望评估的是用D训练出的模型)。
  2. 留一法受样本规模影响小,但计算复杂度太高
  3. 在数据集D规模较小时难以划分,更适用于数据集足够的学习任务。

自助法的优势:

  1. 减少因训练样本规模不同造成的影响。
  2. 较为高效地进行实验估计。
  3. 在数据集较小、难以有效划分训练/测试集时很有效。
  4. 能从初始数据集中产生多个不同训练集,对集成学习等方法有很大好处。

方法:

  • 基础:自助采样法 bootstrap sampling

给定包含$m$个样本的数据集$D$,对其采样产生数据集$D’$:

  1. 每次随机从$D$中挑选一个样本,将其拷贝放入$D’$中;
  2. 将刚刚挑选的样本放回,使其在下次采样中仍可能被取到;
  3. 重复2、3步$m$次,得到包含$m$个样本的数据集D’。

注意:

  1. $D$中部分样本会多次出现在$D’$中,同时有部分样本不会出现27940521-A28F-4224-864D-B7AF55393D74

  2. 将$D’$用作训练集,$D/D’$用作测试集,则实际评估的模型与期望评估的模型都有$m$个样本。同时我们仍有占总数约$13$的、没在训练集中出现的样本作为测试。这样的结果称为“包外估计” (out-of-bag estimate)

2.2.4 调参 & 最终模型

调参 parameter tuning:对模型中的参数进行设定和调节。

注意:

  1. 很多参数是在实数范围内取值,对每个值都计算出来不现实;
  2. 很多强大的学习算法有大量参数需设定,以至于在不少应用任务中,参数调的好不好往往对最终模型性能有关键影响。

P.S.机器学习常涉及两类参数: 一类是算法的参数, 亦称”超参数”, 数目常在10以内; 另一类是模型的参数, 数目可能很多, 例如大型“深度学习”模型甚至有上百亿个参数. 两者调参方式相似, 均是产生多个模型之后基于某种评估方法来进行选择; 不同之处在于前者通常是由人工设定多个参数候选值后产生模型, 后者则是通过学习来产生多个候选模型(例如神经网络在不同轮数停止训练).

常用方法:

  1. 对每个参数选定一个范围和变化步长;
  2. 分别用每个参数候选值训练模型,得出不同模型;
  3. 根据学习任务的要求,从候选值中选定最终参数值。

举🌰: 如,在[0, 0.2]范围内以0.05为步长,则实际要评估的候选参数值有5个。

常用方法的不足:

  • 选定的参数值往往不是“最佳”的,但这是在计算开销和新更估计之间进行折中的结果,通过这个折中,学习过程才变得可行。
  • 即便如此,调参仍很困难。
  • 如:假定算法有3个参数,每个参数考虑5个候选值,则对每组训练/测试集有5^3 = 125个模型需要考察。

最终模型: -w619 795F79A6-8888-4E1E-9407-52C11CDECFA4

区分验证集与测试集

测试集: 学得模型在实际使用中遇到的数据成为测试数据,它们组成的集合称为“测试集”。

验证集: 模型评估与选择中用于评估测试的数据集常称为“验证集”(validation set)。

举🌰: 0FCB79CD-6B30-446C-AFCA-57F17C72E2AF

2.3 性能度量 performance measure

性能度量:

  • 是衡量模型泛化能力的评价标准;
  • 不同的性能度量会导致不同的评判结果,要依据任务需求选择。

比较什么?: 46A79283-59A0-4CDE-B144-3BD44CA26

回归任务常见的性能度量:

均方误差(mean square error) 184E3190-9184-4D82-8A8A-CC5258DAE9F3

分类任务常见的性能度量:

1. 错误率 & 精度

适用任务:二分类、多分类

符号

  • 离散:样例集 D
  • 连续:数据分布Ɗ,概率密度函数p(·)

错误率: -w623

精度: -w618

2. 查准率 precision、查全率 recall 与F1

适用任务:二 分类、多分类

错误率的缺陷:

不能表示“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑了出来”。 类似的,在信息检索中,问题如“检索出的信息中有多少比例是用户感兴趣的”,或者“用户感兴趣的信息中有多少被检索出来了”。

🔸对“二分类”问题:

可根据样本的真实类别与学习器预测类别的组合划分为:

  • 真正例 ( true positive ) :TP
  • 假正例 ( false positive ) :FP
  • 真反例 ( true negative ) :TN
  • 假反例 ( false negative ):FN 则分类结果的“混淆矩阵”如下: -w613

查准率P:(挑出来的瓜有多少比例是好瓜) $$P = \frac{TP}{TP+FP}$$

查全率R:(所有好瓜中有多少比例被挑出来了)Recall, Sensitivity $$R = \frac{TP}{TP+FN}$$

注意:查准率与查全率是一对矛盾的度量。即,一个高,另一个往往就偏低。 例如,若希望将好瓜尽可能多的选出来,则可以通过增加选瓜的数量实现。选了所有瓜,则所有好瓜都被选出来了。但这时所有坏瓜也都被选出来了,查准率会较低;若希望选出的瓜中好瓜的比例尽可能高,则可以只选择最有把握的瓜。但这时会漏掉不少好瓜,查全率低。通常在简单任务重,查准率和查全率才会都很高。

🔹P-R曲线 什么是P-R曲线?(如何绘制)

  1. 根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本。
  2. 按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。
  3. 以查准率为纵轴、查全率为横轴作图。

即得“查准率-查全率曲线”,简称“P-R曲线”,显示该曲线的图就是“P-R图”。示意图如下: 084E0DF7-66B5-45C8-8A8A-800CC0FE902

对P-R图的理解

在P-R图中,预测的第一个样本一定为正例,此时查准率=1,因为还有很多其他正例样本均被判断为反例,所以查全率≈0。在P-R图上画出第一个点,坐标为(0,1)。 随着预测样本的增加,分割正反例的阈值逐渐下降(大于阈值被预测为正例)。因此,被正确预测为正例的样本增加,即查全率R从0逐渐上升;同时,有一些反例也被预测成正例,即查准率P逐渐下降。 当阈值降到最后一个样本时,所有正例都被正确预测,查全率R=1;所有反例也被当做正例,查准率接近0。

识别P-R图:

  1. 曲线包围:若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。如,图中学习器A的性能优于学习器C。
  2. 曲线交叉:若两个学习器的P-R曲线发生交叉,则难以一般性断定孰优孰劣,只能在具体的查全率或查准率下比较。如,学习器A的曲线与学习器B的曲线。
  3. 比较面积:P-R曲线下的面积大小在一定程度上表征了学习器在查准率和查全率上取得相对“双高”的比例。(但是难以估计。由此设计了其他考核手段。)

🔹综合考虑查准率、查全率的性能度量: * 平衡点 (Break-Even Point, BEP): “$P = R$”时的取值。如图2.3,C的BEP是0.64;若用BEP比较,则可认为A优于B。

  • F1度量: $$F1 = \frac{2 \times P \times R}{P+R} = \frac{2 \times TP}{N + TP - TN}$$ $N$为样例总数。

  • $F_{\beta}$ 度量(表示出对查准率/查全率的不同偏好): $$F_{\beta} = \frac{(1+\beta^2 ) \times P \times R}{(\beta^2 \times P)+R}$$

查全率对查准率的相对重要性指标:$\beta$

  • $\beta > 0$;
  • $\beta > 1$,查全率®更重要;
  • $\beta < 1$,查准率(P)更重要。

F1是基于P与R的调和平均(harmonic mean)定义的: $$\frac{1}{F1} = \frac{1}{2} (\frac{1}{P} + \frac{1}{R})$$ $F{\beta}$ 度量是基于加权调和平均定义的: $$\frac{1}{F{\beta}} = \frac{1}{1+\beta^2} \cdot (\frac{1}{P} + \frac{\beta^2}{R})$$ (与算数平均$\frac{P+R}{2}$、几何平均相比$\sqrt{P \times R}$,调和平均更重视较小值。)

🔸对n个二分类混淆矩阵:

问题来源:

  • 进行多次训练/测试;
  • 在多个数据集上进行训练/测试;
  • 执行多分类任务,每两两类别的组合都对应一个混淆矩阵…

方法一(宏观):

  • 1️⃣ 在各混淆矩阵上分别计算P、R;
  • 2️⃣ 分别计算P、R平均值,得“宏查准率”(macro-P)、“宏查全率”(macro-R);
  • 3️⃣ 用宏查准率和宏查全率计算“宏F1”(macro-R)。 4AECB027-17E9-40FE-B227-507BB1923B

方法二(微观):

  • 1️⃣ 将各混淆矩阵的对应元素平均,得TP、FP、TN、FN的均值;
  • 2️⃣ 基于计算出“微查准率”(micro-P)、“微查全率”(micro-R);
  • 3️⃣ 用微查准率和微查全率计算“微F1”(micro-F1)。 -w627

总结

  • 宏观:先分别算,再算平均;
  • 微观:先平均,再算。

3. ROC与AUC

适用任务:

基于预测值分类问题。 (即,将生成的预测值与阈值比较,大于阈值则分为正类,小于则分为反类。)

举一个例子

如,神经网络在一般情形下是对每个测试样本预测出一个[0.0, 1.0]之间的实值,然后将这个值与0.5进行比较,大于0.5则判为正例,否则为反例。

基于预测值分类问题的本质:

  1. 将样本依据预测值排序,“最可能”是正例的在前,“最不可能”的在后;
  2. 寻找合适的“截断点”(cut point)将样本分为两部分;
  3. 正例为前一部分,反例为后一部分。

注意:

  • 重视“查准率”P则截断点靠前找,重视“查全率”R则靠后找。
  • 排序自身质量的好坏,体现了综合考虑学习器在不同分类任务下“期望泛化性能”的好坏,或“一般情况下”泛化能力的好坏。(⬅︎ ROC曲线的出发点。)

🔸ROC(Receiver Operating Characteristic)曲线

ROC起源:“二战”中用于敌机检测的雷达信号分析技术,二十世纪六七十年代开始被用于一些心理学、医学检测应用中,此后被引入机器学习领域。

什么是ROC曲线?(如何绘制)

  1. 根据学习器的预测结果对样例进行排序;
  2. 按此顺序逐个把样本作为“正例”进行预测,则每次可以计算出当前的“真正例率”(True Positive Rate, TPR)、“假正例率”(False Positive Rate, FPR);
  3. 以真正例率为纵轴(y)、假正例率(x)为横轴作图。

即得“ROC曲线”,示意图如下:

(对角线对应于“随机猜测”模型,而点(0, 1)对应于将所有正例排在所有反例之前的“理想模型”)

思考

(1)随机猜测:因为50%的可能性判断正确,所以样本排序为一正一反,依据有限样本推导,ROC曲线从原点开始,x增→ y增→ x增→ y增→ x增→…,直至(1,1)。 (2)所有正例排在所有反例之前: -w767

15D1EDA2-F4EB-42DF-B7B2-6A0610C3E062 DF99A872-7ECF-47B4-9589-34C13D2B04E1

TP+FN=m+,TN+FP=m-. 分母一定。

ROC曲线绘图,近似过程推导: -w1031

识别ROC图:

  1. 曲线包围:若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。
  2. 曲线交叉:若两个学习器的ROC曲线发生交叉,则难以一般性断定孰优孰劣。
  3. 比较面积:非要在交叉时比较,则比较ROC线下的面积大小。(即,AUC)

思考

  1. 曲线包围:依据“近似ROC曲线”的绘制过程可知,若判断为真正例,则曲线沿y轴向上;反之,则沿x轴向右。若一条ROC(A)完全包住另一条ROC(B),则说明A的样本排列中,正例在前的比B多。
  2. 曲线交叉:在不同段的样本排列中,有时A排列中正例在前多,有时B排列中正例在前多。
  3. 比较面积:相对来说,面积大说明整体来看,排在前的正例样本多。 C54DE194-8BED-4011-A51B-6C5845BF3568

🔸AUC (Area Under ROC Curve)

-w553

(见ex2.5)

4. 代价敏感错误率 & 代价曲线

优点:

对不同的分类错误考虑不同的代价,不一概而论。(前面的方法都把错误的代价视为一致的,隐式假设均等代价。)

非均等代价(unequal cost):

不同类型的错误所造成的后果不同,即代价不同。一般情况下,重要的是代价的比值。

例如: E03DEAB3-3E6D-4701-A314-64FDA7E55FA1

适用任务:二分类、多分类

以“二分类”为例,说明方法:

  1. 设定“代价矩阵” (cost matrix)。 (其中$cost{ij}$表示将第$i$类样本预测为第$j$类样本的代价。一般而言,$cost{ii}=0$;若$cost{01}>cost{10}$,则表示将第$0$类判断成第$1$类的损失更大;损失程度相差越大,$cost{01}$与$cost{10}$值的差别越大。) A59E1C30-A1AF-41B9-9370-6D345DA47CEB
  2. 计算“代价敏感”(cost-sensitive)错误率。 (在非均等代价下,目标是希望最小化“总体代价”(total cost),而不是错误次数。如,将表2.2中的第0类作为正类、第1类作为反类,令D+与D-分别代表样例集的正例子集和反例子集,则代价敏感错误率为: 395AFC84-CA76-467C-ACE0-8CBC563018ADC535C07F-612E-4A9C-8B70-F39046584735

  3. 画出“代价曲线”(cost curve)。 (代价曲线可直接反映出学习器的期望总体代价。)

  4. 横轴: 正例概率代价,取值范围为$[0, 1]$,其中$p$是样例为正例的概率。 50BA9670-B710-46CC-894E-F7F9A32D76

  • 纵轴: 归一化代价,取值范围为$[0, 1]$,其中$FPR$是假正例概率,$FNR=1-TPR$是假反例率。 9AAD0BFC-4CC9-484E-97BE-D81AAE5B0923

绘制步骤:

  1. ROC上找坐标:设ROC曲线上点的坐标为(FPR, TPR)(ROC曲线上的每一点对应了代价平面上的一条线段)
  2. 用坐标求FNR:根据该点的坐标计算出相应 的FNR;
  3. 代价平面画线段:在代价平面上绘制一条从(0, FPR)到(1, FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;
  4. 重复以上步骤,将ROC曲线上的每一点都转化为代价平面上的一条线段;
  5. 所有线段取下界:取代价平面上所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。(示意图如下:) 588C47F9-3E00-4BBC-94A2-64ECD0E2F258

2.4 比较检验

对学习器性能比较的难点:

  1. 希望比较的是“泛化性能”。通过实验评估的方法获得的是测试集上的性能,两者对比结果未必相同。(“测试误差”估计“泛化误差”)
  2. 学习器在测试集上的性能与测试集自身有关。测试集的大小会影响测试性能,即便是同一大小的测试集,包含的样例不同也会有不同的结果。
  3. 很多学习算法本身有一定的随机性。即便用相同的参数设置在同一个测试集上多次运行,结果也会有差异。

解决方案:

  • 统计假设检验(hypothesis test),从统计意义上比较学习器泛化性能的优劣,并且给出置信度(即有多大把握)。

注意

本节默认以错误率 ℇ 为性能度量。

2.4.1 假设检验 —— 单个学习器

基本原理:用“测试错误率”估推“泛化错误率”。

注意:

  1. 两者未必相同;
  2. 直观上,二者接近的可能性较大,相差甚远的可能性较小。

-w677

1️⃣ 单次实验:二项检验 binomial test -w616 5829F154-B5CE-44C5-93BE-CB5D28F3C1A7 3773A945-5803-4DFC-B9C1-75C6BF7CDA

错误率临界值: 测试错误率的计算公式如下: 19BACFBA-E467-431D-BAE1-3FB49ECCD4A6 577C0508-0D40-4CEF-8B92-E8A9C5008D62

2️⃣ 多次重复实验:t 检验 -w621

B92BAAFD-C349-46F0-9B2C-4DF16F8496E4 63911B6F-DD00-4F5A-AAEB-9F7AAE4807FE -w625

2.4.2 交叉验证t检验 —— 两个学习器

验证方法:k折交叉验证“成对t检验” (paired t-tests)

基本原理:两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同。

符号说明: -w612

问题:

  1. 不能保证测试错误率均为泛化错误率的独立采样。
  2. 通常情况下,由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度的重叠,使得测试错误率实际并不独立,会导致过高估计假设成立的概率。 为缓解这一问题,采用“5×2交叉验证法”[Dietterich, 1998]。 -w619

2.4.3 McNemar检验——两个学习器

适用任务:二分类、留出法

概念:列联表 contingency table EFF74B33-EA8F-4689-A50A-C32BFC3FFF1A

-w626

2.4.4 Frienman检验与Nemenyi后续检验——多个学习器

Frienman检验:判断算法的性能是否相同 Nemenyi后续检验:若不相同,则进一步区分各算法

  • Frienman检验

假设用D1、D2、D3和D4四个数据集对算法A、B、C进行比较。

步骤:

  1. 使用留出法或交叉验证法得到每个算法在每个数据集上的测试结果;
  2. 在每个数据集上根据测试性能由好到坏排序,并赋予序值1,2,…,若性能相同则评分序值,并列于表中;
  3. 在算法比较序值表中,计算出每个算法的平均序值(对每一列求均值); 73574233-517D-4658-BBE7-4CEF5967F33E
  4. 使用Friedman检验判断算法性能是否都相同。

-w616

BA725C5E-C78E-4FDE-B5F3-D511A9BD77B1

原始检验要求k较大(例如k>30),若k较小则倾向于认为无显著差别。

  • Nemenyi后续检验

使用场景:

经Friedman检验表明,所有算法的性能不相同,则需进行“后续检验”(post-hoc test)来进一步区分各算法。Nemenyi后续检验是一种常用的方法。

原假设:两个算法性能相同。

方法:

  1. 计算平均序值差别的临界值域: 225D10BE-B422-4F8B-A4BD-7F13A68246CF

  2. 若两个算法的平均序值之差超出了临界值域CD,则以响应的置信度α拒绝“两个算法性能相同”这一假设。

qα(Turkey分布)临界值计算:

  • R:qtukey(1-a, Inf)/sqrt(2) 6DC0F00E-E5F8-41FE-B770-7E52F29DEE12

  • Friedman检验与Nemenyi后续检验举一个🌰: 4061EBC3-41D8-4B02-8BA9-CA23DBB81A04

Friendman检验图: CFDA9558-9524-4A61-9D38-F4A630B2AF24

  • 纵轴:各个算法;
  • 横轴:平均序值(圆点表示平均序值,线段表示临界值域大小)

判断方法:

若两个算法的横线段有交叠,则说明两算法无显著差别;否则,有显著差别。如,图中算法A与B、B与C没有显著差别(横线段有交叠区域),但A与C有显著差别(横线段无交叠区域)。

2.5 偏差与方差

目的:了解为什么学习器具有泛化性能。

工具:偏差-方差分解 bias-variance decomposition(对学习算法的期望泛化错误率进行拆解)

符号标记: A3806BE5-D221-47B5-8850-26856F040470

举一个🌰:

以回归任务为例,学习算法的期望预测、方差、噪声、偏差为: -w618

-w622

即,泛化误差可分解为偏差、方差与噪声之和。

  • 偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
  • 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
  • 噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

偏差方差分解的意义:

  • 说明泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。
  • 给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

偏差-方差窘境(bias-variance dilemma)

一般而言,偏差和方差是有冲突的。随着训练程度的加深,泛化误差、偏差和方差的变化如下图所示: 1D6D7D9B-FAD5-4971-9F4D-9B40FBAA645E

给定学习任务,假定我们能控制学习算法的训练程度,则

  1. 在训练程度不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;
  2. 随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率;
  3. 在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。

2.6 阅读材料

-w626