《机器学习》第二章模型评估与选择 总结

基本概念
误差(error):学习器的实际预测输出与样本的真实输出之间的差异

训练误差(training error)/ 经验误差(empirical error):学习器在训练集上的误差

泛化误差(generalization error):学习器在新样本上的误差

过拟合(过配):学习器把训练样本自身的一些特点当作了所有潜在样本都具有的一般性质,这导致了泛化性能的下降。过拟合相对较难处理且无法避免

欠拟合(欠配):学习器对训练样本的一般性质尚未学好。

测试集和训练集的划分方法
留出法
定义:略。一般采用若干次随即划分,重复进行实验评估后取平均值作为留出法评估结果

采样:数据集划分的过程。
分层采样:保留类别比例的采样方式。
特点:测试集小时,评估结果的方差较大;训练集小时,评估结果的偏差较大。

交叉验证法
定义:将训练集D划分为k个子集,取k-1个子集为训练集最后一个为测试集,循环进行k次训练和测试。也称k折交叉验证。与留出法类似,交叉验证法也会用不同的样本划分方式重复数次。
留一法:令k=样本个数。评估结果相对准确,但对大规模训练集时训练次数可能会多到难以接受。

自助法
定义:在有m个数据的数据集D中有放回地采样m次得到数据集D’,用D’作为训练集,D-D’作为测试集。由第一个重要极限易推D-D’约有36.8%的样本。这样的测试结果亦称为包外估计(out-of-bag estimate)。
适用范围和特点:数据集较小,难以划分训练/测试集时;自助法产生的数据集改变了初始数据集的分布,会引入估计偏差,因此在初始数据量足够时留出法和交叉验证法更常用。

调参(parameter tuning):进行模型评估与选择时对算法参数进行设定。一般有两类参数,分别是算法参数和模型的参数。前者通常人工设定多个参数后产生模型,后者通过学习来产生多个候选模型。

性能度量

性能度量(performance measure):衡量模型泛化能力的评价标准

均方误差(mean squared error):公式(2.2)

错误率:分类错误的样本数占样本总数的比例,定义公式 (2.4) 。精度与错误率的和为1 。

查准率(precision,P):真正例与学习器判断为正例的个数比

查全率(recall,R):真正例与实际正例的个数比。查准率与查全率是一对矛盾的度量,查准率-查全率曲线叫做P-R曲线。若一个学习器的P-R曲线包围了另一个学习器,那么认为这个学习器的性能更优

平衡点(Break-Even Point,BEP):查准率=查全率时的取值

F1度量:BEP太过简化,F1是查准率与查全率的调和平均公式 (2.10) 。加权F1度量公式(2.11),β>1时查全率有更大影响,反之查准率影响更大

宏F1/查全率/查准率:在各个二分类训练中分别算出F1、查准率和查全率,取平均值

微F1/查全率/查准率:先将各混淆矩阵的对应元素TP、FP、TN、FN取平均值再计算F1、查准率和查全率

分类阈值(threshold):学习器为测试样本生成一个实值,然后将这个值与分类阈值进行比较,大于分类阈值分为正类,否则为反类。分类过程就相当于在实值排序中以某个截断点(cut point)将样本分为两部分

ROC曲线:从排序的好坏来考虑学习器泛化性能的好坏,横坐标为假正例率(FPR),即假正例与实际反例的数量比;纵坐标为真正例率(TPR),即真正例与实际正例的数量比。若一个学习器的ROC曲线被另一个包住,可认为后者性能优于前者。若两学习器ROC曲线发生交叉,则需要用ROC曲线下的面积,即AUC(area under roc curve)来判断两者性能

排序损失(loss):公式(2.21)证明见课后习题,AUC=1-loss

非均等代价(unequal cost):为权衡不同类型错误所造成的不同损失将预测错误加上系数

代价敏感错误率(cost-sensitive):考虑非均代价下的错误率,公式(2.23)

代价曲线(cost curve):非均代价下ROC曲线不能直接反应出学习器的期望总体代价,因此引入代价曲线

假设检验
统计假设检验(hypothesis test):运用统计学的方法比较两个学习器在统计意义上的优劣,以及这个优劣的把握程度

交叉验证t检验:对两个学习器A和B分别用k折交叉验证法得到k个错误率,再用它们对应错误率的差进行“A和B性能相同”的t检验,计算出均值和方差,带入公式(2.31)。但交叉验证时不同轮次的训练集会有重叠,不满足测试错误率为泛化错误率的独立采样这个条件,这会导致过高估计假设成立的概率,为了解决这个问题常用5X2交叉验证
5X2交叉验证:做5次2折交叉验证。为了缓解测试错误率的非独立性,仅计算第1次2折交叉验证两个结果的平均值,但对每次2折实验都计算出其方差,公式(2.32)服从*度为5的t分布。

McNemar检验:对二分类问题,可以得出两个待对比学习器分类结果的差别,假设两个学习器性能相同,应有判断错误的个数相同,那么判断错误的个数差的绝对值应服从正态分布,进一步公式(2.33)满足*度为1的卡方分布。

Friedman检验:交叉验证t检验和McNemar检验都是在一个数据集上比较两个算法的性能,但在很多时候我们想要直接对多个算法性能进行比较,此时可以使用基于算法排序的Friedman检验。公式(2.35)检验是否“所有的算法性能相同”,若不相同则需后续检验(post-hoc test)来进一步区分各算法。

Nemenyi检验:计算出平均序值差别的临界值域公式(2.36)。若两个算法的平均序值之差超出临界值域CD,则以相应置信度拒绝“两个算法性能相同”。

Friedman检验图:对每个算法用一个远点显示其平均序值,已原点为中心的横线段表示其临界值域CD的大小。图中若两个算法的横线段有交叠,则说明两个算法性能没有显著差别,否则说明有显著差别。

偏差-方差分解(bias-variance decomposition):解释学习算法泛化性能的重要工具,泛化误差可分解为偏差、方差和噪声之和。偏差度量了学习算法期望预测与实际的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小训练集变动导致的性能变化,即刻画了数据扰动所造成的影响;噪声表达了在当前任务上所有学习算法所能达到的期望泛化误差的下界,刻画了学习问题本身的难度。偏差-方差分解说明,泛化性能是由学习算法的能力、数据充分性和学习任务本身难度所共同决定的。

偏差-方差窘境(bias-variance):偏差和方差是有冲突的。在训练程度不足时,学习器拟合能力不强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度加深,学习器拟合能力逐渐增强,训练数据发生的轻微扰动都会导致学习器产生显著变化,此时方差主导了泛化错误率。图2.9形象说明了这一点。

课后习题
《机器学习》第二章模型评估与选择 总结