【读书笔记】周志华 机器学习 第二章 模型评估和选择

1 欠拟合和过拟合 偏差和方差

1.1 欠拟合和过拟合

欠拟合:算法学习能力太差,数据的一般特征都没有学会;
过拟合:算法学习能力太强,将数据自身特征当作一般特征;

1.2 偏差和方差

使用不同训练集产生的预测均值为: f ‾ ( x ) = E D [ f ( x ; D ) ] \overline f({\boldsymbol x}) = E_D[f({\boldsymbol x}; D)] f(x)=ED[f(x;D)];其中, f ( x ; D ) f({\boldsymbol x}; D) f(x;D)表示在数据集 D D D下训练得到 f f f对样本 x {\boldsymbol x} x的预测输出;
使用不同训练集产生的预测方差为: v a r ( x ) = E D [ ( f ( x ; D ) − f ‾ ( x ) ) 2 ] var({\boldsymbol x}) = E_D[(f({\boldsymbol x}; D) - \overline f({\boldsymbol x}))^2] var(x)=ED[(f(x;D)f(x))2]
期望输出与真实标记之间的差别称为偏差: b i a s 2 ( x ) = ( f ‾ ( x ) − y ) 2 {bias^2}({\boldsymbol x}) = (\overline f({\boldsymbol x}) - y)^2 bias2(x)=(f(x)y)2;其中 y y y是样本 x {\boldsymbol x} x的真实标记;
噪声为: ϵ 2 = E D [ ( y D − y ) 2 ] \epsilon ^ 2 = E_D[(y_D - y)^2] ϵ2=ED[(yDy)2];其中 y D y_D yD是样本 x {\boldsymbol x} x在数据集中的标记;
算法期望泛化误差为: E ( f ; D ) = E D [ ( f ( x ; D ) − y D ) 2 ] = b i a s 2 ( x ) + v a r ( x ) + ϵ 2 E(f; D) = E_D[(f({\boldsymbol x}; D) - y_D)^2] = {bias^2}({\boldsymbol x}) + var({\boldsymbol x}) + \epsilon ^2 E(f;D)=ED[(f(x;D)yD)2]=bias2(x)+var(x)+ϵ2;详细证明过程见周志华机器学习2.5 偏差与方差。
当模型欠拟合的时候,期望输出与真实标记之间差别较大,即偏差大
当模型过拟合的时候,训练数据的轻微扰动对结果的影响较大,即方差大

2 评估方法 性能度量

2.1 评估方法

在算法学习完成得到一个模型之后,我们需要测试评估模型的泛化误差。为此我们需要一个用于测试的数据集,称为测试集。从数据集 D D D中产生训练集 S S S和测试集 T T T用于训练和评估的方法有以下几种。

2.1.1 留出法

直接将数据集 D D D划分为两个互斥集合,一个作为训练集 S S S,一个作为测试集 T T T。一般将数据集的 2 3 \frac {2}{3} 32 4 5 {\frac {4}{5}} 54的数据作为训练集,其余作为测试集。需要注意的是,数据集的划分要保持数据分布的一致性。比如说当数据集中有500正例500负例,700个数据作为训练集,300个数据作为测试集的时候,训练集中必须350正例350负例,测试集中必须150正例150负例。

2.2.2 交叉验证法

将数据集划分为k个大小相似的互斥子集,每次选择其中一个子集作为测试集,其余k-1个子集作为训练集。这样可以选择k次。极端情况是m个数据的数据集划分为m个互斥子集,这种方法称为留一法

2.2.3 自助法

我们希望评估的是用数据集D训练出的模型。留出法和交叉验证法对D进行划分之后,实际用于训练的数据比数据集D要小。这样会引入训练样本规模不同导致的误差。留一法每次只用一个数据作为测试集,规模不同造成的影响较小,但是计算复杂度较高。可以使用自助法,既降低规模变化带来的影响,又减小计算复杂度。
设数据集D中含有m个数据,我们每次放回抽样,重复m次,得到一个含有m个数据的测试集S。因为是有放回抽样,所以抽样之后D中可能还有数据没有被抽中,数学证明,大概有36.8%数据没被抽中。将D-S即没有抽中的数据作为测试集。

2.2 性能度量

划分好数据集之后,开始对模型进行评估。以分类问题为例,常见的用于评估的性能指标如下。

2.2.1 错误率、精度

错误率 E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ! = y i ) E(f; D) = \frac {1}{m} \sum _{i = 1}^m I(f({\boldsymbol x}_i) != y_i) E(f;D)=m1i=1mI(f(xi)!=yi);表示预测结果错误的比率。
精度 a c c ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = = y i ) = 1 − E ( f ; D ) acc(f; D) = \frac {1}{m} \sum _{i = 1}^m I(f({\boldsymbol x}_i) == y_i) = 1 - E(f; D) acc(f;D)=m1i=1mI(f(xi)==yi)=1E(f;D) ;表示预测结果正确的比率。

2.2.2 查准率、查全率

混淆矩阵
查准率 P = T P T P + F P P = \frac {TP}{TP + FP} P=TP+FPTP;表示预测为正中真实为正的比率。
查全率 R = T P T P + F N R = \frac {TP}{TP + FN} R=TP+FNTP;表示真实为正中预测为正的比率。

2.2.3 P-R曲线、BEP、F1

根据模型的预测结果对样例进行排序,选择一个阈值,认为概率超过这个阈值的样例是正例,低于这个阈值的样例是负例。
阈值高
当阈值高时,预测为正的样例真实也为正,P=1,但是低于阈值的真实为正的样例预测为负,R较小。
阈值低
当阈值低时,预测为正的样例可能真实为负,P较小,但是真实为正的样例都会被预测为正,R较大。
PR曲线
若一个模型的PR曲线完全包含另一个模型的PR曲线,则可断言前者优于后者。当曲线交叉时,可以比较PR曲线围成的面积。但是面积不好求,所以通过平衡点BEP来比较两个模型性能。
更常用的比较两个模型性能的指标是F1度量 F 1 = 2 ∗ P ∗ R P + R F1 = \frac {2 * P * R}{P + R} F1=P+R2PR,当进行多次训练测试之后,得到多组混淆矩阵,则可以计算macro-F1和micro-F1

2.2.4 ROC曲线、AUC

ROC曲线和PR曲线类似。ROC曲线纵坐标是真正例率 T P R = T P T P + F N TPR = \frac {TP}{TP + FN} TPR=TP+FNTP,表示真正例里预测为正的比率;横坐标是假正例率 F P R = F P T N + F P FPR = \frac {FP}{TN + FP} FPR=TN+FPFP,表示真负例里预测为正的比率。
阈值高
当阈值高时,真实为正预测为正的比率较低,TPR较小,因为真实为正的样例有一些预测为负;真实为负预测为正的比率也低,FPR较小。
阈值低
当阈值低时,真实为正预测为正的比率较高,TPR较大;真实为负预测为正的比率也较高,FPR较大。
所以ROC曲线如下图所示:
ROC曲线
若一个模型的ROC曲线完全包含另一个模型的ROC曲线,则可断言前者优于后者。当曲线交叉时,可以比较ROC曲线面积围成的面积AUC

3 比较检验

比较检验有多种方法,这里只记录假设检验方法,其他方法可参考周志华的《机器学习》这本书。
我们只知道模型的测试错误率而不知道模型的泛化错误率,但是可以根据测试错误率 ϵ \epsilon ϵ来推测泛化错误率 ϵ ‾ \overline\epsilon ϵ
假设检验

4 参考文献

周志华 机器学习 清华大学出版社
谢文睿、秦州 机器学习公式详解 人民邮电出版社
部分图片源自网络,如有侵权联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值