当前位置:   article > 正文

第二章—模型评估与选择_十折交叉验证和t检验

十折交叉验证和t检验

一、基本概念

误差:实际预测输出与样本的真实输出之间的差异

训练误差:训练集上的

泛化误差:新样本上的

过拟合:把训练样本所包含的的不太一般的特性都学到(过拟合是无法彻底避免的)

模型选择:同一个学习算法,当使用不同的参数配置时,也会缠身不同的模型(对泛化模型进行评估)

 二、评估方法

有关数据集的介绍。icon-default.png?t=N7T8http://t.csdn.cn/jw0Ca

 1、留出法

留出法通过随机划分数据集为训练集和测试集,用训练集训练模型,用测试集评估模型的性能。划分的比例可以根据需要自行调整。

留出法的优点是简单易懂,计算量小,适合数据量较小的情况下使用。缺点是对数据集划分的随机性很敏感,可能会导致模型性能评估结果有较大波动。

使用留出法时,一般要采用若按次随机划分、重复进行实验评估后取平均值作为留出法的评估结果

2、交叉验证法

将数据集D划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集。

下图以10折交叉验证示意:

通常要使用 不同的划分重复P次,最终的评估结果是这P次k折交叉验证结果的均值;(10次10折交叉验证与100次留出法都是进行了100次训练/测试)

3、自助法

        包含m个样本的数据集D,每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将样本放回初始数据集,使得该样本下次采样仍有可能被采到;这个过程重复执行m次后,就得到了一个包含m个样本的数据集D’;这就导致有一部分的样本可能从未被采样到,经取极限计算约为36.8%,于是用将D’作为训练集,D\D’作为测试集,这样使得仍有约三分之一的样本未经过训练用于测试

三、性能度量(衡量模型泛化能力的评价标准)

回归任务中常用的性能度量是“均方误差”:MSE = (1/N) * Σi=1~N(yi - ŷi)^2

分类任务:

1·错误率和精度

2·混淆矩阵、准确率、召回率与F1;查准率和查全率是一对矛盾的度量

3·P-R图

  

           1>若曲线a完全“包住”曲线b,则a性能优于b。

           2>若曲线a和曲线b发生了相交,则无法比较。

           3>比较曲线a和曲线b曲线下面积的大小。面积大则性能优。

           4>比较“平衡点”,简称BEP(P和R相同时的点)A优于B。

4·F1度量

在应用中,对查准率和查全率的重视程度有所不同。

例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确实是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。F1度量的一般形式是,能让我们表达出对查准率/查全率的不同偏好:

其中,β>0度量了查全率对查准率的相对重要性。β=1时,退化为标准的F1;β>1时查全率有更大影响;β<1时,查准率有更大影响。 

5·ROC和AUC

 很多学习器是为测试样本产生一个实值或预测概率,然后将这些预测值与一个分类阈值进行比较,若大于阈值则分类为正类,否则为反类

ROC曲线的纵轴是“真正例率”(TPR),横轴是“假正例率”(FPR)。

5·代价敏感错误率

6·代价曲线 

代码

二分类问题,0为正类,1为负类,预测正类的概率如下表。非均等代价,代价矩阵为cost01=1, cost10=20,costii=0(i=0,i=1)

四、比较检验

1·交叉验证t检验

交叉验证t检验则是专门针对两个不同的模型在同一个数据集上进行k折交叉验证后的性能比较方法

2·Friedman检验与Nemenyi后续检验

上述交叉验证t检验是在一个数据集上对两个不同的模型性能进行比较,而当需要在一组数据集上对多个模型的性能进行比较时,则需要使用Friedman检验。Friedman检验是一种基于模型性能排序的检验方法,它在同一个数据集上依据某些性能评价指标对多个模型的性能好坏进行排序,进而获得多个模型在一组数据集上的性能排序结果,依照此结果平均计算得到在这组数据集上的平均性能排序,倘若不同模型的性能相同时,它们的平均性能排序应该相同。

3·偏差、方差和泛化误差

泛化误差:是用来衡量一个学习机器推广未知数据的能力,即根据从样本数据中学习到的规则能够应用到新数据的能力。

泛化误差分解:泛化误差=偏差+方差+噪声

通常情况下,噪声无法人为控制,准确的说无法通过模型来消除,所以通常认为泛化误差受偏差和方差影响。减小泛化误差就要从偏差和方差两方面均衡考虑

偏差:度量了学习算法的期望预期与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。把模型比喻成一支猎枪,预测的目标是靶心,假设射手不会手抖且视力正常,那么这支枪(模型)的能力就可以用多次射击后的中心(相当于预测值的期望,即和靶心的距离来衡量(偏离了靶心有多远)。当猎枪(模型)和子弹(样本)质量都很好时,就能得到方差和偏差都比较低的结果。但是如果猎枪是没有校准的或者目标超出有效射程,那么偏差就会更高(击中点离靶心比较远)。子弹(样本)也可能出问题,比如子弹的形状、重量等因素,导致瞄准一个点多次射击在靶上会散开一片,这就是高方差的情况。

方差:度量了同样大小的训练集的变动所导致的学习性能的变化,反映了在不同样本集上模型输出值的变异性,方差的大小反应了样本在总体数据中的代表性,或者说不同样本下模型预测的稳定性。即刻画了数据扰动所造成的的影响。比如现在要通过一些用户属性去预测其消费能力,结果有两个样本,一个样本中大多数都是高等级活跃会员,另一个则是大部分是低质量用户,两个样本预测出来的数据的差异就非常大,也就是模型在两个样本上的方差很大。如果模型在多个样本下的训练误差(经验损失)“抖动”比较厉害,则有可能是样本有问题。

图中红色的靶心表示测试样本的真实标记,蓝色的点表示模型在不同训练集上选出的函数的输出。第一列的两个图中,蓝色的点都比较集中,说明模型的稳定性好,也就是方差小;第一行的两个图中,蓝色点的中心都比较靠近红色靶心,说明模型的拟合能力强,也就是偏差小。所以总结如下:
low bias and low variance:又准又稳
low bias and high variance: 准但不稳
high bias and low variance:不准但稳
high bias and high variance:不准又不稳

4·偏差和方差的权衡

泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定的。对于给定的学习任务,为了取得好的泛化性能,则需要使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动所造成的影响小。

一般来说偏差与方差是有冲突的,即方差和偏差会此消彼长的现象,这称为偏差-方差窘境

给定学习任务,假定我们能够控制学习算法的复杂程度,在训练不足时,学习器的拟合能力不够强,就出现欠拟合(under-fitting),训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率,如果是在分类任务中可能在训练集和测试集上的准确率都非常低(即错误率都很高);随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率在训练程度充足时,学习器的拟合能力已经非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,训练模型时用力过猛时就会发生“过拟合 (over-fitting),在分类任务上可能会出现训练集上准确率高,测试集上准确率低。此时训练数据自身的非全局性的特性(特异性)也被学习器学到了,导致预测值的变异性更大。所以我们需要在模型复杂度之间权衡,使偏差和方差得以均衡(trade-off),这样模型的整体误差才会最小。

学习文章:

http://t.csdn.cn/yl68W

http://t.csdn.cn/qfXin

http://t.csdn.cn/8u9b4

http://t.csdn.cn/Lelxu

http://t.csdn.cn/gG89G

http://t.csdn.cn/5pq11

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号