1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【机器学习】模型评估与选择(留出法 交叉验证法 查全率 查准率 偏差 方差)

【机器学习】模型评估与选择(留出法 交叉验证法 查全率 查准率 偏差 方差)

时间:2023-03-27 10:40:19

相关推荐

【机器学习】模型评估与选择(留出法 交叉验证法 查全率 查准率 偏差 方差)

其他机器学习系列文章见于专题:机器学习进阶之路——学习笔记整理,欢迎大家关注。

1. 过拟合

过拟合是指学习模型对训练样本预测得很好,但对新样本预测很差的现象。这通常是由于学习模型能力过于强大,以至于把训练样本自身的一些特点当做了一般性质。

过拟合是无法彻底避免的,只能缓解。模型选择就是要旨在避免过拟合并提高模型的预测能力。

2. 评估方法

通常用测试误差来近似模型的泛化误差。下面介绍几种常用的评估方法:

2.1 留出法(hold-out)

留出法直接将数据集DDD划分为两个互斥的部分,其中一部分作为训练集SSS,另一部分用作测试集TTT。

通常训练集和测试集的比例为70%:30%。同时,训练集测试集的划分有两个注意事项:

1. 尽可能保持数据分布的一致性。避免因数据划分过程引入的额外偏差而对最终结果产生影响。在分类任务中,保留类别比例的采样方法称为“分层采样”(stratified sampling)。

2. 采用若干次随机划分避免单次使用留出法的不稳定性。

2.2 交叉验证法(cross validation)

交叉验证法先将数据集DDD划分为kkk个大小相似的互斥子集,每次采用k−1k-1k−1个子集的并集作为训练集,剩下的那个子集作为测试集。进行kkk次训练和测试,最终返回kkk个测试结果的均值。又称为“kkk折交叉验证”(k-fold cross validation)。

图1:10折交叉验证示意图

为减少因样本划分带来的偏差,通常重复ppp次不同的划分,最终结果是ppp次kkk折交叉验证结果的均值。

2.3 留一法(leave-one-out,LOO)

留一法是kkk折交叉验证k=mk=mk=m(mmm为样本数)时候的特殊情况。即每次只用一个样本作测试集。该方法计算开销较大。

2.4 自助法(bootstrapping)

自助法以自助采样为基础(有放回采样)。每次随机从DDD中挑选一个样本,放入D′D'D′中,然后将样本放回DDD中,重复mmm次之后,得到了包含mmm个样本的数据集。

样本在mmm次采样中始终不被采到的概率是(1−1m)m\left( 1 - \frac { 1 } { m } \right) ^ { m }(1−m1​)m,取极限得到lim⁡m→∞(1−1m)m=1e=0.368\lim _ { m \rightarrow \infty } \left( 1 - \frac { 1 } { m } \right) ^ { m } = \frac { 1 } { e } = 0.368limm→∞​(1−m1​)m=e1​=0.368。即DDD中约有36.8%的样本未出现在D′D'D′中。于是将D′D'D′用作训练集,D\D′D \backslash D ^ { \prime }D\D′用作测试集。这样,仍然使用mmm个训练样本,但约有1/3未出现在训练集中的样本被用作测试集。

优点:自助法在数据集较小、难以有效划分训练/测试集时很有用。

缺点:然而自助法改变了初始数据集的分布,这回引入估计偏差。

3. 性能度量

二分类问题常用的评价指标时查准率和查全率。

根据预测正确与否,将样例分为以下四种:

TP(True positive,真正例)——将正类预测为正类数。

FP(False postive,假正例)——将反类预测为正类数。

TN(True negative,真反例)——将反类预测为反类数。

FN(False negative,假反例)——将正类预测为反类数。

(1)查准率(precision,精确率):

P=TPTP+FPP = \frac { T P } { T P + F P } P=TP+FPTP​

即将正类预测为正类数与预测为正类的总数的比值。

(2)查全率(recall,召回率)

R=TPTP+FNR = \frac { T P } { T P + F N } R=TP+FNTP​

即将正类预测为正类数与正类总数的比值。

查准率和查全率是一对矛盾的度量。是查准率和查全率的调和平均:

1F1=12(1P+1R)\frac { 1 } { F _ { 1 } } = \frac { 1 } { 2 } \left( \frac { 1 } { P } + \frac { 1 } { R } \right) F1​1​=21​(P1​+R1​)

F1=2PRP+RF _ { 1 } = \frac { 2 P R } { P + R } F1​=P+R2PR​

当查重率和查准率都高时,F1F_1F1​也会高。

4. 泛化能力

泛化误差(Generalization error)是学得的模型f^\widehat { f }f​对未知数据预测的误差。

对测试样本xxx,令yDy _ { D }yD​为xxx在数据集中的标记,yyy是xxx的真实标记,f(x;D)f ( x ; D )f(x;D)为训练集DDD上学得的模型fff在xxx上的预测输出。

学习算法的期望输出是:

f‾(x)=ED[f(x;D)]\overline { f } ( x ) = \mathrm { E } _ { D } [ f ( x ; D ) ] f​(x)=ED​[f(x;D)]

偏差是期望输出与真实标记之间的差别:

bias⁡2(x)=(f‾(x)−y)2\operatorname { bias } ^ { 2 } ( x ) = ( \overline { f } ( x ) - y ) ^ { 2 } bias2(x)=(f​(x)−y)2

方差是预测值与期望输出之间的方差:

var⁡(x)=ED[(f(x;D)−f‾(x))2]\operatorname { var } ( x ) = \mathrm { E } _ { D } \left[ ( f ( x ; D ) - \overline { f } ( x ) ) ^ { 2 } \right] var(x)=ED​[(f(x;D)−f​(x))2]

噪声是标记与真实标记之间的方差:

ε2=ED[(yD−y)2]\varepsilon ^ { 2 } = \mathrm { E } _ { D } \left[ \left( y _ { D } - y \right) ^ { 2 } \right] ε2=ED​[(yD​−y)2]

偏差度量了学习算法的期望预测与真实结果的偏离程度,刻画了学习算法本身的拟合能力。

方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动造成的影响。

噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,刻画了学习问题本身的难度。

算法的期望泛化误差E(f;D)\mathrm { E } ( f ; D )E(f;D)可以分解为偏差、方差和噪声之和:(推导过程见参考文献1)

E(f;D)=bias⁡2(x)+var⁡(x)+ε2E ( f ; D ) = \operatorname { bias } ^ { 2 } ( \boldsymbol { x } ) + \operatorname { var } ( \boldsymbol { x } ) + \varepsilon ^ { 2 } E(f;D)=bias2(x)+var(x)+ε2

参考文献:

《统计学习方法》第一章统计学习方法概论——李航《机器学习》第二章模型评估与选择——周志华

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。