机器学习模型评估与选择(1)


一些定义:

错误率:分类错误的样本数占样本总数的比例

精度:精度=1-错误率

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

训练误差或经验误差:学习器在训练集上的误差

泛化误差:学习器在新样本上的误差

我们实际希望的是能在新样本上表现很好的学习器,但是常常会出现在训练集上表现很好但是在新样本上表现不好,这种现象叫做过拟合,这时学习器很可能已经把训练样本自身的一些特点当作所有潜在样本都具有的一般性质,因此导致泛化能力下降。

与之对应还有欠拟合,是指训练集上的表现都不好!

直观类比如下图

这里写图片描述


现实任务,有多种学习算法可供选择,对同一个学习算法,使用不同的参数配置也会产生不同的模型,我们选哪种?这就是模型选择问题。模型选择肯定是要比较模型的好坏,这就涉及模型的评估。

模型评估应选择模型的泛化误差来进行评估。用测试集上的测试误差来作为泛化误差的近似。

我们仅有一个包含m个样例的数据集D,将它处理产生训练集S和测试集T,下面介绍常见的做法。


留出法:直接将数据集D划分为两个互斥的集合,其中一个作为S,另一个作为T

注意:

  1. 划分应尽可能保持数据分布的一致性(不要因为划分引入偏差),使用分层采样来保留类别比例,S和T中各个类别的比例是相同的。
  2. 单次使用留出法得到的估计结果往往不够可靠,一般采用若干次随机划分、重复进行实验评估后取平均值作为最后评估结果。
  3. 2/3~4/5的样本用于训练,剩余样本用于测试

交叉验证法:将数据集D划分为k个大小相似的互斥子集,每个子集都从D中通过分层采样得到,每次使用k-1个子集的并集作为训练集,余下的那个子集作为测试集,一共进行这样k次训练和测试,返回k个测试结果的均值。称k折交叉验证。

注意:

  1. k最常用取值是10,还有5,20
  2. 将D划分为k个子集有多种划分方式,为减少因划分引入的差别,可以重复p次k折交叉验证,最后的结果取p次均值。
  3. D中有m个样本,若k=m,则称为留一法。留一法评估结果往往被认为比较准确,但是在数据集比较大时,开销太大。

这里写图片描述


在留出法和交叉验证法中,实际模型所用的训练集比D小(都分出去一部分作为测试集),这会引起偏差!

自助法:以自助采样法为基础,给定包含m个样本的数据集D,每次随机从D中挑一个样本放入D’,这个样本并不从D中删除,这个过程重复执行m次,我们得到包含m个样本的数据集D’作为训练集,D\D’作为测试集。

注意:

  1. 通过自助采样,D中约有36.8%的样本未在D’中出现。
  2. 自助法对于数据集较小、难以有效划分训练集和测试集时有用。
  3. 自助法产生的数据集D’改变了初始数据集的分布,会引入偏差!!!
  4. 数据量足够,留出法和交叉验证法更常用一些。

调参很难啊,折中的话,对每个参数选择范围和变化步长,例如[0,0.2]中以0.05为步长,候选参数有5个,就在这5个里面挑。

我们用测试集上的判别效果来估计模型的泛化能力,而把训练数据另外分为训练集和验证集,基于验证集上的性能进行模型选择和调参(学习过程中用的,避免过学习,辅助训练)。训练集时模型学习好之后用的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值