2.3-2.6
2.3 性能度量
性能度量 :对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准。它反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往 往会导致不同的评判结果;这意味着模型的"好坏"是相对的,什么样的模型是好的?不仅取决于算法和数据,还决定于任务需求。
均方误差:

对于数据分布D和概率密度函数p(•),均方误差可描述为:

2.3.1 错误率与精度
对样例集D,分类错误率定义为:

精度定义为:

对于数据分布D和概率密度函数p(•):


2.3.2 查准率与查全率与F1
查准率和查全率:适用于此类需求,如检索出的信息中有多少比例是用户感兴趣的或用户感兴趣的信息中有多少被检索出来了的性能度量。
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划 分为真正例、假正例、真反倒、 假反例四种情形,令TP、 FP、 TN、 FN 分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。

查准率P与查全率R分别定义为:

查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

P-R 图直观地显示出学习器在样本总体上的查全率、查准率。在进行比较时,若一个学习器的 P-R 曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者。比较学习器性能一个比较合理的判据是比较 P-R 曲线下面积的大小。
平衡点:一个综合考虑查准率 、 查全率的性能度量,它是"查准率=查全率"时的取值。
F1度量:

Fß:F1 度量的一般形式,能让我们表达出对查准率/查全率的不同偏好。

其中ß>0度量了查全率对查准率的相对重要性。ß=1时退化为标准的 F1; ß>1时查全率有更大影响 ; ß<1时查准率有更大影响。
一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率,记为 (P1,R1),(P2,R2),…,(Pn,Rn), 再计算平均值,这样就得到“宏查准率” 、“宏查全率”,以及相应的“宏 F1”。

还可先将各自淆矩阵的对应元素进行平均,得到 TP、FP、TN、FN 的平均值,分别记为
,再基于这些平均值计算出“微查准率”、“微查全率”和“微F1”。


2.3.3 ROC与AUC
很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阙值进行比较,若大于阙值则分为正类,否则为反类。分类过程就相当于在这个排序中以某个"截断点"将样本分为两部分,前一部分判作正例,后一部分则判作反例。
排序截断点本身的质量好坏,体现了综合考虑学习器在不同任务下的"期望泛化性能"的好坏,或者说"一般情况下"泛化性能的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具.ROC全称是"受试者工作特征"曲线。它的纵轴是"真正例率",横轴是"假正例率"。基于表2.1中的符号,两者分别定义为:

设前一个标记点坐标为 (x,y),当前若为真正例,则对应标记点的坐标为 (x,y+1/m+ 步);当前若为假正例,则对应标记点的坐标为 (x+1/m-,y),然后用线段连接相邻点即得。
AUC:ROC曲线下的面积。
进行学习器的比较时,与 P-R 图相似,若一个学习器的ROC曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉则难以一般性地断言两者孰优孰劣。此时如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC。
假定ROC曲线是由坐标{(x1,y1),(x2,y2),...,(xm,ym)}的点按顺序连接而形成(x1=0,xm=1),则AUC可估算为

给定m+个正例和m-个反例,令D+和D-分别表示正、反例集合,则“排序损失”为

即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”。
2.3.4 代价敏感错误率与代价曲线
非均等代价:为权衡不同类型错误所造成的不同损失,可为错误赋予"非均等代价"。
以二分任务为例,我们可根据任务的领域知识设定一个"代价矩阵"。

若将表2.2中的第0类作为正类、第1类作为反类,令D+与D-分别代表样例集D的正例子集和反例子 集,则"代价敏感"错误率为

在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而"代价曲线"则可达到该目的.代价曲线图的横轴是取值为 [0,1]的正例概率代价

其中 p 是样例为正例的概率;纵轴是取值为[0,1]的归一化代价

其中FPR是假正例率,FNR=1-TPR是假反例率。
代价曲线的绘制: ROC由线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从 (0,FPR)到(1,FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;如此将 ROC 曲线土的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。
2.4 比较检验
对学习器的性能进行评估比较:先使用某种实验评估方法测得学习器的某个性能度量结果,然后对这些结果进行比较。
统计假设检验:为我们进行学习器性能比较提供了重要依据。
2.4.1 假设检验
假设检验中的"假设"是对学习器泛化错误率分布的某种判断或猜想。
泛化错误率为ε的学习器在一个样本上犯错的概率是ε; 测试错误率E意味着在m个测试样本中恰有E×m个被误分类。
在包含m个样本的测试集上,泛化错误率为ε的学习器被测得测试错误率为E的概率:

给定测试错误率,则解θP(E;ε)/θε=0可知,P(E;ε)在ε=E时最大,|ε-E|增大时P(E;ε)减小。这符合二项分布。
我们可使用"二项检验"来对 "ε≤0.3"(即"泛化错误率是否不大于 0.3")这样的假设进行检验。更一般的,考虑假设"ε≤ε0",则在1一α的概率内所能观测到的最大错误率如下式计算。这里 1一α反映了结论的"置信度"。

此时若测试错误率E小于临界值
,则根据二项检验可得出结论:在α的显著度下,假设"ε≤ε0"不能被拒绝,即能以1-α的置信度认为学习器的泛化错误率不大于ε0;否则该假设可被拒绝,即在α的显著度下可认为学习器的泛化错误率大于ε0。
在很多时候我们并非仅做一次留出法估计,而是通过多次重复留出法或是交叉验证法等进行多次训练/测试,这样会得到多个测试错误率,此时可使用"t检验"。
,则平均测试的错误率μ和方差δ^2为

考虑到这k个测试错误率可看做泛化错误率ε0的独立采样,则变量

服从自由度为k-1的t分布,如图2.7所示

对假设"μ=ε0"和显著度α,我们可计算出当测试错误率均值为ε0时,在1-α概率内能观测到的最大错误率,即临界值。若平均错误率μ与ε0之差|μ-ε0|位于临界值范围[-∞,t(-α/2)],内,则不能拒绝假设"μ=ε0",即可认为泛化错误率为ε0,置信度为1-α; 否则可拒绝该假设,即在该显著度下可认为泛化错误率与ε0有显著不同。
2.4.2 交叉验证t检验
对两个学习器A和B,若我们使用k折交叉验证法得到的测试错误率分别为ε1^A ,ε2^A ,...,εk^A 和ε1^B ,ε2^B ,...,εk^B ,其中εi^A 和εi^B 是在相同的第i折训练测试集上得到的结果,则可用k折交叉验证"成对t检验"来进行比较检验。这里的基本思想是若两个学习器的性能相同,则它们使用相同的训练测试集得到的测试错误率应相同,即εi^A =εi^B 。
具体来说,对k折交叉验证产生的k对测试错误率:先对每对结果求差,△i=εi^A -εi^B;若两个学习器性能相同,则差值均值班为零. 因此,可根据差值△1,△2,...,△k来对"学习器A与B性能相同"这个假设做t检验,计算出差值的均值μ和方差σ^2,在显著度α下,若变量

小于临界值 t(a/2,k-1),则假设不能被拒绝,即认为两个学习器的性能没有显著差别 ; 否则可认为两个学习器的性能有显著差别,且平均错误率较小的那个学习器性能较优这里 t(a/2,k-1)是自由度为k-1的t分布上尾部累积分布为α/2的临界值。
欲进行有效的假设检验,一个重要前提是测试错误率均为泛化错误率的独立采样。
"5 x 2交叉验证"法:5x2交叉验证是做5次2折交叉验证,在每次2折交叉验证之前随机将数
据打乱,使得5次交叉验证中的数据划分不重复。为缓解测试错误率的非独立性,我们仅计算第1次交叉验证的两个结果的平均值
,但对每次二折实验的结果都计算出其方差
。变量
服从自由度为5的t分布。
2.4.3 McNemar检验

若我们做的假设是两学习器性能相同,则应有e01=e10,那么变量|e01-e10|应当服从正态分布,且均值为 1,方差为e01+e10。因此变量

服从自由度为1的χ2分布,即标准正态分布变量的平方。
给定显著度α,当以上变量恒小于临界值χ2时,不能拒绝假设,即认为两学习器的性能没有显著差别;否则拒绝假设,即认为两者性能有显著差别,且平均错误率较小的那个学习器性能较优。
2.4.4 Friedman检验与Nemenyi后续检验
当有多个 算法参与比较时,一种做法是在每个数据集上分别列出两两比较的结果,而在两两比较时可使用前述方法;另一种方法更为直接,即使用基于算法排序的Friedman检验。
假定我们用 D1、D2、D3和D4四个数据集对算法A、B、C进行比较。首先,使用留出法或交叉验证法得到每个算法在每个数据集上的测试结果,然后在每个数据集上根据测试性能由好到坏排序,并赋予序值1,2,...;若算法的测试性能相同,则平分序值。
然后,使用Friedman 检验来判断这些算法是否性能都相同。若相同,则它们的平均序值应当相同。
假定我们在N个数据集上比较k个算法,令ri表示第i个算法的平均序值,为简化讨论,暂不考虑平分序值的情况,则ri服从正态分布,其均值和方差分别为(k+1)/2和(k^2-1)/12。变量

然而,上述这样的"原始Friedman检验"过于保守,现在通常使用变量

TF服从自由度为k-1和(k-1)(N-1)的F分布。
若"所有算法的性能相同"这个假设被拒绝,则说明算法的性能显著不同。这时需进行"后续检验"来进一步区分各算法.常用的有Nemenyi后续检验。
Nemenyi 检验计算出平均序值差别的临界值域

上述检验比较可以直观地用Friedman检验图显示。图中纵轴显示各个算法,横轴是平均序值。对每个算法,用一个圆点显示其平均序值,以圆点为中心的横线段表示临界值域的大小。然后就可从图中观察,若两个算法的横线段有交叠,则说明这两个算法没有显著差别,否则即说明有显著差别。

2.5 偏差与方差
偏差方差分解:解释学习算法泛化性能的一种重要工具。
以回归任务为例,学习算法的期望预测为

使用样本数相同的不同训练集产生的方差为

噪声为

期望输出与真实标记的差别称为偏差,即

为便于讨论,假定噪声期望为零,即ED[yD-y]=0.通过简单的多项式展开合并,可对算法的期望泛化误差进行分解化简:

也就是说,泛化误差可分解为偏差、方差与噪声之和。
偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
偏差一方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。
一般来说偏差与方差是有冲突的,这称为偏差一方差窘境。给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足 以便学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率;在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合

,则根据二项检验可得出结论:在α的显著度下,假设"ε≤ε0"不能被拒绝,即能以1-α的置信度认为学习器的泛化错误率不大于ε0;否则该假设可被拒绝,即在α的显著度下可认为学习器的泛化错误率大于ε0。
浙公网安备 33010602011771号