【机器学习】2.模型评估与选择

🚩 西瓜书 第二章笔记它来咯
🚩本章着重介绍了模型评估相关的指标,给出了评价模型优劣的数学依据

经验误差与过拟合

错误率与精度(总体上)

错误率:分类错误的样本数占样本总数的比例
精度:分类正确的样本数占样本总数的比例

  • 若预测了m个样本,其中有a个样本分类错误:

  • 错误率
    在这里插入图片描述

  • 精度
    在这里插入图片描述

误差

误差:实际预测与真实值之间的差异
训练误差:学习器在训练集上的误差
泛化误差:学习器在新样本上的误差

过拟合和欠拟合

过拟合:学习器把训练样本学得太好了,将训练样本所包含的不太一般的特性都学到了,导致泛化性下降。
欠拟合:学习器对样本的一般性质尚未学好,可以增加训练轮次来解决。

在这里插入图片描述

测试集的生成方法

测试集:用于对学习器的泛化误差进行评估。

  • 包含 m 个样例的数据集 D,被划分为训练集 S 测试集 T

留出法

留出法:将数据集D划分为两个互斥的集合

在这里插入图片描述

  • 在S上训练出模型后,用T来评估模型的测试误差
  • 训练集和测试集的划分尽可能保持数据分布的一致性:通常使用分层采样的方法。
  • 常见的是将大约2/3~4/5的样本用于训练,剩余样本用于测试。

(k折)交叉验证法

k折交叉验证:将数据集划分为 k k k 个大小相似的互斥子集,每次用 k − 1 k-1 k1 个子集的并集作为训练集,余下的子集作为测试集。这样就可以获得 k k k 组训练/测试集,从而可进行k次训练和测试,k次测试结果的均值就是模型评估的结果。

  • 子集 D i D_i Di 尽可能保持数据分布一致性,并且满足:
    在这里插入图片描述
  • 10折交叉验证的示意图:
    在这里插入图片描述

留一法

留一法:k折交叉验证的特例,假设数据集 D D D中包含 m m m个样本,另 k = m k=m k=m(嘿嘿嘿,一个样本就构成了一个测试集)

  • 优点:留一法的评估结果往往比较准确
  • 缺点:训练m个模型的计算量对计算机硬件来说难以接受

自助法

自助法(自助采样法):包含 m m m个样本的数据集 D D D , 我们对它进行采样产生数据集 D ′ D' D每次随机从 D D D 中挑选一个样本将其拷贝放入 D ′ D' D ,然后再将该样本放回初始数据集 D D D 中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行 m m m 次后,我们就得到了包含 m m m个样本的数据集 D ′ D' D,这就是自助采样的结果。

  • D D D 中有一部分样本会在 D ′ D' D中多次出现,而另一部分样本不出现。
  • m个样本在m次采样中始终不被采样到的概率是:
    在这里插入图片描述
  • 取极限得到:
    在这里插入图片描述
  • 这说明初始数据集D中约有 36.8% 的样本从未出现在采样数据集 D’中。
  • 这样的测试结果,被称为包外估计

  • 优点:在数据集较小、难以有效划分训练集和测试集时很有用。
  • 缺点:自助法产生的数据集改变了初始数据集的分布,会引入估计偏差,数据量充足时,留出法和交叉验证法更常用一些。

调参与最终模型

调参:对算法参数进行设定
验证集:用于模型训练过程中进行评估测试的数据集。

  • 把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参.

性能度量

性能度量:衡量模型泛化能力的评价标准

在这里插入图片描述

  • 其中 y i y_i yi 是示例 x i x_i xi 的真实标记。要评估学习器 f f f 的性能,就要比较预测值 f ( x ) f(x) f(x) 和真实标记 y y y

  • 回归 任务最常用的性能度量是均方误差(MSE)
    在这里插入图片描述

  • 一般化,对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(·) p(),均方误差描述为:
    在这里插入图片描述

  • 下面介绍 分类任务的性能度量

错误率与精度

错误率:分类错误的样本数占样本总数的比例
精度:分类正确的样本数占样本总数的比例

  • 错误率定义为:
    在这里插入图片描述
  • 精度定义为:
    在这里插入图片描述
  • 更一般的,对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(·) p(),错误率和精度分别描述为:
    在这里插入图片描述
    在这里插入图片描述

查准率(准确率)、查全率(召回率)、F1(调和平均)

查准率 P(准确率)预测的所有正样本中,预测正确的比例
查全率 R(召回率)实际的所有正样本中,预测正确的比例
P-R曲线:以查准率为纵轴、查全率为横轴作图
F1(调和平均):综合考量了P和R的一个指标

在这里插入图片描述

  • 查准率与查全率分别定义为:
    在这里插入图片描述

  • P-R曲线示意图

  • (若一个学习器的P-R 曲线被另一个学习器的曲线完全"包住" , 则可断言后者的性能优于前者)

  • (如果两个学习器的P-R 曲线发生了交叉,则难以一般性地断言两者孰优孰劣,可以利用面积或者平衡点 BEP来比较)
    在这里插入图片描述

  • 使用BEP还是过于简化了,更常用的还是F1度量:
    在这里插入图片描述

  • 有时候,我们更关注P而不是R(或者更关注R而不是P),那么使用F1的一般形式 F β F_{\beta} Fβ(P和R的加权调和平均):
    在这里插入图片描述

  • β = 1 \beta = 1 β=1 时退化为标准的 F1

  • β > 1 \beta > 1 β>1 时查全率有更大影响

  • β < 1 \beta < 1 β<1 时查准率有更大影响


  • 在n个二分类混淆矩阵上考察查准率和查全率
  • 可以使用查准率和查全率的均值,称为宏查准率宏查全率宏F1
    在这里插入图片描述

  • 还可以将各个混淆矩阵的对应元素进行平均,得到TP 、FP 、TN 、FN的均值,然后得到微查准率微查全率微F1
    在这里插入图片描述

在这里插入图片描述

ROC与AUC

分类阈值:模型预测出一个[0.0,1.0]之间的实值,若这个实值大于分类阈值,则分为正类,否则分为反类。排序质量影响了分类结果。
ROC 曲线:根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图(体现了学习器“期望泛化性能”的好坏)ROC只关注预测为正样本的情况

  • 这个分类阈值直接决定了学习器的泛化能力。

  • ROC曲线的纵轴:真正例率(正样本被预测为正样本的概率)
    在这里插入图片描述

  • ROC曲线的横轴:假正例率(负样本被预测为正样本的概率)
    在这里插入图片描述
    在这里插入图片描述

  • 若一个学习器的ROC 曲线被另一个学习器的曲线完全"包住", 则可断言后者的性能优于前者;若两个学习器的ROC 曲线发生交叉,则难以-般性地断言两者孰优孰劣.(可以使用ROC曲线下的面积AUC进行比较)

  • 假设曲线上点的坐标为:
    在这里插入图片描述
    在这里插入图片描述

  • 则AUC可估算为:
    在这里插入图片描述

  • 从形式上看,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系

  • 给定 m + m^+ m+个正例和 m − m^- m个反例,另 D + D^+ D+ D − D^- D分别表示正、反例集合,则排序损失定义为:
    在这里插入图片描述

  • 上式的解释:考虑每一对正、反例,若正例的预测值小于反例,则记1个"罚分",若相等则记0.5 个"罚分"。容易看出, l r a n k l_{rank} lrank 对应的是ROC 曲线之上的面积

  • 若一个正例在ROC曲线上对应标记点的坐标为 ( x , y ) (x,y) (x,y),则x恰是排序在其之前的反例所占的比例,即假正例率,因此有:
    在这里插入图片描述

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

  • 不同类型的错误所造成的后果不同,可为错误赋予“非均等代价”。
    在这里插入图片描述
  • c o s t i j cost_{ij} costij表示将第i 类样本预测为第j 类样本的代价。
  • 我们希望最小化“总体代价”,第0类作为正类,第1类作为反类;另 D + D^+ D+ D − D^- D分别代表样例集D的正例子集和反例子集,则“代价敏感”的错误率为(下式的含义:平均到每个样本,预测之后的损失值):
    在这里插入图片描述
  • 在非均等代价下,ROC曲线不能直接反映学习器的期望总体代价,“代价曲线可以达到目的”。

  • 代价曲线图的横轴是取值为[0,1]的正例概率代价(下式理解很简单:就是正例被误判的代价占比)
    在这里插入图片描述
    在这里插入图片描述

  • 其中 p p p 是样例为正例的概率;纵轴是取值为[0,1]的归一化代价(下式很好理解:就是实际损失 占据 最大可能达到的损失 的比例)
    在这里插入图片描述

  • 其中FPR是式2.19定义的假正例率(假样本被预测为正样本的概率),FNR=1-TPR是假反例率(假样本被预测为负样本的概率)为了方便理解 FPR,FNR,如下图所示:
    在这里插入图片描述

  • 代价曲线绘制很简单:ROC 由线上每一点对应了代价平面上的一条线段,设ROC 曲线上点的坐标为(TPR, FPR) ,则可相应计算出FNR,然后在代价平面上绘制一条从(0 , FPR) 到(1 , FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC 曲线土的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的自积即为在所有条件下学习器的期望总体代价。
    在这里插入图片描述

比较检验

  • 希望比较的是泛化性能,而不是直接将评价参数“比大小”。
  • 统计假设检验:为学习器性能比较提供了重要依据。
  • 本小节默认用错误率来代表性能度量,用 ϵ \epsilon ϵ 来表示。

假设检验

  • 泛化错误率 ϵ \epsilon ϵ测试错误率 ϵ ^ \hat\epsilon ϵ^ 未必相同,但是两者相差应该较小,我们可以根据测试错误率来估计泛化错误率的分布。

  • 假定测试样本是从样本总体分布中独立采样而得,那么泛化错误率 ϵ \epsilon ϵ 的学习器将 m m m个测试样本中的 m ′ m' m个样本误分类、其余样本全部分类正确的概率是:
    在这里插入图片描述

  • 由此可估算出其恰将 ϵ ^ × m \hat\epsilon \times m ϵ^×m个样本误分类的概率如下式所示 (即m个样本的测试集上,泛化错误率为 ϵ ^ \hat\epsilon ϵ^ 的学习器被测得测试错误率为 ϵ \epsilon ϵ的概率)
    在这里插入图片描述

  • 此概率符合二项分布
    在这里插入图片描述


  • 假设 ϵ ≤ ϵ 0 \epsilon \leq \epsilon_0 ϵϵ0 则在 1 − α 1 - \alpha 1α 的概率内所能观测到的最大错误率为:
    在这里插入图片描述
  • α \alpha α 的显著度下,假设 ϵ ≤ ϵ 0 \epsilon \leq \epsilon_0 ϵϵ0 不能被拒绝,可认为学习器的泛化错误率大于 ϵ 0 \epsilon_0 ϵ0

  • 由于交叉验证等方法会得到多个测试错误率:
    在这里插入图片描述

  • 平均测试错误率及其方差为:
    在这里插入图片描述

  • 考虑到这k 个测试错误率可看作泛化错误率 ϵ 0 \epsilon_0 ϵ0 的独立采样,则:
    在这里插入图片描述

  • 服从 t 分布:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

交叉验证 t 检验

  • 对于两个学习器A和B,测试错误率分别为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 根据上述差值来对 “学习器A与B性能相同” 这个假设做t检验,计算出差值的均值u和方差,在 α \alpha α 的显著度下,若变量:
    在这里插入图片描述
  • 小于临界值 t α / 2 , k − 1 t_{\alpha/2,k-1} tα/2k1 ,则不能拒绝假设,认为两个学习器的性能没有显著差异

McNemar 检验

  • 对于二分类问题,留出法不仅可以估计出学习器A和B的测试错误率,还可获得两学习器分类结果的差别,即两者都正确、都错误、一个正确另一个错误的样本数,如列联表
    在这里插入图片描述
  • 假设两学习器性能相同,应有:
    在这里插入图片描述
  • 那么下面变量应当服从正态分布,且均值为1,方差为 e 01 + e 10 e_{01} + e_{10} e01+e10
    在这里插入图片描述
  • 因此下面变量服从自由度为1的卡方分布:
    在这里插入图片描述
    在这里插入图片描述

Friedman 检验与Nemenyi 后续检验

在这里插入图片描述

在这里插入图片描述

偏差与方差

偏差-方差分解:用于了解学习算法为什么具有这样的泛化性能。

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值