2.1 经验误差与过拟合
通常我们把分类错误的样本数占样本总数的比例为”错误率”,精度=1-错误率。模型的实际预测输出与样本的真实输出之间的差异称为“误差”,模型在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”
当模型把训练样本学的太好了的时候,很可能把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降,称之为过拟合。反之是欠拟合这是指对训练样本的一般性质尚未学好。
2.2 评估方法
通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。
2.2.1 留出法
留出法直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即D=S∪T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。
单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估效果。
常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。
2.2.2 交叉验证法
交叉验证法先将数据集D划分为k个大小相似的互斥子集。每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。
通常把交叉验证法称为k折交叉验证,k的常用取值是10,此时称为10折交叉验证。
与留出法相似,将数据集D划分为k个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如”10次10折交叉验证“。
当数据集D中包含m个样本,若令k=m。则得到了交叉验证法的一个特例:留一法。
2.2.3 自助法
给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果。显然,D中有一部分样本会在D’中多次出现,而另一部分样本不出现。可以做一个简单的估计,样本在m次采样中始终不被采到的概率时36.8%。
自助法在数据集较小,难以有效划分训练/测试集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用一些。
2.2.4 调参与最终模型
大多数学习算法都有参数需要设定,参数配置不同,学得模型的性能往往有显著差别。因此,在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是所说的”参数调节",简称调参。
2.3 性能度量
回归任务最常用的性能度量是均方误差
2.3.1 错误率与精度
错误率是分类错误的样本数占样本总数的比例
精度则是分类正确的样本数占样本总数的比例
2.3.2查准率、查全率与F1
真正例TP(true positive):判断为真,实例也是真
假正例FP(false positive) :判断为真,实例为假
真反例TN(true negative):判断为假,实例也为假
假反例FN(false negative):判断为假,实例为真
下表更合适的表述了这四种变量的关系
查准率:P = TP / (TP + FP)
查全率:R = TP / (TP + FN)
查准率和查全率是一对矛盾的度量,一般来说,这是一对此消彼长的概念。
以查准率为纵轴,查全率为横轴作图,就能得到查准率-查全率曲线,简称P-R曲线,显示该曲线的图称为P-R图。示意图如下:
若一个模型的P-R曲线被另一个模型的曲线完全包住,则可断言后者的性能优于前者。故图中A模型的性能就优于C模型。
但是模型A和模型B的P-R曲线发生了交叉难以比较,于是人们设计了平衡点BEP(Break-Even Point)这个度量,它是查准率=查全率时的取值。基于BEP比较,可认为模型A优于模型B。
但是BEP还是过于简化了些,更常用的是F1度量:
F1度量的一般形式为
其中β>0度量了查全率对查准率的相对重要性,β=1时退化为标准的F1;β>1时查全率有更大影响,β<1时查准率有更大影响。