二、模型评估与选择(1)

2.1 经验误差与过拟合

  • 名词解释
    错误率:分类错误的样本数占样本总数的比例
    精度:分类正确的样本数占样本总数的比例
    训练误差:学习器在训练集上的误差
    泛化误差:学习器在新样本上的误差
    测试误差:学习器在测试集上的误差
    欠拟合:学习器对训练样本的一般性质尚未学好,学习能力低下。较易客服
    过拟合:我们希望得到一个在新样本上表现得很好的学习器,这就需要学习器从训练样本中尽可能地学出适用于所有潜在样本的“普适规律0”,这样在遇到新样本时才能做到正确的判别。然而,当学习器把样本学的“太好”的时候,很可能把训练样本自身特有的一些性质当成了所有样本都具有的性质,这样就会导致泛化能力下降,即过拟合。很难克服

2.2 评估方法

我们通过测试及上的“测试误差”作为“泛化误差”的近似,从而对学习器进行评估进而做出选择。注意,测试集应该和训练集互斥。那么如何针对一个包含m个样本的数据集D,如何划分训练集和测试集呢?常见方法如下。

  • 留出法
    直接将数据集D划分成两个互斥集合S和T,S作为训练集合,T作为测试集和在S上训练模型,在T上评估其测试误差,作为对泛化误差的估计。一般是将D的2/3~4/5的样本用于训练,其余用做测试。
    需要注意的问题:
    1、训练集和测试集要尽可能保持数据分布的一致性。
    2、即便给定训练集/测试集的比例,仍有多种划分方式对D进行分割,不同的划分方式导致不同的训练集/测试集,相应的模型评估结果也有所不同。因此,在使用留出法时,一般用采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。例如进行100次随机划分,每次划分产生一个训练集/测试集用于实验评估,100划分就有100个结果,留出法的最终返回的就是这100个评估结果的平均值。

  • 交叉验证法
    将数据集划分成k个互斥子集,每次用k-1个子集作为训练集,余下的一个子集作为测试集,这样就有k组训练集/测试集,从而可以进行k次训练和测试,最终返回的是这k次评估结果的平均值。——k折交叉验证
    需要注意的问题:
    1、与留出法类似,将D划分成k个子集存在多个划分方式,为减少因样本划分不同而引入的差别,K
    折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的有10次10折交叉验证。
    2、特例:留一法

  • 自助法
    来源:我们希望评估的是用整个数据集D做为训练集得到的模型,但在留出法和k折交叉验证法中,实际训练集都比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差。用留一法评估的模型与我们期望评估的模型很相近,但是计算成本太高,有没有说明办法可以减少训练样本规模不同造成的影响,同时又能高效的进行实验估计呢?
    方法:对于包含m个样本的数据集D,每次从D中随机挑选一个样本放入D‘中,然后再将该样本放回D中,使得该样本在下次采样时仍有可能被采到;重复这个过程m次,这样就得到了包含m个样本的数据集D’。
    显然,这样操作的结果就是,D中有些样本可能重复出现在D‘中,也可能有一些样本一次都没出现过。样本在m次采样的过程中一次都没被采到的概率是(1-1/m)^m,取极限得到:
    lim((1-1/m)^m)=1/e=0.368
    即通过自助采样,初始数据集D中约有38.8%的样本未出现在D’中,于是我们可以用D‘作为训练集,D-D’作为测试集,这样,实际评估的模型与期望评估的模型都使用m个样本,而仍有1/3的样本没在训练集中出现过用于测试。
    优缺点:
    优:在数据集较小、难以有效划分训练集/测试集时很有用;能从初始训练集中产生多个不同的训练集,对集成学习等方法有很大的好处。
    缺:自助法产生的训练集改变了初始数据集的分布,这会引入估计偏差

  • 调参与最终模型
    我们除了要对适用的学习算法进行选择,还要对算法的参数进行设定,参数配置不同,学得的模型的性能往往不同。
    现实中常用做法是,对每个参数选定一个范围和变化步长,例如在[0,0.2]范围内以0.05为步长,则实际要评估的候选参数有5个。这样选定的参数值往往不是最佳的,但这是在计算开销和性能之间进行折中的结果,通过这个折中,学习才变得可行。
    注意: 由于实际训练时我们是从D中取部分样本进行训练的,因此,在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用户的模型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值