第二章 模型评估与选择
2.1 经验误差与过拟合
错误率(error rate):分类错误的样本数占样本总数的比例。
精度(accuracy):1 - 错误率
误差(error):学习器的实际预测输出与样本的真实输出之间的差异称为误差。
误差(error):学习器的实际预测输出与样本的真实输出之间的差异称为误差。
训练误差(training error) / 经验误差(empirical error):学习器在训练集上的误差。
泛化误差(generalization error):学习器在新样本上的误差。
过拟合(overfitting):学习器把训练样本学的太好,把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,导致泛化性能下降,这种现象在机器学习中称为过拟合。
欠拟合(underfitting):与过拟合相反,对训练样本的一般性质尚未学好。
最常见的导致过拟合的因素是学习能力过于强大,而欠拟合通常是由于学习能力低下造成的。
学习能力:由学习算法和数据内涵共同决定。
机器学习面临的问题通常是NP难甚至更难,而有效的学习算法必然是在多项式时间内运行完成。若可彻底避免过拟合,则通过经验误差最小化就能获得最优解,这就意味着我们构造性的证明了P=NP。因此只要相信P≠NP,过拟合就不可避免。
2.2 评估方法
测试集(testing set)
测试误差(testing error)
通常假设测试样本也是从样本真实分布中独立同分布采样而得。需注意的是,测试集应该尽可能的与训练集互斥。
当我们只有一个包含m个样例的数据集D时,有以下几种常见的做法:留出法、交叉验证法、自助法。
留出法

注:
- 训练 / 测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对结果产生影响。通常采用分层采样。
- 在使用留出法时一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
- 通常将数据集D的大约 2/3 ~ 4/5 用于训练,剩余样本用于测试。

当 k 刚好等于数据集D的样本总数 m 时,得到了交叉验证法的一个特例:留一法(Leave-One-Out,简称LOO)。
留一法的优势:
- 不受随机样本划分方式的影响;
- 评估结果比较准确(NFL定理同样适用)。
留一法的劣势:
- 数据集比较大时,训练的计算开销可能难以忍受;
- 算法调参复杂。
自助法

优势:
- 自助法在数据集较小、难以有效划分训练 / 测试集时很有用;
- 能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。
劣势:
- 自助法产生的数据集改变了初始数据集的分布,会引入估计偏差。
调参与最终模型
参数调节 / 调参(parameter tuning)
验证集(validation set):模型评估与选择中用于评估测试的数据集。===========跟测试集的关系是???
2.3 性能度量(performance measure)

下面介绍分类任务中的性能度量。
错误率与精度
错误率:分类错误的样本数占样本总数的比例。
精度:分类正确的样本数占样本总数的比例。
对样例集D,分类错误率定义为

精度定义为:

更一般的,对于数据分布D和概率密度函数p(*),错误率描述为:

精度描述为:

查准率(precision)、查全率(recall)与F1

查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

F1度量

Fβ度量
![]() |
![]() |
在n个二分类混淆矩阵上综合考察查准率和查全率时:

ROC与AUC
ROC:全称是受试者工作特征(Receiver Operating Characteristic)曲线
TPR:True Positive Rate,预测出的正例在所有实际正例中所占的比例。

FPR:False Positive Rate,预测为正例的反例在所有实际反例中所占的比例。

ROC曲线以TPR为纵轴,以FPR为横轴,过程与P-R曲线的过程类似而得到。

AUC:Area under ROC Curve

代价敏感错误率与代价曲线
非均等代价(unequal cost):是为了权衡不同的错误所造成的不同的损失。
代价矩阵(cost matrix):costij 表示将第 i 类样本预测为第 j 类样本的代价。

代价敏感(cost-sensitive)错误率:


比较检验
假设检验
假设检验中的假设是对学习器泛化错误率分布的某种判断或猜想。
现实任务中我们并不知道学习器的泛化错误率,只能获知其测试错误率。可根据测试错误率估推出泛化错误率的分布。

交叉验证 t 检验
5*2交叉验证法
McNemar 检验
Friedman 检验 与 Nemenyi 后续检验
偏差与方差
偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。