西瓜书——模型评估与选择
一、 一种训练集一种算法
-
错误率:m个样本中有a个分类错误;E=a/m
-
训练误差/经验误差:在训练集上的误差
-
泛化误差:在新样本上的误差
-
过拟合:将训练样本“学”得太好,泛化能力下降;“过配”
- 通常是学习器过去强大
- 难以克服
-
欠拟合:训练集中的一般特征都没有“学到”,“欠配”
- 容易克服
-
验证集:调整超参数,优化模型
1.1 评估方法
- 通常以模型在测试集上的“测试误差”作为模型泛化误差的近似
- 难题:如何科学地从数据集中产生出训练集和测试集
1.1.1 留出法(常用)
- 训练/测试集的划分要尽可能保持数据分布的一致性 (通常采用“分层采用”)
- 通常是2/3~4/5样本用于训练
1.1.2交叉验证法
- 为了减少因样本划分不同而引入的差别,K折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证的均值。
1.1.3 自助法
- 有放回的从数据集D随机挑选一个样本,挑选m次,得到包含m个样本的训练集D’,数据集D中有的样本在D’中出现多次。
- 自助法在数据集较小、难以有效划分训练/测试集是很有用
- 自助法可以产生多个不同的训练集,适用于集成算法
1.2 性能度量
- 作用:衡量模型泛化能力的评价标准。
1.2.1 错误率与精度
1.2.2 查准率、查全率、F1
- 一般来说,查准率较高时,查全率偏低;查全率较高时,查准率偏低。
二、一种训练集多种算法
2.1 P-R图
- 作用:比较学习器性能的好坏
- 若只比较“平衡点”,这种方法过于简化,不能根据具体要求而定
2.2 ROC与AUC曲线
- 左右:研究学习器的泛化能力
三、多种训练集一种算法
3.1 代价敏感错误率与代价曲线
- 预测错误的代价不同
3.2 偏差和方差
-
偏差:预测值与真实值的差异;刻画学习算法本身的拟合能力。
-
方差:训练集变动所导致学习性能的变化;刻画了数据扰动所造成的影响。
-
噪声:在当前任务上任何学习算法所能达到的期望泛化误差的下界。刻画学习问题本身的难度
偏差-方差分解说明:泛化性能是由学习算法的能力,数据的充分性,以及学习任务本身的难度所共同决定的。
- 关系:模型越复杂——模型拟合能力越强——偏差变小——容易过拟合
四、测试集上的真实性
4.1 比较检验
- 目标:测试集上的性能在多大程度上保证真实的性能(测试集上的性能与真正的泛化性能未必相同)
- 测试集不同,反映出来的泛化性能不同
- 机器学习算法本身有一定的随机性,同一个测试集上多次运行,可能会有不同的结果
4.1.1 一个测试集一种算法
- 二项检验
4.1.2 多个测试集一种算法
- t检验
4.1.3 多个测试集两种算法
- 交叉验证t检验
4.1.4 一个测试集两种算法
- McNemar检验
4.1.5 多个测试集多种算法
- Friedman检验与Nemnyi后续检验
算法
- 交叉验证t检验
4.1.4 一个测试集两种算法
- McNemar检验
4.1.5 多个测试集多种算法
- Friedman检验与Nemnyi后续检验