《机器学习》(西瓜书)读书笔记(二)

第2章 模型评估与选择

2.1 经验误差与过拟合

  • 误差(error) 学习器的实际预测输出与样本的真实输出之间的差异
  • 训练误差 / 经验误差(training error / empirical error) 学习器在训练集上的误差
  • 泛化误差(generalization error) 学习器在新样本上的误差
  • 欠拟合(underfitting) 对训练样本的一般性质尚未学好
  • 过拟合(overfitting) 把训练样本自身的一些特点当作所有潜在样本都会具有的一般性质,导致泛化性能下降

各种拟合的例子

过拟合无法彻底避免,我们只能减小其风险。

2.2 评估方法

通过某种方法将数据集D分成训练集S和测试集T,用测试集来测试学习器对新样本的判别能力,以测试集上的测试误差作为泛化误差的近似。下面是几种常见做法。

2.2.1 留出法

留出法

2.2.2 交叉验证法

交叉验证法

留出法交叉验证法实际评估的模型所使用的训练集比D小,必然会引入因训练样本规模不同导致的估计偏差;留一法受训练样本规模变化的影响较小,但计算复杂度很高。较好的解决方案如下:

2.2.3 自助法

自助法

2.2.4 调参与最终模型

在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,即参数调节(parameter tuning,简称调参)。学习算法的很多参数是在实数范围内取值,常用做法是对每个参数选定一个范围和变化步长,产生候选参数值来训练模型。

在模型选择完成后,学习算法和参数配置已选定,此时用数据集D的所有m个样本重新训练模型,产生提交给用户的最终模型

注意:

  • 测试数据 学得模型在实际使用中遇到的数据
  • 验证集(validation set) 模型评估与选择过程中用于评估测试的数据集

2.3 性能度量

性能度量(performance measure) 衡量模型泛化能力的评价标准,反映了任务需求。

回归任务最常用的性能度量是均方误差(mean squared error)

2.2

更一般的,对于数据分布 D \boldsymbol{D} D 和概率密度函数 p ( ⋅ ) p(\cdot) p() ,均方误差可描述为

2.3
分类任务中常用的性能度量在下面介绍。

2.3.1 错误率与精度

分类任务中最常用的两种性能度量。既适用于二分类任务,也适用于多分类任务。

  • 错误率 分类错误的样本数占样本总数的比例
    2.4
    更一般的,错误率可描述为
    2.6

  • 精度 分类正确的样本数占样本总数的比例
    2.5
    更一般的,精度可描述为
    2.7

2.3.2 查准率、查全率与F1

对于二分类问题,可将样例划分为四类,分类结果的“混淆矩阵”如下:

真实情况预测为正预测为反
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)
  • 查准率(precision,也称准确率,即预测为正的正确率)  P = T P T P + F P = 真 正 例 预 测 的 所 有 正 例 P=\frac{TP}{TP+FP}=\frac{真正例}{预测的所有正例} P=TP+FPTP=

  • 查全率(recall,也称召回率,即预测出的正例占全部正例的比率)  R = T P T P + F N = 真 正 例 实 际 的 所 有 正 例 R=\frac{TP}{TP+FN}=\frac{真正例}{实际的所有正例} R=TP+FNTP=

查准率和查全率是一对矛盾的度量,通常只有在一些简单任务中,才可能使二者都很高。

  • P-R图
    PR
      P-R图直观显示出学习器在样本总体上的查全率、查准率。
      进行比较时,若一个学习器的曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者,如图中A的性能优于C;如果两个曲线发生交叉,如图中A、B,则难以断言孰优孰劣,需结合具体情况。很多情况下,人们比较P-R曲线下面积的大小来衡量 学习器的性能,但面积值不易估算,因此产生了一些综合考虑查准率、查全率的性能度量。

  • 平衡点(Break-Even Point,简称BEP) “查准率=查全率”时的取值。根据这个度量,可认为图中学习器A优于B。由于BEP过于简化,更常用的是F1度量。

  • F1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N =\frac{2 \times P\times R}{P+R}=\frac{2 \times TP}{样例总数+TP-TN} =P+R2×P×R=+TPTN2×TP
     
    F1度量的一般形式—— F β F_\beta Fβ,能让我们表达出对查全率/查准率的不同偏好,它定义为
    2.11 β \beta β>0度量了查全率对查准率的相对重要性。 β \beta β=1时即为F1 β \beta β>1时查全率有更大影响; β \beta β<1时查准率有更大影响。

当我们在个二分类混淆矩阵上综合考察查准率和查全率时,有两种常用做法如下:

  • 先在各混淆矩阵上分别计算出查准率和查全率,再计算平均值,可得到
    宏查准率(macro-P2.12
    宏查全率(macro-R2.13
    F1(macro-F12.14

  • 先将各混淆矩阵的对应元素进行平均,得到 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN 的平均值,分别记为 T P ‾ 、 F P ‾ 、 T N ‾ 、 F N ‾ \overline{TP}、\overline{FP}、\overline{TN}、\overline{FN} TPFPTNFN,再基于这些平均值计算出微查准率(micro-P2.15
    微查全率(micro-R2.16
    F1(micro-F12.17

2.3.3 ROC与AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将预测值与一个分类阈值(threshold)进行比较,若大于阈值则分为正类,否则为反类。这个实值或概率预测结果的好坏,直接决定了学习器的泛化能力。

实际上,根据这个实值或概率预测结果,我们可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面。这样,分类过程就相当于在这个排序中以某个“截断点”(cut point)将样本分为两部分,前一部分判作正例,后一部分判作反例。

在不同的应用任务中,我们可以根据任务需求来采用不同的截断点。因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或“一般性能下”泛化能力的好坏。ROC曲线是从这个角度出发来研究学习器泛化性能的有力工具。

  • ROC 受试者工作特征(Receiver Operating Characteristic)曲线
    我们根据学习器的预测结果对样例排序,按序逐个把样本作为正例进行预测,每次计算出假正例率真正例率,分别以它们为横、纵坐标作图,得到“ROC曲线”。
    • 真正例率(True Positive Rate,简称TPR) TPR = T P T P + F N = 真 正 例 实 际 的 所 有 正 例 =\frac{TP}{TP+FN}=\frac{真正例}{实际的所有正例} =TP+FNTP=

    • 假正例率(False Positive Rate,简称FPR) FPR = F P T N + F P = 假 正 例 实 际 的 所 有 反 例 =\frac{FP}{TN +FP}=\frac{假正例}{实际的所有反例} =TN+FPFP=

显示ROC曲线的图称为“ROC图”。示意如下,易知对角线对应于“随机猜测”模型,点(0,1)对应于将所有正例排在所有反例之前的“理想模型”。

在这里插入图片描述

现实中通常利用有限个测试样例来绘制ROC图,此时仅能获取有限个坐标对,无法产生光滑的ROC曲线,只能绘制出下图所示的近似ROC曲线。

2.42

进行学习器的比较时,与P-R图相似,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣。如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。AUC可估算为2.20AUC考虑的是样本预测的排序质量,与排序误差有紧密联系。给定 m + m^+ m+ 个正例和 m − m^- m 个反例,令 D + D^+ D+ D − D^- D 分别表示正、反例集合,则排序“损失”(loss)定义为2.21
即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个罚分。容易看出,其对应的是ROC曲线之上的面积:若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序在其之前的反例所占的比例,即假正例率。因此有2.22

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

为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)。

以二分任务为例,根据任务的领域知识设定一个“代价矩阵”(cost matrix),如下,其中 c o s t i j cost_{ij} costij 表示将第 i i i 类样本预测为第 j j j 类样本的代价。一般地, c o s t i i = 0 cost_{ii}=0 costii=0 ;若将第0类判别为第1类所造成的损失更大,则 c o s t 01 > c o s t 10 cost_{01}>cost_{10} cost01>cost10;损失程度相差越大, c o s t 01 cost_{01} cost01 c o s t 10 cost_{10} cost10 值的差别越大(一般情况下,重要的是代价比值而非绝对值)。

2.2

在非均等代价下,我们希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”(total cost)。若将上表中的第0类作为正类、第1类作为反类,令 D + D^+ D+ D − D^- D 分别代表样例集 D D D 的正例子集和反例子集,则“代价敏感”(cost-sensitive)错误率2.23

在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”(cost curve)则可达到该目的。
代价曲线图的横轴是取值为 [0,1] 的正例概率代价2.24其中 p p p 是样例为正例的概率;纵轴是取值为 [0,1] 的归一化代价2.25其中FPR = 假 正 例 实 际 的 所 有 反 例 =\frac{假正例}{实际的所有反例} = 是假正例率,FNR = = = 1 − - TPR = 假 反 例 实 际 的 所 有 正 例 =\frac{假反例}{实际的所有正例} = 是假反例率。

如下图,围成的面积即为在所有条件下学习器的期望总体代价。2.5

2.4 比较检验

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

为便于讨论,本节默认以错误率为性能度量。

2.4.1 假设检验
  • 二项检验(binomial test)
    可用二项检验对假设进行检验。
    2.27在这里插入图片描述

  • t 检验t-test)
    平均测试错误率在这里插入图片描述方差在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.4.2 交叉验证 t 检验

在这里插入图片描述

2.4.3 McNemar检验

在这里插入图片描述

2.4.4 Friedman检验与Nemenyi后续检验
  • Friedman检验

在这里插入图片描述  由于“原始Friedman检验”过于保守,现在通常使用变量在这里插入图片描述

  • Nemenyi后续检验
    平均序值差别的临界值域在这里插入图片描述

2.5 偏差与方差

  • 偏差-方差分解
    “偏差-方差分解”(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具,试图对学习算法的期望泛化错误率进行拆解。
表示含义
x \boldsymbol x x测试样本
y D y_D yD x \boldsymbol x x 在数据集中的标记
y y y x \boldsymbol x x 的真实标记
f ( x ; D ) f(\boldsymbol x;D) f(x;D)训练集 D D D 上学得模型 f f f x \boldsymbol x x上的预测输出

以回归任务为例, 学习算法的期望预测为在这里插入图片描述在这里插入图片描述于是在这里插入图片描述可知,泛化误差可分解为偏差、方差与噪声之和

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

通过偏差-方差分解,我们知道,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同确定的。

  • 偏差-方差窘境
    在这里插入图片描述
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值