函数原型:
sklearn.model_selection.train_test_split(train_data,train_target,test_size=0.4,
random_state=0,stratify=y_train)
函数功能:
将原始数据按照比例分割为“测试集”和“训练集”。返回四个数组。
参数说明:
train_data:要划分的样本集。
train_target:要划分的样本标签集。
test_size:测试集所占的比例大小。
random_state:随机数种子。
随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
stratify:是为了保持split前类的分布。
比如有100个数据,80个属于A类,20个属于B类。如果train_test_split(... test_size=0.25, stratify = y_all), 那么split之后数据如下:
training: 75个数据,其中60个属于A类,15个属于B类。
testing: 25个数据,其中20个属于A类,5个属于B类。
再如----stratify =train_target : 依据标签y,按原数据y中各类比例,分配给train和test,使得train和test中各类数据的比例与原数据集一样。
函数的返回值有四个值:
X_train:训练特征集
X_test:训练标签集
y_train:测试特征集
y_test:测试标签集
eg:
import numpy as np from sklearn.model_selection import train_test_split X=np.arange(10) y=[0,1,1,0,1,1,1,1,0,0,] ##划分训练集占比0.8,训练集占比0.2 随机数种子为0 X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=0) print("X=",X) print("X_train=",X_train) print("X_test=",X_test) print("y_train=",y_train) print("y_test=",y_test) result: X= [0 1 2 3 4 5 6 7 8 9] X_train= [4 9 1 6 7 3 0 5] X_test= [2 8] y_train= [1, 0, 1, 1, 1, 0, 0, 1] y_test= [1, 0]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)