机器学习西瓜书学习记录-第二章 模型评估与选择

本文探讨了模型评估与选择的方法,包括经验误差、过拟合的概念,介绍了留出法、交叉验证法和自助法等评估方法,并讨论了性能度量、调参与最终模型选择等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第2章 模型评估与选择

2.1经验误差与过拟合

  • “错误率”:分类错误的样本数占样本总数的比例。
  • “精度”:1-错误率
  • “误差”:学习器的实际预测输出与样本的真实输出之间的差异。训练集上的误差称为“训练误差”或“经验误差”;在新样本上的误差称为“泛化误差”。

由于事先并不知道新样本什么样,故而实际能做的便是努力使得经验误差最小化。

  • “过拟合”:由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了
  • “欠拟合”:通常由于学习能力低下而造成的

“模型选择问题”:理想情况是评估并选择候选模型的泛化误差最小的模型。但是无法直接获得泛化误差,训练误差又由于会出现过拟合现象的存在而不适于作标准,那么如何进行模型的评估与选择?
2.2评估方法
通过实验测试来对学习器的泛化误差进行评估进而做出选择。为此需要“测试集”来测试学习器对新样本的判别能力,以测试集的“测试误差”作为泛化误差的近似。
注意测试集需尽可能与训练集互斥。
2.2.1留出法

“留出法”:将数据集D划分为两个互斥的集合,分别是训练集S,测试集T

注意,训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。

“分层采样”:保留类别比例的采样方式

例,对数据集D进行分层采样得70%样本的训练集S和30%样本的测试集T。D含500个正例、500个反例,分层采样得到S含350个正例、350个反例,T含150个正例和150个反例。
若S、T中样本类别比例差别很大,则误差估计将由于训练/测试数据分布的差异而产生偏差。

注意,单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果
2.2.2交叉验证法

“交叉验证法”:将数据集D划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到。每次用k-1个子集的并集作为训练集,余下的呢个子集作为测试集,这样便得到k组训练/测试集,可进行k次训练和测试,最终返回k个测试结果的均值。
常称为“k折交叉验证”
在这里插入图片描述

“p次k折交叉验证”:由于将数据集D划分为k个子集存在多种划分方式,为减少因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值。常见“10次10折交叉验证”

“留一法”(LOO):若数据集D含m个样本,当k=m时,交叉验证只有唯一的方式划分为m个子集,每个子集含一个样本。
优点,训练集相比初始数据集只少了一个样本,故其评估结果往往被认为比较准确。
缺点,数据集比较大时,训练m个模型的计算开销很大。

2.2.3自助法
考虑到:
1.留出法和交叉验证法保留了一部分样本用于测试,因此实际评估的模型使用的训练集比D小,会引入因训练样本规模不同而导致的估计偏差。
2.留一法受训练样本规模变化小,但是计算复杂度太高。
如何减少训练样本规模不同造成的影响的同时能比较高效地进行实验估计?

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

这样实际评估的模型与期望评估的模型都使用m个训练样本,同时仍有数据总量约1/3的,没在训练集中出现的样本用于测试。这样的测试结果,亦称为“包外估计”
由于自助法产生的数据集改变了初始数据集的分布,会引入估计偏差。因此在初始数据量足够时,留出法和交叉验证更常用;故而自助法在数据集较小、难以有效划分训练/测试集时很有用。

2.2.4调参与最终模型

“调参”:在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定

学习算法的很多参数是在实数范围内取值,因此常见做法是对每个参数选定一个范围和变化步长。

  • “测试数据”:学得模型在实际使用中遇到的数据
  • “验证集”:模型评估和选择中用于评估测试的数据集

此时训练数据划分为训练集和验证集,基于验证集性能进行模型选择和调参;用测试集上的判别效果来估计模型在实际使用时的泛化能力。
2.3性能度量
对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。
什么样的模型是好的?不仅取决于算法和数据,还决定于任务需求.
回归任务,常用性能度量是“均方误差”
下面是分类任务常用性能度量
2.3.1错误率与精度
样例集D,分类错误率定义
在这里插入图片描述
精度定义
在这里插入图片描述
更一般的,对于数据分布D和概率密度函数p(.),错误率与精度可分别描述为
在这里插入图片描述
在这里插入图片描述
2.3.2查准率、查全率与F1
对于二分类问题,将样例根据真实类别与学习器预测类别的组合划分为真正例TP,假正例FP,真反例TN,假反例FN,且TP+FP+TN+FN=样例总数。
分类结果所组成的“混淆矩阵”如表
在这里插入图片描述
查准率P和查全率R分别定义为
在这里插入图片描述
一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
举例说明,
1、若想好瓜尽可能多的挑出-查全率尽可能高,TP+FN不变的,当认为所有瓜都是好瓜时,这样TP达到最大,查全率最大。但是这样的话,对于查准率来说,分母TP+FP也达到了最大,故而此时查准率会比较低。
2、若想选出的瓜中好瓜比例尽可能高-查准率尽可能高,可以只挑选最有把握正确的瓜,这样值TP会十分接近TP+FP,故而查准率会高。但是由于TP+FN不变,如若这样只选最有把握的瓜,显然TP值较小,故而查全率较低。

“P-R曲线”:查准率-查全率曲线

根据学习器的预测结果对样例排序,最前面是“最可能”是正例的样本,最后面则是“最不可能”是正例的样本。按照顺序逐个把样本作为正例预测,每次计算出此次对应的查准率、查全率,前者纵轴后者横轴画出对应曲线,即为P-R曲线
在这里插入图片描述
不同的学习器对应不同的P-R曲线,如何比较不同学习器的好坏:
1、若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可认为后者性能优于前者。如图A优于C
2、当曲线发生交叉,比较P-R曲线下面积的大小,一定程度上代表了该学习器查全率查准率取得双高的比例。如图A优于B
3、比较“平衡点”BEP即“查准率=查全率”时的取值。基于此认为图中A优于B
4、F1度量
在这里插入图片描述
考虑到一些应用情况下对查准率和查全率的重视程度不同,给出F1度量的一般形式——FβF_{\beta}Fβ,能够表达出对查准率/查全率的不同偏好
在这里插入图片描述
在这里插入图片描述

β\betaβ>0,度量查全率查准率的相对重要性,β\betaβ=1时即为标准F1;β\betaβ>1时查全率有更大影响;β\betaβ<1时查准率有更大影响。

在一些情况下,有多个二分类混淆矩阵,如多次训练/测试;多个数据集;执行多分类任务等情况,需要在n个二分类混淆矩阵上综合考虑查准率和查全率。
法1:计算各个混淆矩阵的查准率和查全率,再计算平均值,得到“宏查准率(macro-P)”、“宏查全率(macro-R)”、“宏F1(macro-F1)”
在这里插入图片描述
法2:先将各混淆矩阵对应元素平均,得到TP‾\overline{TP}TPFP‾\overline{FP}FPTN‾\overline{TN}TNFN‾\overline{FN}FN,基于此计算“微查准率(micro-P)”、“微查全率(micro-R)”和“微F1(micro-F1)”:
在这里插入图片描述
在这里插入图片描述
2.3.3ROC与AUC
由P-R曲线的构建过程呢,我们知道,排序本身的质量好坏体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏。我们在不同的应用任务中,根据不同任务需求来采用不同的截断点,如若更重视“查准率”,则可选择排序中靠前的位置进行截断;若更重视“查全率”,则选择靠后的位置进行截断。

“ROC”全称“受试者工作特征”曲线

根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算当前的“假正例率FPR”(做横轴)和“真正例率TPR”(做纵轴),画出“ROC曲线”。
其中“假正例率FPR”和“真正例率TPR”定义分别为
在这里插入图片描述
ROC图如例
在这里插入图片描述
绘图过程:给定m+m^+m+个正例和m−m^-m个反例,根据学习器预测结果对样例排序,现将分类阈值设为最大,即所有样例均预测为反例,此时真正例率和假正例率均为0,之后将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例,用线段连接相邻点即得。
设前一个标记点坐标为(x,y),当前样本若为真正例,则对应标记点的坐标为 (x,y+1m+\frac{1}{m^+}m+1) ;当前若为假正例,则对应标记点的坐标为 (x+1m−\frac{1}{m^-}m1,y) 。
不同的学习器对应不同的ROC曲线,如何比较不同学习器的好坏:
1、若一个学习器的 ROC 曲线被另一个学习器的曲线完全"包住",则可断言后者的性能优于前者
2、若两个学习器ROC 曲线发生交叉,则难以一般性地断言两者孰优孰劣。若一定要进行比较,则较为合理的判据是比较 ROC 曲线下的面积,即AUC
AUC可估算
在这里插入图片描述
先记录下来–以下小部分还没太看懂。。。┭┮﹏┭┮
在这里插入图片描述
2.3.4代价敏感错误率与代价曲线
为权衡不同类型错误所造成的不同损失,为错误赋予“非均等代价”
对于二分类任务,设定一个“代价矩阵”,其中costijcost_{ij}costij表示将第i类样本预测为第j类样本的代价
在这里插入图片描述
在非均等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”。
视第0类作为正类,第1类作为反类,令D+D^+D+D−D^-D分别代表样例集D的正例子集和反例子集,则“代价敏感”错误率
在这里插入图片描述
在非均等代价下,“代价曲线”可直接反映出学习器的期望总体代价。代价曲线图横轴是取值为[0,1]的正例概率代价
在这里插入图片描述
其中p是样例为正例的概率;
纵轴是取值为[0,1]的归一化代价
在这里插入图片描述
其中FPR是假正例率,FNR=1-TPR是假反例率。
还没太看懂+1。。。┭┮﹏┭┮
代价曲线图的绘制:
由ROC曲线坐标(FPR,TPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价。 ROC 曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。
在这里插入图片描述
2.4比较检验
有了试验评估方法和性能度量,接下来讨论如何对学习器的性能进行评估比较。机器学习的性能比较很复杂,涉及多个因素:期望比较泛化性能,而实验评估只能得到测试集上的性能;测试集上的性能与测试集本身及测试样例等选择也有关系;机器学习算法的随机性等

统计假设检验为进行学习器性能比较提供重要依据。
先介绍两种最基本的假设检验,然后介绍几种常用的机器学习性能比较方法。
以错误率为性能度量
2.4.1假设检验

2.5偏差与方差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值