数据集D划分成训练集S和测试集T的方法
1) 留出法 (hold - out) 直接将数据集D划分成两个互斥的集合,其中一个集合作为训练集S, 另一个集合作为训练集T
在进行训练集和测试集的划分时,尽可能保持数据划分的一致性,避免因数据划分过程中额外的偏差而对最终的结果产生影响
① 保持样本的类别比例相似 D中1000个样本 500个正例子, 500个反例
② 70%作为训练集 则挑 S 350正 350反 T 150正 150反
留出法的结果并不够可靠,使用留出法时,要采用若干次的随机划分, 求结果的平均
留出法的窘境: 令S包含大多数样本,训练出的模型更接近于用数据集D训练的模型, 但T少使得评估不稳定
令T包含大多数样本,被评估的模型与用D训练出来的模型有较大的差别。
常见的做法是 将大约 2/3-2/5 的样本用于训练
2) 交叉验证法
将数据集D划分成为k个大小相似的互斥子集, 即
(i != j)
每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集, 这样就得到了 k组测试集和训练集
注: 交叉验证的稳定性和保真性很大程度上取决于k的取值 当k为m时候 -》留1法, 留1法的评估结果比较准确,但是当数据量过大的时候,留1法的计算开销是难以忍受的。
3)自助法
给定包含m个样本的数据集D,我们对他采样生成数据集D‘。每次从数据集D中采样,挑选出一个样本将其放入D’ 重复m次
自助法能从初始数据集中产生多个不同的训练集,这对集成学习的方法有很大的好处, 然而自助法产生的数据集改变了初始数据集的分布,这回引入估计偏差。
在初始数据量足够时,留出法和交叉验证法更常用一些