机械学习—零基础学习日志009(评估方法1留出法)

评估方法

我们通过实验测试来对学习器的泛化误差进行评估并进而做出选择。

因此,需要“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似。通常假设测试样本也是从样本真实分布中独立同分布采样而得,但需注意的是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。

周老师举了很生动的例子:老师出了10道习题供同学们练习,考试时老师又用同样的这10道题作为试题,这个考试成绩能否有效反映出同学们学得好不好呢?

如果,只有一个包含m个样例的数据集\left \{ \right.(x_{1},y_{1}),(x_{2},y_{2}),...(x_{m},y_{m})\left. \right \},既要训练,又要测试,怎样才能做到呢?

答案是:通过对D进行适当的处理,从中产生出训练集S和测试集T。先介绍留出法。

留出法

“留出法”(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即D= S \cup TS \cap T = \oslash。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

以二分类任务为例,假定D包含1000个样本,将其划分为S包含 700 个样本,T包含 300 个样本,用S进行训练后,如果模型在T上有 90 个在样本分类错误,那么其错误率为

( 90 / 300 ) x 100% = 30%,相应的,精度为 1 - 30% = 70% 。

分层采样

训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,例如在分类任务中至少要保持样本的类别比例相似,如果从采样的角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为“分层采样”。

例如通过对D进行分层采样而获得含 70% 样本的训练集S和含 30% 样本的测试集T,若D包含 500 个正例、500个反例,则分层采样得到的S应包含 350 个正例、350 个反例,而T则包含 150 个正例和 150 个反例;若S、T 中样本类别比例差别很大,则误差估计将由于训练/测试数据分布的差异而产生偏差。

随机划分取平均值

即便在给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集 D进行分割,并产生不一样的结果,例如,D样本中的前350个正例,与后350个正例……这些不同的划分将导致不同的训练/测试集,相应的,模型评估的结果也会有差别。

因此,单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。

窘境

若训练集S包含绝大多数样本,则训练出的模型可能更接近于用 D 训练出的模型,但由于T比较小,评估结果可能不够稳定准确;

若令测试集T多包含一些样本,则训练集S与D差别更大了,被评估的模型与用 D 训练出的模型相比可能有较大差别,从而降低了评估结果的保真性,这个问题没有完美的解决方案。

常见做法是将大约 2/3~4/5 的样本用于训练,剩余样本用于测试。

书籍参考:《机械学习》 周志华 清华大学出版社 2016年版

视频参考:周志华老师亲讲-西瓜书全网最详尽讲解-1080p高清原版《机器学习初步》 B站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值