第二章:模型评估与选择
此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…
2.1 经验误差与过拟合
- 错误率与精度
错误率:分类错误的样本占样本总数的比例:
E=a/m
精度:
1−a/m
- 误差:训练误差/经验误差(训练集);泛化误差(测试集)
- 过拟合与欠拟合
过拟合不可避免:
P ≠
NP(算法多项式时间、问题NP-hard;不可完全通过经验误差最小化获得最优解)
2.2 评估方法:如何选择评估泛化性能的测试集
- 留出法(hold-out)
定义:
D=S⋃T,S⋂T=∅(
S:训练集,
T:测试集)
注意:数据分布一致性(一般分层采样);一般若干次随机划分重复评估
- 交叉验证法(cross validation)
- 1)k-fold
定义:
D=D1⋃D2⋃...⋃Dk,Di⋃Dj=∅(i ≠
j)
取k-1个训练集,1个测试集,重复p次取平均
- 2)Leave One Out(LOO)
定义:每个子集一个样本
优缺点:较准确,但数据集大不适用
- 自助法(bootstrapping)
定义:自助采样,train=D’(有放回采样集),test=D\D’(外包估计)
优缺点:适用数据集小难以划分,但改变原始分布会有偏差
- 调参与最终模型
对每个参数选定变化范围和步长
验证集:用于模型评估过程的数据(测试集:模型实际中遇到的数据)
2.3 性能度量:如何选择度量泛化性能的评价标准
2.3.0 回归任务
- Mean squared error:
E(f;D)=m1i=1∑m(f(xi)=yi)2
- More common discription:
E(f;D)=∫x∼D(f(xi)−y)2p(x)dx
2.3.1 错误率与精度
- 错误率
E(f;D)=m1i=1∑mI(f(xi)≠yi)2
- 精度
acc(f:D)=m1i=1∑mI(f(xi)=yi)=1−E(f;D)
- 更一般的定义和描述
E(f;D)=∫x∼DI(f(xi)≠yi)p(x)dx
acc(f;D)=∫x∼DI(f(xi)=yi)p(x)dx=1−E(f;D)
2.3.2 查准率、查全率与F1
|
预测正例 |
预测反例 |
真正正例 |
TP |
FN |
真正反例 |
FP |
TN |
- 查准率(percision)
P=TP+FPTP
- 查全率(recall)
R=TP+FNTP
- F1分数
F1=P+R2PR
2.3.3 ROC与AUC
ROC:受试者工作特征(Receiver Operating Characteristic)——x轴FP,y轴TP
AUC:曲线下面积
2.3.4 代价敏感错误率与代价曲线
2.4 比较检验:如何比较度量的结果
- 假设检验
- 交叉检验t检验
- McNemar检验
- Friedman检验与Nemenyi后续检验
2.5 偏差与方差:如何解构泛化性能
- 偏差方差分解:解释学习算法泛化性能的一种重要工具
偏差:期望预测与真实结果的偏离程度(刻画算法本身的拟合能力)
方差:度量同样大小的训练集的变动所导致的学习性能的变化(刻画数据扰动所造成的影响)
噪音:刻画学习问题本身的难度
泛化误差:偏差+方差+噪音
- 偏差-方差窘境:偏差与方差有冲突