机器学习数据集划分方法

数据集划分方法

    • 一、留出法
    • 二、交叉验证法
    • 三、自助法
    • 四、调参与最终模型
    • 参考文献

一、留出法

1、将数据集 D D D 划分为两个互斥的集合:训练集 S S S 和测试集 T T T

2、训练/测试集划分时要保持数据分布一致性,即保证训练集和测试集中类别比例一致,可采用分层采样

3、在给定训练/测试样本的比例后,仍然存在多种划分方法对初始数据集 D D D 进行分割,如把 D D D 中样本进行排序,然后把前350个正例放到训练集中,也可把后350个正例放到训练集中。一般采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。

4、存在问题:若令训练集 S S S 包含绝大数样本,则训练处的模型可能更接近于用 D D D 训练出的模型,但由于 T T T 较小,评估结果可能不够稳定准确;若令测试集 T T T 包含多一些样本,则训练集 S S S D D D 差别更大了,被评估的模型与用 D D D 训练出的模型相比可能有较大差别,从而降低了评估结果的保真性。可从“偏差-方差”角度来理解:测试集小时,评估结果为方差较大;训练集小时,评估结果为偏差较大。

5、常见划分比例:训练集/测试集 = 2/1~4/1。

二、交叉验证法

1、将数据集 D D D 划分为 k k k 个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,即从 D D D 中通过分层采样得到。然后每次用 k − 1 k-1 k1 个子集的并集作为训练集,余下的 1 1 1 个子集作为测试集,得到 k k k 组训练/测试集,最终返回这 k k k 个测试结果的均值。

2、交叉验证评估结果的稳定性和保真性很大程度上取决 k k k 的取值,通常把交叉验证法称为 “ k k k 折交叉验证”, k k k 最常取用的值为10。

3、与留出法相似,将数据集 D D D 划分为 k k k 个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别, k k k折交叉验证同查要随机使用不同的划分重复 p p p 次,最终的评估结果是这 p p p k k k 折交叉验证的结果的均值,常见的有 “10次10折交叉验证”。

4、特例:留一法,即将 D D D 划分为 m m m 个子集( m m m D D D 中的样本数)。留一法不受随机样本划分方式的影响,被评估的模型与期望评估用的 D D D 训练出来的模型很相似,但模型训练的计算开销很大。

三、自助法

1、在留出法与交叉验证法中,会因训练样本规模的不同而导致估计偏差,留一法计算复杂度又太高,而自助法可以减少训练样本规模不同造成的影响,同时还能比较高效的进行实验估计。

2、给定包含 m m m 个样本的数据集 D D D ,对它进行采样产生数据集 D ′ D' D ,每次随机从 D D D 中挑选一个样本,将其拷贝放入 D ′ D' D ,然后再将这个样本放回初始数据集 D D D ,使得该样本在下次采样时仍可能被采样到,重复此过程 m m m 次,得到包含 m m m 个训练样本的数据集 D ′ D' D D D D 中样本在 m m m 次采样中始终不被采样到的概率是 ( 1 − m ) m (1-m)^m (1m)m 取极限得到
lim ⁡ m → + ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m \to +\infty}(1-\frac{1}{m})^m=\frac{1}{e} \approx 0.368 m+lim(1m1)m=e10.368
通过自助采样,输出数据集 D D D 中约有36.8%的样本未出现在采样数据集 D ′ D' D 中,于是用 D ′ D' D 做训练集, D − D ′ D-D' DD 做测试集。

3、自助法在数据集较小、难以有效划分训练/测试集时很有用。此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法又很大的好处。

4、自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,因此在初始数据量足够是,留出法和交叉验证法更常用。

四、调参与最终模型

1、将数据集划分为训练集、验证集和测试集。

2、基于验证集上的性能在进行模型的选择和调参。

3、模型选择和调参方法使用网格搜索,参数的选择采用先划定参数范围和变化步长,再进行网格搜索,这样选定的参数往往不是最佳的,但这是在计算开销和性能估计之间进行折中的结果。

4、在模型和参数选定后,将训练集和验证集合并,在合并完的数据集上用选定的模型和参数重新训练一个模型,最后交给测试集评估。


参考文献

周志华 著.机器学习,北京:清华大学出版社,2016. (ISBN 978-7-302-42328-7)

你可能感兴趣的:(机器学习,机器学习)