1 函数用途
train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为:
X_train,X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0, shuffle=True)
2 参数解释:
- train_data:所要划分的样本特征集
- train_target:所要划分的样本结果
- test_size:如果为小数则代表样本占比(0到1),如果是整数则代表样本的数量,默认为0.25
- random_state:是随机数的种子,默认为None。如果种子相同,则随机数相同,如果种子不同,则随机数不同。在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,则代表随机数的种子是一个随机值,每次结果都不同。
- shuffle:划分前是否对数组或矩阵进行洗牌,默认为True。
import numpy as np
from sklearn.model_selection import train_test_split
X = np.arange(10).reshape((5, 2))
y = range(5)
其中X,y分别为:
X= [[0 1][2 3][4 5][6 7][8 9]]
y= [0, 1, 2, 3, 4]
对数据集进行划分,训练集占70%,测验集占30%,固定随机数的种子,划分前不重新洗牌:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1,shuffle=False)
划分完的数据集如下:
X_train= [[0 1][2 3][4 5]]
y_train= [0, 1, 2]
X_test= [[6 7][8 9]]
y_test= [3, 4]