1、第2章 模型评估与选择.22.1 经验误差与过拟合2.2 评估方法2.3 性能度量2.4 比较检验2.5 偏差与方差.32.1 经验误差与过拟合经验误差 VS 泛化误差过拟合 VS 欠拟合.4.52.2 评估方法2.2.1、留出法(hold-out)直接将数据集D划分为两个互斥的集合。2.2.2交叉验证法(cross validation)将数据集D划分为K个大小相似的互斥子集,每次用K-1个子集的并集作为训练集,余下的子集作为测试集。缺点比较:我们希望评估的是用D训练的模型。但在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练
2、样本规模不同而导致的估计偏差。.62.2.3 自助法 “自助法”是针对上述缺点的一个比较好的解决方案,它直接以自助采样法为基础。给定包含m个样本的数据集D,我们对它进行采样产生数据集D:每次随机从D中挑选一个样本,将其拷贝放入D,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D,这就是自助采样的结果。于是我们可将D用作训练集,DD用作测试集;这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试。.72.2.4 调参与最终模型 现实中常见的做法,是对每
3、个参数选择一个范围和变化步长,例如在0,0.2范围内以0.05为步长,则实际要评估的候选参数值是5个,最终从这5个值中产生选定值。.82.3 性能度量衡量模型泛化能力的评价标准2.3.1 错误率与精度错误率是分类错误的样本数占样本总数的比例精度是分类正确的样本数占样本总数的比例.9 真实情况预测结果正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例).10“平衡点”(Break-Event Point,简称BEP),就是查准率与查全率时的取值。.11 .122.3.3 ROC和AUC 根据实值或概率预测结果,我们可以将测试样本进行排序根据实值或概率预测结果,我们可以将测试样
4、本进行排序,“最可能”是正例的排在前面“最不可能”是正例的排在最后面。分类过程相当于在这个排序中以某个“截断点”将样本分为两个部分,前一部分判做正例,后一部分则判作反例。在不同的应用任务中,我们可根据任务需求来采用不同的截断点。 排序本身质量的好坏排序本身质量的好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说“一般情况下”泛化性能的好坏。ROC曲线则是从排序本身质量的好坏的排序本身质量的好坏的角度角度来研究学习器泛化性能。.13ROC全名“受试者工作特征”曲线,以“真正例率”为纵轴,以“假正例率”为横轴。真正例率真正例率TPRTPR:真正例样本数/真实情况是正例的样本数(
5、查全率)假正例率假正例率FPRFPR:假正例样本数/真实情况是是反例的样本数基于基于ROCROC曲线的学习器性能评价规则曲线的学习器性能评价规则1. 1. 当曲线没有交叉的时候当曲线没有交叉的时候:外侧曲线的学习器性能优于内侧;2. 2. 当曲线有交叉的时候当曲线有交叉的时候:比较ROC曲线下的面积即 AUC (Area Under ROC Curve).142.3.4 代价敏感错误率与代价曲线 在现实任务汇总常会遇到这样的情况:不同类型的错误所造成的后果不同。为权衡不同类型错误所造成的的不同损失,可为错误赋予“非均等代价”(unequal cost)。如下图所示,正确判断的代价显然应该为0,
6、错误判断的代价之间的比值会影响我们对学习器的改造。 可令cost ij为把i类样本错判为j类样本的代价,对所有类型错误的数量与其错误代价的乘积求和,再除以样本总数量,就得到代价敏感(cost-sensitive)错误率。.15在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可以达到目的。代价曲线的横轴是正例概率代价P(+)cost,纵轴是归一化代价cost normp是样例为正例的概率FPR是假正例率,FNR = 1 - TPR.162.4 比较检验2.4.1假设检验 假设检验的基本思想是小概率反证法思想。小概率思想是指小概率事件(P0.01或P0.05)在一次试
7、验中基本上不会发生。反证法思想是先提出假设(检验假设H0),再用适当的统计方法确定假设成立的可能性大小,如可能性小,则认为假设不成立,若可能性大,则还不能认为不假设成立。 .172.4.2 交叉验证t检验 基本思想基本思想:若两个学习器的性能相同,则使用相同的训练/测试集得到的测试错误率应相同。假设检验的前提假设检验的前提:测试错误率均为泛化错误率的独立采样。k k折交叉验证产生的折交叉验证产生的K K对测试错误率对测试错误率:先对每对结果求差,若两个学习器性能相同则差值均值应为0。因此根据差值对“学习器AB性能相同”做t检验,计算差值的均值和方差,在显著度确定条件下,判断变量是否小于临界值,
8、若小于则无显著差别,否则可判断平均错误率较小的学习器性能较优。因样本有限,加查验证不同轮次训练集有重叠,测试错误率实际上不独立,会导致过高估计假设成立的概率。.182.4.3McNemar检验 McNemar主要用于二分类问题,与成对t检验一样也是用于比较两个学习器的性能大小。主要思想是:若两学习器的性能相同,则A预测正确B预测错误数应等于B预测错误A预测正确数,即e01=e10,且|e01-e10|服从N(1,e01+e10)分布。.192.4.4 Friedman检验和Nemenyi后续检验 上述的三种检验都只能在一组数据集上,F检验则可以在多组数据集进行多个学习器性能的比较,基本思想是在
9、同一组数据集上,根据测试结果(例:测试错误率)对学习器的性能进行排序,赋予序值1,2,3,相同则平分序值,如下图所示:.20若学习器的性能相同,则它们的平均序值应该相同,且第i个算法的平均序值ri服从正态分布N(k+1)/2,(k+1)(k-1)/12),则有: .21 .222.5偏差与方差 偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。算法的期望泛化误差进行分解,得到E(f;D)=bias2(x)+var(x)+2泛化误差可分解为偏差、方差与噪声之和。偏差度量了学习算法的期望预测与真实结果的偏离程度方差度量了同样大小的训练集的变动所导致的学习性能的变化噪音表示了在当前任务上任何算法所能达到的期望泛化误差的下界.23回顾