《机器学习》(周志华)第2章 模型选择与评估 笔记 学习心得

第2章 模型选择与评估 学习心得

几个名词

错误率(error rate)

误分类样本占总样本的比例

精度(accuracy)

正确分类样本数与总样本数的比;
等于1减去错误率

混淆矩阵(confusion matrix)

第一行表示真实的正例,第二行表示真实的反例;第一列表示模型预测的正例,第二列表示模型预测的反例。

真正例(true positive,TP)

真实正例,且被模型判为正例。混淆矩阵的(1,1)元素。

假反例(false negative,FN)

真实正例,但被模型误判为反例。混淆矩阵的(1,2)元素。

假正例(false positive,FP)

真实反例,但被模型误判为正例。混淆矩阵的(2,1)元素。

真反例(true negative,TN)

真实反例,且被模型判为反例。混淆矩阵的(2,2)元素。

查准率(precision,P)

以信息检索为例,就是“检索出的信息中有多少比例是用户真正感兴趣的”,或者说检索出的正例中,有多少是真正的正例。
P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP

宏查准率(macro-P)

当有多个混淆矩阵,要综合他们的结果,可以计算出各自的查准率然后平均,得到宏查准率。
 macro-  P = 1 n ∑ i = 1 n P i \text { macro- } P=\frac{1}{n} \sum_{i=1}^{n} P_{i}  macro- P=n1i=1nPi

微查准率(micro-P)

当有多个混淆矩阵,要综合他们的结果,可以计算出平均混淆矩阵,再得到微查准率。
 micro-  P = T P ‾ T P ‾ + F P ‾ \text { micro- } P=\frac{\overline{T P}}{\overline{T P}+\overline{F P}}  micro- P=TP+FPTP

查全率(recall,R)

以信息检索为例,就是“用户感兴趣的信息中有多少被检索出来了”,或者说真正的正例中,被模型检测出来的有多大比例。
R = T P T P + F N R = \frac{TP}{TP + FN} R=TP+FNTP

宏查全率(macro-R)

当有多个混淆矩阵,要综合他们的结果,可以计算出各自的查全率然后平均,得到宏查全率。
 macro-  R = 1 n ∑ i = 1 n R i \text { macro- } R=\frac{1}{n} \sum_{i=1}^{n} R_{i}  macro- R=n1i=1nRi

微查全率(micro-R)

当有多个混淆矩阵,要综合他们的结果,可以计算出平均混淆矩阵,再得到微查全率。
micro ⁡ − R = T P ‾ T P ‾ + F N ‾ \operatorname{micro}-R=\frac{\overline{T P}}{\overline{T P}+\overline{F N}} microR=TP+FNTP

F β F_\beta Fβ

综合查准率与查全率进行的性能评估(performance measure)
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{\beta}=\frac{\left(1+\beta^{2}\right) \times P \times R}{\left(\beta^{2} \times P\right)+R} Fβ=(β2×P)+R(1+β2)×P×R
其中 β > 0 \beta > 0 β>0,表示了查全率相对于查准率的相对重要性。当 β < 1 \beta \lt 1 β<1表示查准率更加重要,当 β > 1 \beta \gt 1 β>1表示查全率更加重要。

F 1 F_1 F1

β = 1 \beta = 1 β=1,查准率与查全率同样重要,这时 F β F_\beta Fβ变为 F 1 F_1 F1
F 1 = 2 × P × R P + R = 2 × T P  样例总数  + T P − T N F 1=\frac{2 \times P \times R}{P+R}=\frac{2 \times T P}{\text { 样例总数 }+T P-T N} F1=P+R2×P×R= 样例总数 +TPTN2×TP
实际是查准率和查全率的调和平均值:
1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) \frac{1}{F 1}=\frac{1}{2} \cdot\left(\frac{1}{P}+\frac{1}{R}\right) F11=21(P1+R1)

F 1 F_1 F1(macro- F 1 F_1 F1

当有多个混淆矩阵,要综合他们的结果,可以计算出各自的查准率和查全率然后,再计算出宏查准率和宏查全率,最后得到宏 F 1 F_1 F1
 macro-  F 1 = 2 ×  macro-  P ×  macro  − R  macro-  P +  macro-  R \text { macro- } F 1=\frac{2 \times \text { macro- } P \times \text { macro }-R}{\text { macro- } P+\text { macro- } R}  macro- F1= macro- P+ macro- R2× macro- P× macro R

F 1 F_1 F1(micro- F 1 F_1 F1

当有多个混淆矩阵,要综合他们的结果,可以计算出平均混淆矩阵,再计算出微查准率和微查全率,最后得到微 F 1 F_1 F1
 micro-  F 1 = 2 × micro ⁡ − P ×  micro-  R  micro-  P + micro ⁡ − R \text { micro- } F 1=\frac{2 \times \operatorname{micro}-P \times \text { micro- } R}{\text { micro- } P+\operatorname{micro}-R}  micro- F1= micro- P+microR2×microP× micro- R

ROC(Receiver Operating Ccharacteristic)曲线

衡量模型的性能,横坐标事假正例率(False Positive Rate,FPR),即被误判为正例的占真实反例的比例:
T P R = T P T P + F N \mathrm{TPR}=\frac{T P}{T P+F N} TPR=TP+FNTP
纵坐标是真正例率(True Positive Rate),即查准率:
F P R = F P T N + F P \mathrm{FPR}=\frac{F P}{T N+F P} FPR=TN+FPFP

AUC(area under ROC curve)

ROC曲线下的面积,最大是1(理想情况)。

训练误差(training error)/ 经验误差(empirical error)

模型/学习器在训练集上的误差;
所谓“经验”是对于真实误差的估计。

范化误差(generalization error)

模型/学习器在测试集上的误差。

过拟合(overfitting)

在训练集上可以得到很小的误差,即经验误差小,但范化误差大,模型学习了很多训练集本身的特异性的规律。
只要相信“ P ≠ N P P\neq NP P=NP”那么必然存在过拟合问题,过拟合只能缓解不能消除。

欠拟合(underfitting)

过拟合相反,没有学习到训练集上本质的规律,不能够很好地进行分类。

偏差与方差分解(bias-variance decomposition)

对模型/学习器的泛化错误率进行分解。最终可以得到:
E ( f ; D ) =  bias  2 ( x ) + var ⁡ ( x ) + ε 2 E(f ; D)=\text { bias }^{2}(\boldsymbol{x})+\operatorname{var}(\boldsymbol{x})+\varepsilon^{2} E(f;D)= bias 2(x)+var(x)+ε2
其中第一项表示偏差 bias ⁡ 2 ( x ) = ( f ˉ ( x ) − y ) 2 \operatorname{bias}^{2}(\boldsymbol{x})=(\bar{f}(\boldsymbol{x})-y)^{2} bias2(x)=(fˉ(x)y)2,度量了模型期望预测与真值的偏离程度,刻画了模型本身的拟合能力;第二项表示方差 var ⁡ ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] \operatorname{var}(\boldsymbol{x})=\mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right] var(x)=ED[(f(x;D)fˉ(x))2],度量了同样大小,不同数据集变动造成的学习性能的变化(不稳定度),刻画了对于数据扰动的影响;第三项表示噪声 ε 2 = E D [ ( y D − y ) 2 ] \varepsilon^{2}=\mathbb{E}_{D}\left[\left(y_{D}-y\right)^{2}\right] ε2=ED[(yDy)2],是由于数据本身不可避免相对于理想的分布的噪声,也是任何模型能够达到的期望泛化误差的下界,刻画了学习问题本身的难度。
因此泛化误差是由模型的学习能力、数据的充分性、学习任务本身的难度共同决定。

偏差-方差窘境(bias-variance dilemma)

一般来说偏差与方差“此消彼长”,总结为一张直观的图:
请添加图片描述

模型选择(model selection)

所谓模型选择,就是采取什么算法/假设函数,设置什么参数/超参数。

划分训练/测试集的方法

留出法(hold-out)

直接将数据集划分为训练和测试集,两个集合互斥。
单次留出法往往不够可靠,可能产生意想不到的bias,因此可以多次随机shuffle,取平均,同时也能得出评估结果的标准差。
通常将大约2/3~4/5的样本作为训练集。(见bias/variance tradeoff

分层采样(stratified sampling)

保留类别比例的采样。

偏差/方差权衡(bias/variance tradeoff)

如果测试集过小,测试结果/评估结果方差(variance)较大;
如果训练集过小,训练模型本身可能导致偏差(bias)较大。

K折交叉验证

将数据集划分为k个等份,依次将其中一个作为测试集,剩余k-1个作为训练集,将得到的测试结果(一共k次)平均,即为最终的评估结果。由于在划分数据集时仍然存在随机性,因此可以随机做几次k折交叉验证,再对多次的k折交叉验证平均,例如,10次10折交叉验证。
k一般最常用的是10,此外也常用5、20。

留一交叉验证(Leave-One-Out,LOO)

当k折交叉验证中的k等于样本总数时,每个划分后的集合只包含一个样本,称为留一交叉验证。

自助法(bootstrapping)

关键在于采用了自助取样法(bootstrap sampling),即从原始数据集中有放回取样出一个与原始数据集样本容量相同的数据集。假设原数据集有m个样本,则某个样本不被取出的概率为 ( 1 − 1 m ) m \left(1-\frac{1}{m}\right)^{m} (1m1)m,当数据集足够大时:
lim ⁡ m ↦ ∞ ( 1 − 1 m ) m ↦ 1 e ≈ 0.368 \lim _{m \mapsto \infty}\left(1-\frac{1}{m}\right)^{m} \mapsto \frac{1}{e} \approx 0.368 mlim(1m1)me10.368
所以大约1/3的样本没有被取到(因此也被称为“包外估计”,out-of-bag estimate),从而可以用通过自主取样法得到的数据集作为训练集,原始数据集作为测试集。
但是自助法这个过程中自然的引入了偏差bias,因此这时其缺点。

调参(parameter tuning)

没错,就是所谓的调参。参数一般分为两种,一种是模型本身的参数,即需要模型通过学习不断修正获得的,往往数量比较多;另一种称为“超参数”其实是认为选择的关于模型/算法的参数,一般不会太多。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ML--小小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值