数据集拆分

一般来说我们的训练集不会全部用来做训练,而是抽取大部分来训练,余下一些做其他用途.最常见的数据抽样方式和比例为:

  • 训练集:验证集 7:3
  • 训练集:验证集 8:2
  • 训练集:验证集:测试集 8:1:1
  • 训练集:验证集:测试集 7:2:1

具体多少可以按情况来定,但有几个原则必须遵守:

训练集越大自然被用于训练的数据就越多,这是样更加不容易过拟合些.验证集用于检验模型的效果,一般会参与训练过程作为一个指标指导训练防止过拟合.当然验证集也是大点好.测试集用于在没有验证数据或者验证有一定限制的时候用于自测.

使用sklearn进行数据抽样

sklearn中集成了数据拆分的接口sklearn.model_selection.train_test_split.不过一般只是拆分为训练集和验证集.


In [1]:
X = [1,2,3,4,5,6,7,8,9,10]

In [2]:
from sklearn.model_selection import train_test_split

In [3]:
train_test_split(X,test_size=0.4,train_size =0.6)


Out[3]:
[[6, 1, 7, 2, 10, 8], [4, 3, 9, 5]]