今日学习内容--机器学习的测试集选择方法

机器学习测试集选择方法

目前来说总共有三种测试集选择方法:

  • 留出法
  • 交叉验证法
  • 自助法

以下分别对三种方法进行讨论
本文约定如下:
D :代表数据集
S :代表训练集
T :代表测试集

留出法

留出法的原理相对简单, 就是从数据集-D中选择一部分出来作为训练集-S,剩下的一部分作为测试集-T

需要注意的事项:
在选择测试集与训练集的时候双方并没有存在交集, 并且需要保证它们的数据分布性存在一致性

比如: 数据集中有100个正例,50个负例,那么我们就需要保证测试集与训练集中的正例负例比例应该是2:1的状态.

目前测试集选择的比例在于: 20% -> 35%之间

多次留出法选择

在单次流出法的选择中,为了防止数据分布不一致的情况和出现训练特例的情况, 一般的做法是进行多次随机的选择,然后将多次训练得到结果平均.

实际上很难实现完全的数据分布一致,因为对于数据特征的处理,在训练初始很容易会出现某些特征被忽略, 因此我们可以引入多次留出.

交叉验证法

交叉验证法实际上与留出法类似, 他将数据集D分为N份,每份之间仍然需要尽量保有一致的数据分布,如下图(来源西瓜书)
图片来源于西瓜书
如上, 通过多次的交叉训练选择最终可以生成一个测试结果,显然这种选择方式要比留出法要更好.

同时我们也可以进行多次的数据集划分,获得多次的结果.

一般把数据划为K份的数据集我们称为K折验证法, 交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值

留一法交叉验证

留一验证法的原理相当于把D数据集做最小化的划分, 即每一个数据都是最小单元, 这样的好处在于可以最小化的损失训练集(每次训练都只缺少一个数据).
但是也引入新的问题,当数据量较大的时候, 我们需要训练很多次,比如数据量为1000w,那我们就要训练1000w个数据, 这显然是不合理的.

自助法

给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次从D中挑选一个样本,将其放入D’,然后再将该样本放回初始数据集D中;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,取极限之后, 就会发现大概有0.368的数据没有被选入D’, 数据推到如下(图片来源西瓜书)
在这里插入图片描述

总结

自助法在数据集较小、难以有效划分训练/测试集时比较有用。然而自助法产生的测试集改变了初始数据集的分布,这会引入误差.

因此在数据集比较大时,采用留出法和交叉验证法较好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值