数据集划分的方法介绍

数据集的划分:

常用三种:留出法 (hold-out) 交叉验证法(k fold cross validation) 自助法(bootstrapping)

1.Hold-out: 直接将数据集划分为两个互斥的集合, 分别作为训练集和测试集, 其中训练集一般是2/3 ~ 4/5

该方法两个注意点:

  1. 训练集和测试集的划分要尽可能的保持数据分布一致性,如分层采样(stratified sampling)
  2. 单次使用留出法的评估结果往往不够稳定和可靠,因此使用留出法时一般要采用若干次随机划分、重复进行试验评估取其平均值作为留出法的评估结果。

缺点:若训练集包含了绝大多数的样本, 那么训练出的model更加接近于整个数据集训练出的结果, 但是测试集的数量少了,评估结果就不一定准确了。若测试集的数量较多的话,那么训练集与整个数据集差别较大,训练出的模型与整个数据集训练出的结果相差也较大,从而降低了评估结果的保真性(fidelity)。

2.交叉验证法(cross validation):将数据集划D分为k个大小相似的互斥子集, 每个子集尽量保证数据分布的一致性(用分层采样);每次用k-1个子集的并集作为训练集余下的那一个作为测试集,从而进行k次训练和测试,最终返回的是k个测试结果的均值。由于数据集存在多种划分方式, 为减小由于划分方式的不同而引入的差别,k着交叉验证通常要随机使用不同的划分方式重复p次, 最终的评估结果是p次k折交叉验证结果的均值。(常见的有10次10折交叉验证)

3.留一法(Leave-One-Out简称LOO)(cross validation 特例):假设数据集D包含m个样本,令k=m,显然留一发不再受随机样本划分方式的影响,因为留一法的训练数据集只比D少一个样本,训练出的模型与用D训练出的模型很相似,且评估结果也是测试了数据集D中所有的样本取得平均值,因此留一法的评估结果往往比较准确。但是留一法也有一个很大的缺陷就是计算量太大了, 若D有一百万个样本那么就需要训练一百万个模型。

 

4.自助法(bootstrapping): 给定包含m个样本的数据集D,我们对他进行采样产生D’:具体过程是:随机取一个样本放入D’中, 再将该样本放回到D中,使得该样本可以在下次采样时仍然可以被采到, 这个过程重复m次就得到了包含m个数据集的D

显然原始数据集D和D’并不完全一样,某样本被始终采不到的概率为(1-1/m)^m, 取其极限为0.368,即通过自助法原始数据集约有0.368左右的数据没有出现在D’中, 因此可以用D作为训练集, D-D作为测试集,这样的测试结果称为“包外估计”(out of bag estimate)

应用:自助法能从初始数据中产生多个不同的数据集,在数据集较小、难以划分训练集和测试集情况下很有用,对集成学习也有很大的好处,但也存在一定的问题,自助法改变了初始数据的分布,会引入估计偏差,一般在数据量足够的情况下交叉验证与留一法更加常用。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值