机器学习——模型评估与选择

经验误差与过拟合

基本概念:

错误率(error rate):分类错误的样本占样本总数的比例,假如m个样本中有 a个样本分类错误,则错误率是E=a/m。
精度(accuracy):分类正确的样本占样本总数的比例,精度=1-错误率。
误差(error):学习器在实际预测输出与样本的真实输出之间的差异,通常是指误差期望。
训练误差(training error):学习期在训练集上的误差,也称为经验误差(empirical error)。
泛化误差(generalization error):在新样本上的误差。
过拟合(overfitting):训练样本学习效果太好,导致泛化性能下降。过拟合只能缓解,无法避免。
欠拟合(underfitting):训练样本的一般性质尚未学好。
过拟合、欠拟合的直观类比

评估方法

由于不同的算法,以及同一学习算法当使用不同的参数配置时,也会产生不同的模型,这就产生了模型选择的问题。模型选择最理想的方案是选择泛化误差最小的那个模型,实际中,我们无法获得泛化误差。通常采用测试误差作为泛化误差的近似,测试误差是从训练样本中获得的测试集所测得的误差。
获得测试集的方法通常有留出法交叉验证法自助法
(1)留出法
留出法:将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。D=SUT,S与T的交集为空。S上训练模型,用T评估其测试误差,作为泛化误差的估计。
要点:
1)训练集/测试集样本类别比例:训练和测试集的划分要尽可能地保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。例如:若数据集D中包好1000个样本,其中500个样本时正例,500个样本时反例。那个在进行分层采样时,需要训练集S和测试集T中的样本类别比例相当,避免训练/测试数据分布的差异而产生偏差。
2)训练集/测试集划分方式: 确定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。不同的划分会导致不同的训练/测试集,相应的,模型评估的结果也会有差异。一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果,通常训练集占样本总数的2/3~4/5。
(2)交叉验证法
交叉验证法:将数据集D划分为k个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到,然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可获得k组训练/测试集,从而可进行k次训练和测试,最后返回k个测试结果的均值。也称为k折交叉验证
在这里插入图片描述
要点: 通常采用10折交叉验证。但是k个子集的划分方式也会影响模型训练和评估。其中一特例是留一法,即每次留出一个样本用于测试,这样可认为训练集和样本D的差别很小,留一法的结果往往被认为是比较准确的,但是计算量巨大。
(3)自助法
自助法: 以自主采样法会基础,给定m个样本的数据集D,每次随机从D中挑选一个样本拷贝放入D1中,然后再把该样本放回初始数据集D中,这样该样本在下次采样时仍可能被采到。这个过程重复执行m次后,得到包含m个样本的数据集D1。D1中会存在重复的样本,同样D中的部分样本不会再D1中出现。再用D1作为训练样本,D-D1作为测试样本。
要点:
1)该方法解决了划分导致的样本集变化对模型的影响,因为D1和D的样本数是相同的。
2)自助法由于是随机采样,会改变初始数据集的分布,这会引入估计误差。自助法在数据集较小,难以划分训练/测试集时有用。当数据量足够时,宜采用留出法和交叉验证法。
(4)调参和最终模型
大多数学习算法都有些参数需要设定,参数配置不同,学得模型的性能往往有显著差别。因此在进行模型评估和选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定。即为调参
现实中常用的调参方法,是对每个参数选定一个范围和变化步长,例如[0,0.2]范围内以0.05为步长,则实际要评估的候选参数值有5个,最终从这5个候选值中产生选定值。显然,这样选定的参数值往往不是"最佳"值,但这是在计算开销和性能估计之间进行折中的结果,通过这个折中,学习过程才变得可行。当有3个参数,每个参数5个候选值,则每一组训练/测试集会有555=125个模型需要考核。

性能度量

性能度量,也成为评价指标
(1)均方误差(mean squared error)
在这里插入图片描述
带有概率密度函数的均方误差为:
在这里插入图片描述
(2)错误率
对于分类任务,可用错误率来衡量模型,错误率定义:
在这里插入图片描述
对于数据分布D和概率密度函数p(.),错误率可以描述为:
在这里插入图片描述
(3)精度
与错误率相对应的,是精度,精度定义:
在这里插入图片描述
对于数据分布D和概率密度函数p(.),精度可以描述为:
在这里插入图片描述
(4)查准率查全率
查准率: 预测集中真正例占所有预测正例的比例,例如,挑选出好瓜中,真正是好瓜的比例。
查全率: 预测集中真正例占所有实际正例(包括真正例和假反例)的比例,例如,所有好瓜中,有多少比例被挑选了出来。
在这里插入图片描述
查准率定义:
在这里插入图片描述
查全率定义:
在这里插入图片描述
通常情况下,查准率和查全率是一对矛盾的度量,查准率越高,查全率往往越低;查全率越高,查准率往往越低。只有一些简单任务,才可能查准率和查全率都高。
查准率—查全率曲线:把学习器认为可能的正例样本进行排序,然后按此排序逐个把样本作为正例进行预测,计算每次的查准率和查全率,可画出查准率—查全率曲线,简称P-R曲线。如下图
在这里插入图片描述
A、B、C为不同的学习器,当一个曲线被另一条曲线包含时,可以认为后者的性能优于前者,对于交叉的曲线,则取查准率=查全率的平衡点。
但是使用平衡点进行学习器性能综合判断时过于简单,更常用的是F1度量。
F1是基于查准率与查重率的调和平均定义的:
在这里插入图片描述
对于查重率和查全率重视程度不同的,则采用加权调和平均:
在这里插入图片描述
其中参数是度量查全率对查准率的相对重要性。
对于多个混淆矩阵,则可用查准率和查全率的平均值来考核。
(5)ROCAUC
ROC曲线与P-R曲线类似,ROC曲线的横坐标是假正例率,纵坐标是真正例率。
假正例率,假正例率=假正例/(真反例+假正例):
在这里插入图片描述
真正例率,真正例率=真正例/(假反例+真正例):
在这里插入图片描述
在这里插入图片描述
AUC为ROC曲线下的面积,AUC与样本预测的排序质量有关:
在这里插入图片描述
(6)代价敏感率代价曲线
通常情况下,不同类型的错误率所造成的后果不同,为权衡不用类型错误所造成的不同损失,可为错误赋予“非均衡代价”
a啊在这里插入图片描述
代价敏感错误率为:
在这里插入图片描述

比较检验

比较检验用于解决两个学习器性能的比较。两个学习器之间的比较不仅仅是两个学习器性能度量的直接比较。其原因有三:
1)泛化性能和测试集上的性能未必相同;
2)测试集的性能与测试集的选择有很大关系;
3)很多机器学习算法有一定随机性,即便相同参数,相同测试集,结果也可能不同。
下面简单介绍几种假设检验:
(1)假设检验
可以使用“二项检验”来对ε<=0.3(即泛化错误率是否不大于0.3)这样的假设进行检验。引入置信度的概念,如下图,1-α反映了结果的置信度。可知在1-α的概率内所能观测到的最大错误率是

在这里插入图片描述
此时若测试错误率 小于临界值时,则可以认为在α的显著度
下,假设不能被拒绝,即能以1-α的置信度认为,学习器的泛化错误率不大于临界值。
当采用多次留出法或是交叉验证法等进行多次训练/测试,这样会得到多个测试错误率。此时可以使用“t-检验”,平均测试率和方差为。
在这里插入图片描述
在这里插入图片描述
(2)交叉验证t检验
若我们使用k折交叉验证法,可以使用t检验进行比较,首先可以先决定个置信度区间,其次计算出该置信度的最大误差,然后计算出每个学习器的测试误差。
对于两个学习器A和B的比较,可以每个k折时两个学习器的误差之差,然后用t检验进行比较。
(3)同样的,还可以用χ2 分布F分布,具体可以参考统计学和概率论。

偏差与方差

偏差-方差分解是解释学习算法泛化性能的一种重要工具。泛化误差可以解释为偏差、方差与噪声之和。
偏差:度量了学习算法的期望预测与真实结果的偏差程度,即刻画了学习算法本身的拟合能力。
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
噪声:表达了在当前任务上任务学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值