机器学习西瓜书之模型评估与选择

模型评估与选择

1、经验误差和过拟合

  • 精度和错误率

    错误率:分类错误的样本数占样本总数的比例。E = a/m
    精度:1-E
    学习器在训练集上的误差称为”训练误差“或”经验误差“,在新样本上的误差称为”泛化误差“。
    我们期望能获得一个经验误差最小,对训练集分类正确的学习器。但是这不是我们真正想要的模型。
    上面所说的学习器可能过分贴合训练集,导致在实践应用中,面对新样本泛化性能差。
    
  • 过拟合和欠拟合

     当学习器把训练样本学的太好了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降,这种现象在机器学习中称为==过拟合==。与之相反的就是欠拟合。
     欠拟合就是对训练样本的一般性质尚未学好。
     过拟合的常见原因是由于学习能力过于强大;欠拟合通常是由于学习能力低下而造成的。
     模型选择包括选择学习算法和选择使用的参数配置。
    

2、评估方法

对于模型的评估和选择需要通过实验测试来对学习器的泛化误差进行评估而进而做出选择。需要一个和训练集互斥且同样独立同分布采样得到的测试集。
那么问题来了,当只有一个数据集的时候,如何从中产生训练集和测试集呢?(此时并不是在训练模型,而是在尝试,此时还没有样本,而所谓的数据集在选择算法完成后,将全部是模型的训练集。想要测试某种算法的泛化能力只能从数据集中挑选部分成为测试集。)
这里产生训练集和测试集的方法,我们期望在整体”训练集“中分出评估所用的训练集和测试集之后,新的训练集测试的结果与整体”训练集”测试的结果一致

有以下四种方法:

  • 留出法
    把数据集D直接划分成两个互斥的集合,其中一个做训练集S,另一个作为测试集T,在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计
    使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为使用留出法的评估结果
    注意:训练集和测试集的划分要尽可能保持数据分布的一致性,避免数据划分过程引入额外的偏差。比如:在采样的时候保留类别比例的分层采样。
    问题:若训练集S包含绝大多数样本,则训练出的模型可能更接近于用数据集D训练出来的模型,但由于测试集T比较小,评估结果可能不够稳定准确;若是让测试集T多一些样本,那么训练集S和数据集D训练出的模型差别会更大,从而降低了评估结果的保真性。常见做法是将大约2/3~4/5的样本用作训练,剩余样本用于测试。
  • 交叉验证法
    将数据集D划分成k个大小相似的互斥子集,并且每个子集 D i D_i Di 都尽可能数据分布的一致性(从D 中分层采样)。然后每次用k-1个子集的并集作为训练集,余下的一个子集作为测试集,如此就可以进行k次训练和测试,最终返回这k个测试结果的均值。
    交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,所以也叫k折交叉验证,最常用的是10折交叉验证。
    与留出法相似,为了减少因样本划分不同而引入的差别,需要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,常见10次10折交叉验证
  • 留一法
    若数据集D包含m个样本,令 k = m k=m k=m 则得到交叉验证法的特例留一法。(此时每一个子集里都只有一个样本)
    优点:
    1、留一法不受随机样本划分方式的影响,因为m个样本只有唯一的方式划分为m个子集
    2、留一法使用的训练集S与数据集D相比只少了一个样本,所以模型很相似,评估结果往往倍认为比较准确。
    缺点:在数据集比较大时,训练m个模型的计算开销难以忍受。
  • 自助法
    给定包含m个样本的数据集D,对它进行采样产生数据集D‘:每次随机从D中挑选一个样本,拷贝放入D’ ,再放回D中,使得该样本在下次采样时仍有可能被采到,重复m次后,就得到了包含m个样本的数据集D‘ 。(D中有一部分样本会在D’中多次出现,而还有一部分样本不出现,D中约有36.8%的样本未出现在D‘ 中)
    于是我们可以用D’ 作为训练集,D\D’ 用作测试集;这样实际评估的模型和期望评估的模型都是用m个训练样本,而仍有1/3、没在训练集中出现的样本用于测试。这样的测试结果称“包外估计”
    自助法在数据集较小、难以有效划分训练/测试集时有用。但是自助法产生的数据集改变里初始数据集的分布,会引入估计偏差
调参和最终模型

机器学习涉及两类参数

  • 算法的参数(超参数):数目在十以内

  • 模型的参数:数目可能很多

     两者调参方式相似,都是产生多个模型之后基于某种评估方法来进行选择;不同之处在于前者通常是由人工设定多个参数候选者后产生模型,后者则是通过学习来产生多个候选模型。
    

    参数配置不同,学得模型的性能往往有显著差别。所以需要调参。由于对每种参数配置都训练出来模型是不可行的,通常是对每个参数选定一个范围和变化补偿,从多个候选值中产生选定值,虽然这往往不是最佳值,但这是折中的结果。但是由于强大的学习算法有不少参数设定,折中往往也难以调参,所以参数调的好不好往往对最终模型性能有关键性影响。

  • 最终模型:不是在评估实验中得到的模型,而是采用由评估实验确定的算法和参数配置,用完整的数据集D作为模型的训练集训练出来的模型。

3、性能度量

样例集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . . . . , ( x m , y m ) D={ (x_1,y_1),(x_2,y_2),......,(x_m,y_m) } D=(x1,y1),(x2,y2),......,(xm,ym),其中 y i y_i yi是示例 x i x_i xi的真实标记。要评估学习器 f f f的性能就要把学习器预测结果 f ( x ) f(x) f(x)与真实标记 y y y进行比较。
回归任务最常用的性能度量是均方误差
下面是分类任务中常用的性能度量

错误率和精度

错误率是分类错误的样本数占样本总数的比例
精度是分类正确的样本数占样本总数的比例

查准律、查全律与F1

查准率又称准确率;查全率又称召回率
对于二分类问题,可以根据真实类别与学习器预测类别的组合划分成真正例TP、假正例FP、真反例TN和假反例FN四种情形。
查准律 P = T P / ( T P + F P ) P = TP/(TP+FP) P=TP/(TP+FP)
查全率 R = T P / ( T P + F N ) R = TP/(TP+FN) R=TP/(TP+FN)
一般来说查全率和查准率是矛盾的,一个高,往往另一个低。

ROC与AUC

代价敏感错误率与代价曲线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值