机器学习建模数据集的划分

引言:我们可以通过实验测试来对机器学习的泛化误差进行评估并且做出选择,为此我们需要一个测试集来测试学习器对新样本的判别能力,通常假设测试样本从真实样本分布中独立同分布采样而得,但是需要注意的是,测试集应该尽量与训练集互斥,即尽量让测试样本不在训练样本中出现,下面会详细的介绍3中方法,其中留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些训练样本规模的不同而导致估计偏差,而自助法会改变初始数据集的分布,这也会引入估计偏差。

留出法:直接将数据集D划分为两个互斥的集合,训练集S和测试集T,在S上训练出来的模型后,用T来评估其测试误差,作为对泛化误差的估计,一般而言,训练集大约占2/3到4/5之间。
注意点:1.训练集合测试集要尽可能保持原始数据的一致性,避免因为数据的划分过程引入额外 的偏差导致对最终结果的影响,可以采用“分层抽样”的方法进行采样。
2. 因为存在多种划分方式对原始数据集进行划分,单次使用留出法得到的结果往往不够稳定可靠,所有在使用留出法时,一般要采用若干次随机划分,重复进行实验,评估后取平均值作为留出法的评估结果。
3. 若训练集包含大部分样本,则训练样本更接近原始样本的模型,而由于测试集太小,评估结构不够稳定准确,如果测试集多包含一些样本,则训练集与原始数据集的差别就更大了,从而降低了评估结果的保正性。常见的做法是将大约2/3到4/5 的样本用于训练,其余样本用于测试。

交叉验证法:先将数据集D划分为k个大小相似的互斥子集,每个子集都尽量保持原来数据分布的一致性,然后每次用(k-1)个子集的并集作为训练集,余下的那个子集作为测试集,这样就可以得到k次训练和测试,最终返回的是k个测试结果的均值。
注意点:1. 将数据集D划分为k个子集,任然存在多种划分方式,为了减小因为样本划分不同而引入差别,k折交叉验证通常要使用不同的划分重复p次,最终的结果为p次k折交叉验证结果的均值,例如:常见的有“10次10折交叉验证法。
2. ”留一法“:是交叉验证方法的一种特例,,不受随机样本划分的影响,因为m个样本只有唯一的一种方式划分m个子集,每个子集包含一个样本,训练集只比初始数据集少一个样本,这就使得在绝大多数的情况下,留一法中被实际评估的模型与期望评估的用D训练出的模型相似,因此留一法往往被认为是比较准确的,然而缺陷是在数据集比较大的时候,计算量非常大。

自助法:给定包含m个样本的数据集D,每次随机从D中挑选出一个样本,将其拷贝到d中,然后再将样本放回初始数据集D中,使的该样本下次任有可能被采到,这样的过程重复m次,使得d中的数据集中包含m个样本。当m无限大的时候,初始训练集中约有36.8%的样本未出现在采集数据集d中,我们可以使用初始数据集D减去训练数据集d作为测试样本。
注意点:1. 自助法在数据集较小,难以划分训练和测试集时有用。
2. 可以从原始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。
3. 自助法产生的数据集改变了原始数据集的分布,这会引入估计偏差,因此在数据足够多的时候,留出法和交叉验证法更常用一些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值