第2章:模型评估与选择 — 西瓜书学习笔记
本文是周志华《机器学习》(西瓜书)第2章 模型评估与选择(Evaluation & Selection)的学习笔记,涵盖本章所有核心知识点,配有通俗类比与公式推导。
1经验误差与过拟合
基础概念
| 术语 | 定义 | 备注 |
|---|---|---|
| 错误率 | (错分样本数/总样本数) | |
| 精度 | 正确率 | |
| 训练误差(经验误差) | 学习器在训练集上的误差 | 不是泛化能力的真实反映 |
| 泛化误差 | 学习器在新样本上的误差 | 我们真正关心但无法直接计算的 |
过拟合 vs 欠拟合
🍉 通俗类比
欠拟合 = 小学生用”所有人均分”来预测考试成绩;过拟合 = 把”张三那天吃了韭菜饺子所以考砸了”也当成规律。机器学习最难的挑战就是找到那个”刚刚好”的中间地带。
📌 核心定义
过拟合是机器学习面临的关键障碍——无法彻底避免,只能缓解。NP 难问题(如 P ≠ NP),过拟合不可能完全消除。
2评估方法
核心难题:测试集应该和训练集互斥——测试样本不能在训练集中出现。
| 方法 | 做法 | 适用场景 | 注意 |
|---|---|---|---|
| 留出法 | 直接将数据集划分为训练集和测试集(如 70%/30%) | 数据量大 | 单次划分有偶然性;分层采样可缓解 |
| 交叉验证 | 分 份,每份轮流做测试,其余训练, 次取平均 | 最常用 | 10 折最常用;可重复 次 |
| 自助法 | 每次有放回采样 个,约 36.8% 未采样样本做测试 | 数据量少 | 改变了数据分布,引入估计偏差 |
自助法取样比例
每个样本被抽中的概率 , 次采样后未被抽中概率:
📐 公式
🍉 通俗类比
留出法 = 期末考试(只考一次,有点偶然);交叉验证 = 模拟考 + 期末考试取平均(更可靠);自助法 = 用有放回题目凑一套”仿造”考卷(估计有偏但数据利用率高)。
💡 技巧提示
分层采样:划分数据时保持每折中各类别比例与整体相同,避免某折全是好瓜另一折全是坏瓜的极端情况。
3性能度量
混淆矩阵
| 预测正 | 预测反 | |
|---|---|---|
| 真实正 | TP (真阳) | FN (假阴) |
| 真实反 | FP (假阳) | TN (真阴) |
核心指标
📐 公式
查准率 (预测为正的样本中真正为正的比例)
查全率 (所有正样本中被正确找出的比例)
🍉 通俗类比
查准率 = “宁可错杀一千不可放过一个”的反面:你说”这个是坏瓜”,有多少是真的坏瓜?查全率 = 所有坏瓜中,你成功抓出了几个?两者通常是矛盾的——提高阈值增加查准但降低查全,反之亦然。
F1 与 Fβ
退化为 F1(等权重); 偏重查全率; 偏重查准率。📐 公式
ROC 与 AUC
ROC 曲线:纵轴 TPR(真正例率 = 查全率),横轴 FPR(假正例率)。ROC 曲线越靠近左上角越好。AUC 是 ROC 曲线下面积,AUC = 1 完美,AUC = 0.5 随机猜测。
📐 公式
代价敏感错误率
不同类型错误的代价不同(如把癌症判为健康比反过来代价大得多),引入代价矩阵:
📐 公式
4比较检验
有了性能度量,还要回答一个关键问题:“算法 A 比算法 B 好 1 个百分点,这个差异是真实的还是随机波动?”
| 检验 | 适用场景 | 核心思想 |
|---|---|---|
| 二项检验 | 单个学习器 vs 泛化误差上界 | 二项分布检验测试错误率 |
| t 检验 | 比较两个学习器的性能 | 折 CV 得 对差值,做配对 t 检验 |
| McNemar 检验 | 两个分类器的分类结果 | 卡方检验两个分类器是否犯同样的错误 |
| Friedman 检验 | 多个算法在多个数据集上比较 | 先对每个数据集排名,再检验排名一致性 |
🍉 通俗类比
只比一次考试分数不靠谱——张三这次 90 李四 85,你能说张三一定比李四强吗?统计检验就是多做几轮考试,看分数差异到底是实力差距还是运气波动。
💡 技巧提示
Friedman 检验若显著,则需Nemenyi 后续检验来判断具体哪些算法之间的差异显著。这称为”两两比较”。
5偏差-方差分解
对学习算法的期望泛化误差进行拆解,得到理解泛化性能的关键等式:
📐 公式
- 偏差:期望预测与真实值的偏离程度——反映拟合能力
- 方差:预测值自身的波动程度——反映数据扰动的影响
- 噪声:问题本身的难度下界——无法通过算法降低
🍉 通俗类比
偏差-方差窘境 = 射箭。偏差:你瞄准时瞄偏了多少(方法对不对);方差:你每次出手的散布有多大(稳不稳定)。当你调整姿势让偏差减小(瞄得更准)时,手抖(方差)往往反而更大。机器学习模型复杂度增加时:偏差下降但方差上升。
📌 核心定义
Bagging 主要降方差(并行取平均,让抖动的结果互相抵消);Boosting 主要降偏差(串行修正,每次都把上次瞄偏的部分纠正回来)。
6本章总结
📝 考试高频考点
- 过拟合的定义、原因和缓解策略
- 三种评估方法的对比(留出法 vs 交叉验证 vs 自助法)
- 折交叉验证的流程与 **分层采样** 的意义
- 查准率 P vs 查全率 R 的权衡与 PR 曲线的含义
- F1 / Fβ 的计算: 的含义
- ROC 曲线和 AUC 的含义与计算方法
- 偏差-方差分解公式及各项含义
- 为什么说 Bagging 降方差,Boosting 降偏差
📌 核心定义
一句话总结:模型好不好,不能光看训练集上的表现。正确的打开方式是:合理划分数据 + 选择合适的性能度量 + 做统计检验确认差异显著 + 用偏差-方差分解理解误差来源。这四步是机器学习实践者的基本功。