数据集的划分:训练数据和测试数据(注意两者应该是互斥的)
其中训练数据可再分为:训练集和验证集
验证集用来进行模型选择和调参 ;测试数据为实际中可能会遇到的所有数据。
训练集和测试集的划分方式
留出法(hold out):(注意数据的划分应该保持样本类别比例一致)
(1)采用分层采样操作:先将总体的单位按某种特征分为若干次级总体(层),然后再从每一层内进行单纯随机抽样,组成一个样本,参考https://blog.csdn.net/zealfory/article/details/53507848。
(2)训练集=2/3~4/5的样本
再采用若干次随机划分,获得多组训练集和测试集,实验评估的结果取平均值
交叉验证法(cross validation):
(1)采用分层抽样,将数据集划分为k个大小互斥子集
(2)k-1个子集用于训练,1个子集用于测试
(3)总共k组训练和测试结果,评估结果取平均
再采用若干次随机划分,例如10次10折,也就是100次训练和测试结果取平均
其中k的取值一般为5,10,20等
留一法:
也即是上述的交叉验证法的一个特例,当样本数为m,划分的子集为m个。
因此不受随机样本划分的影响。
优劣:
自助法:(可重复采样,有放回的采样操作)
优势是:在样本点较少时好用
缺点是:改变数据集分布,引入误差