数据集划分方法
K折交叉验证法
- 将全部训练集S分成k个不相交的子集,假设S中的训练样例子数为m,那么每一个子集有m/k个训练样例,相应子集称作{s1,s2……sk}
- 每次从分好的子集里面,拿一个作为测试集,其他k-1作为训练集
- 在k-1个训练集中训练出学习器模型
- 把这个模型放到测试集上,得到分类率
- 计算k次求得的分类率的平均值,作为改模型或者假设函数的真实分类率
- 这个方法充分利用了所有样本,但计算比较繁琐,需要训练k次,测试k次
留一法
假设有N个样本,将每一个样本作为测试样本,其它N-1个样本作为训练样本,这样得到N个分类器,N个测试结果。用这N个结果的平均值来测量模型的性能
如果LOD与K-fold—CV比较,LOD在N个样本上建立N个模型而不是k个,更进一步,N个模型的每一个都是在N-1个样本上训练的,而不是(k-1)n/k。两种方法中,假定k不是很大,且k<<N.LOD比k-fold-cv更加耗时
留p法验证
有N个样本,将每p个样本作为测试样本,其它N-p个样本作