第 3 讲
模型评估与选择
评价指标、验证与交叉验证
训练确定参数 · 验证选择模型 · 测试评价定型结果
训练优化与泛化评价
房价模型:历史成交记录 → 新房屋预测
训练误差
已用样本上的平均损失
$$\widehat R_{S_{\rm train}}(h)$$
期望风险
目标分布上的平均损失
$$R(h)=\mathbb E[\ell(h(x),y)]$$
回归指标:预测值与真实值的距离
● 真实值◆ 模型预测
平均绝对误差 Mean Absolute Error, MAE
$$\operatorname{MAE}=\frac1m\sum_{i=1}^m|h(x_i)-y_i|=\frac{10+10+30}{3}\approx16.7$$
均方误差 Mean Squared Error, MSE
$$\operatorname{MSE}=\frac1m\sum_{i=1}^m(h(x_i)-y_i)^2=\frac{100+100+900}{3}\approx366.7$$
平方误差对较大的预测偏差给予更高权重。
人工构造预测;MAE 单位为万元,MSE 单位为万元²。$m$ 是当前评估集的样本数。
分类指标:混淆矩阵
垃圾邮件为正类,正常邮件为负类。
| 真实类别 ↓ / 预测 → | 垃圾 | 正常 |
| 垃圾 | 正确拦截 8 真阳性 · true positive · TP | 漏拦 2 假阴性 · false negative · FN |
| 正常 | 误拦 4 假阳性 · false positive · FP | 正确放行 86 真阴性 · true negative · TN |
准确率 accuracy
$$\frac{\mathrm{TP}+\mathrm{TN}}{m}=\frac{8+86}{100}=94\%$$
全部样本中,预测正确的比例。
召回率 recall
$$\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}}=\frac{8}{8+2}=80\%$$
实际正类中,被正确找出的比例。
$\displaystyle F_1=\frac{2\,\mathrm{Precision}\cdot\mathrm{Recall}}{\mathrm{Precision}+\mathrm{Recall}}
=\frac{2\mathrm{TP}}{2\mathrm{TP}+\mathrm{FP}+\mathrm{FN}}
=\frac{16}{22}\approx72.7\%$
Optimizing the F-Measure for Threshold-Free Salient Object Detection
Kai Zhao et al. · ICCV 2019
查准率与召回率
查准率 precision
拦下来的邮件中,多少真是垃圾?
$$P=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FP}}=\frac8{8+4}=66.7\%$$
分母:全部预测为垃圾的邮件
召回率 recall · 亦称查全率
真正的垃圾邮件中,拦住了多少?
$$R=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}}=\frac8{8+2}=80\%$$
分母:全部真实垃圾邮件
$$F_1=\frac{2PR}{P+R}=\frac{2\mathrm{TP}}{2\mathrm{TP}+\mathrm{FP}+\mathrm{FN}}=\frac{16}{22}\approx72.7\%$$
分类阈值与两种错误
邮件内容 $x$
→
模型得分 $s(x)$
→
$s(x)\ge\tau$ 时拦截
阈值降低
拦下更多邮件
漏拦不增,误拦不减阈值提高
放行更多邮件
误拦不增,漏拦不减
按任务代价选择指标与阈值,再用独立测试集评价。
参考:scikit-learn:分类与回归指标。固定数据与模型,仅改变阈值。
欠拟合与过拟合
| 状态 | 训练表现 | 新样本表现 |
欠拟合 underfitting | 主要关系仍未学好 | 误差较大 |
过拟合 overfitting | 适应了样本偶然性 | 误差可能增大 |
参数与超参数
$$h_d(x)=w_0+w_1x+\cdots+w_dx^d$$
| 对象 | 含义 | 确定依据 |
| 参数 $w_0,\ldots,w_d$ | 具体曲线 | 训练样本 |
| 超参数 $d$ | 次数上限 | 验证表现 |
超参数:hyperparameter。固定 $d$ 后,再从训练样本学习系数。
三种数据职责
训练集training set拟合参数
→
验证集validation set选择模型
→
测试集test set评价定型结果
模型定型之前,测试集保持独立。
留出法
独立同分布样本:随机划分,固定职责。
所有候选模型使用同一划分。
留出法:hold-out。比例为示例,具体取决于样本量与评估精度。
验证集上的模型选择
给定候选次数$d=0,1,\ldots,8$
→
分别训练$\hat h_0,\ldots,\hat h_8$
→
比较验证误差选择 $d^*$
$$d^*=\arg\min_d\;\frac1{n_{\rm val}}\sum_{(x_i,y_i)\in S_{\rm val}}\big(\hat h_d(x_i)-y_i\big)^2$$
均方误差(Mean Squared Error, MSE);$n_{\rm val}$ 为验证样本数。
多项式次数与验证误差
合成数据:$x\sim U(0,1)$,$y=\sin(2\pi x)+\varepsilon$,$\varepsilon\sim\mathcal N(0,\sigma^2)$;测试集不参与选择。
$k$ 折交叉验证
开发数据等分为 $k$ 份,轮流验证。
| 三折 | 第 1 份 | 第 2 份 | 第 3 份 |
| 第 1 轮 | 验证 | 训练 | 训练 |
| 第 2 轮 | 训练 | 验证 | 训练 |
| 第 3 轮 | 训练 | 训练 | 验证 |
$$\text{等大各折:}\quad\bar E_d=\frac1k\sum_{j=1}^{k}E_{d,j}$$
cross-validation;每轮重新拟合,测试集另留。
折分配与各折误差
60 个合成样本;同一候选比较使用相同折分配,每折独立拟合。
每一折中的预处理
$$\tilde x=\frac{x-\mu_j}{s_j}\qquad \mu_j,s_j\text{ 仅由第 }j\text{ 轮训练部分估计}$$
先划分本轮训练 / 验证
→
训练部分估计均值、尺度、模型
→
验证部分应用变换与预测
数据泄漏 data leakage
| 进入建模的信息 | 对应约束 |
| 全体样本的预处理统计量 | 每折内部估计 |
| 成交后才知道的属性 | 预测时已经可得 |
| 反复查看的测试结果 | 模型定型后评价 |
面向未来预测的时间划分
房价预测:用已知成交记录预测未来成交。
较早时期训练
→
较晚时期验证
→
最近留出时期最终测试
每次预测只使用当时已知的信息。
面向新对象的分组划分
同一房屋的多次记录 → 同一组
按记录随机分
同一房屋可能跨集合
评价可能偏乐观
按房屋整体分
验证房屋未参与训练
评价新房屋预测
上海训练、东京测试的评估边界
| 测试来源 | 评价范围 |
| 上海房屋 | 上海目标分布 |
| 东京房屋 | 东京目标分布 |
分布偏移:特征分布与定价关系都可能变化。
distribution shift;先统一特征、单位与价格口径。
模型定型与最终测试
确定完整方案特征、预处理、超参数
→
开发数据重训训练集 + 验证集
→
独立测试按预定指标报告
测试反馈一旦用于改模型,便成为开发信息。
学习曲线 learning curve
| 观察 | 检查方向 |
| 两者均高 | 表达能力、优化 |
| 差距较大 | 样本量、复杂度 |
合成数据;固定次数,改变训练量。各训练量重复 6 次,取均值。
评估流程小结
- 训练拟合,验证选择,测试评价
- 预处理纳入每折训练
- 数据划分对应应用对象与时间
阅读材料
周志华《机器学习》
第 2 章 §2.1–2.3:过拟合、评估方法、性能度量
第 3 讲结束
← → 翻页 · o 总览 · s 演讲者视图 ·
f 全屏 · 网址后加 ?print-pdf 可导出 PDF