《机器学习》周志华读书笔记(二)模型评估与选择(下)

本篇文章紧接《《机器学习》周志华读书笔记(二)模型评估与选择(上)》,内容为2.3.3ROC与AUC开始讲起

2.3.3ROC与AUC

ROC全程“受试者工作特征”(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC曲线是基于混淆矩阵得出的。

ROC曲线中的主要两个指标就是真正例率假正例率。其中横坐标为假正例率(FPR),纵坐标为真正例率(TPR),借用上一篇文章中的表格,我们可以写出TPR和FPR的关系。

真实情况 预测结果
正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

《机器学习》周志华读书笔记(二)模型评估与选择(下)(真正例率,纵坐标)

《机器学习》周志华读书笔记(二)模型评估与选择(下)(假正例率,横坐标)

《机器学习》周志华读书笔记(二)模型评估与选择(下)

AUC(Area Under ROC Curve):ROC曲线下的面积,后续会重点讲解

ROC曲线的阈值问题 与前面的P-R曲线类似,ROC曲线也是通过遍历所有阈值来绘制整条曲线的。如果我们不断的遍历所有阈值,预测的正样本和负样本是在不断变化的,相应的在ROC曲线图中也会沿着曲线滑动。 

《机器学习》周志华读书笔记(二)模型评估与选择(下)

如何判断ROC曲线的好坏?

改变阈值只是不断地改变预测的正负样本数,即TPR和FPR,但是曲线本身是不会变的。那么如何判断一个模型的ROC曲线是好的呢?这个还是要回归到我们的目的:FPR表示模型虚报的响应程度,而TPR表示模型预测响应的覆盖程度。我们所希望的当然是:虚报的越少越好,覆盖的越多越好。所以总结一下就是TPR越高,同时FPR越低(即ROC曲线越陡),那么模型的性能就越好。参考如下动态图进行理解。

《机器学习》周志华读书笔记(二)模型评估与选择(下)

ROC曲线无视样本不平衡

为了计算 ROC 曲线上的点,我们可以使用不同的分类阈值多次评估逻辑回归模型,但这样做效率非常低。幸运的是,有一种基于排序的高效算法可以为我们提供此类信息,这种算法称为曲线下面积(Area Under Curve)。

比较有意思的是,如果我们连接对角线,它的面积正好是0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率应该都是50%,表示随机效果。ROC曲线越陡越好,所以理想值就是1,一个正方形,而最差的随机判断都有0.5,所以一般AUC的值是介于0.5到1之间的。

AUC的一般判断标准

0.5 - 0.7:效果较低,但用于预测股票已经很不错了

0.7 - 0.85:效果一般

0.85 - 0.95:效果很好

0.95 - 1:效果非常好,但一般不太可能

《机器学习》周志华读书笔记(二)模型评估与选择(下)

AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系。

2.3.4代价敏感错误率与代价曲线

非均等代价(unequal cost):为全更不同类型错误所造成的不同损失,将错误赋予非均等代价

《机器学习》周志华读书笔记(二)模型评估与选择(下)

在矩阵中,若将第 0 类判别为第 1 类所造成的损失更大,则 cost01 > cost10;损失程度相差越大,cost01 与 cost10 的差值越大。

此时的代价敏感(cost-sensitive)错误率为

《机器学习》周志华读书笔记(二)模型评估与选择(下)

因为不同类型的错误造成的后果不同,因此建立一个代价矩阵,区分各个类别错误的损失程度。

ROC曲线不能直接反映出学习器的期望总体代价,代价曲线可以。

《机器学习》周志华读书笔记(二)模型评估与选择(下)

 

2.4 比较检验

在某种度量下取得评估结果后,并不能直接比较以评判优劣

  • 测试性能不等于泛化性能
  • 测试性能随着测试集的变化而变化
  • 机器学习算法本身有一定的随机性

统计假设检验为我们进行学习器性能比较提供了重要依据,基于假设检验的结果,我们可以推断出,若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B

统计检验有四种方法:假设检验、交叉验证t检验、McNemar检验、Friedman检验与Nemenyi后续检验。

(1)假设检验:根据测试错误率推出泛化错误率的分布

(2)交叉检验t检验:根据差值来对学习器B与学习器A性能相同这个假设做t检验

(3)McNemar检验:假设两学习器性能相同,则两者在对应测试集上的性能相同

两学习器比较

  • 交叉验证 t 检验(基于成对 t 检验)

k 折交验证,5 * 2 交叉验证

  • McNemar 检验(基于列联表,卡方检验)

《机器学习》周志华读书笔记(二)模型评估与选择(下)

多学习器比较

  • Friedman + Nemenyi

  • Friedman 检验(基于序值,F检测,判断“是否都相同”)

  • Nemenyi 后续检验 (基于序值,进一步判断两两差别)

《机器学习》周志华读书笔记(二)模型评估与选择(下)​​​​​​​

如果对比较检验有需求,可以去该书P37-P44学习

 

2.5 偏差与方差

偏差-方差分解(bias-variance decomposition):可以解释学习算法泛化性能的一种重要工具,试图拆解期望泛化错误率。

对测试样本 《机器学习》周志华读书笔记(二)模型评估与选择(下) ,定义 
1. 《机器学习》周志华读书笔记(二)模型评估与选择(下) 为 《机器学习》周志华读书笔记(二)模型评估与选择(下) 在数据集中的标记,《机器学习》周志华读书笔记(二)模型评估与选择(下) 为 《机器学习》周志华读书笔记(二)模型评估与选择(下) 的真实标记(有可能出现噪声使得两者不等) 
2. 《机器学习》周志华读书笔记(二)模型评估与选择(下) 为训练集 《机器学习》周志华读书笔记(二)模型评估与选择(下) 上学的模型 《机器学习》周志华读书笔记(二)模型评估与选择(下) 在 《机器学习》周志华读书笔记(二)模型评估与选择(下) 上的预测输出 
3. 噪声 《机器学习》周志华读书笔记(二)模型评估与选择(下) ,这里假设噪声期望为零,即《机器学习》周志华读书笔记(二)模型评估与选择(下)
4. 偏差:期望输出与真实标记的差别《机器学习》周志华读书笔记(二)模型评估与选择(下)
5. 使用样本数相同的不同训练集产生的方差《机器学习》周志华读书笔记(二)模型评估与选择(下)

以回归任务为例,学习算法的期望预测为《机器学习》周志华读书笔记(二)模型评估与选择(下)
通过多项式展开合并,可将算法的期望泛化误差拆解为偏差、方差和噪声之和。(推导见书P45)

也即有《机器学习》周志华读书笔记(二)模型评估与选择(下)

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

当学习器刚开始学习时,因为学习程度不足,偏差会主导泛化错误率,随着学习器拟合能力逐渐增强,数据集发生的扰动会被学习到,这时方差开始主导泛化错误率。在最后拟合能力非常强的情况下训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。

《机器学习》周志华读书笔记(二)模型评估与选择(下)

最上面一条线为泛化误差,由于图片为黑白,无法标明,特在此说明!