1. 简介
1.1数据集
以鸢尾花数据集为例
该数据集共150个样本,三种类别鸢尾花,每种50个样本,4个属性(花萼长度,花萼宽度,花瓣长度,花瓣宽度)
1.2 model_selection.train_test_split
train_test_split(*arrays,test_size=None,train_size=None,random_state=None,shuffle=True,stratify=None)
*arrays:数据(由4个属性构成)
test_size:测试集占比(浮点数0~1),也可以是个数(int)
random_state:随机种子,设置后每次可得到相同的分割结果
stratify:根据类别标签分层分割数据
2. 函数的使用
from sklearn import model_selection, datasets
data, labels = datasets.load_iris(return_X_y=True)
x_train,x_test,y_train,y_test= model_selection.train_test_split(data,labels, test_size=0.4,random_state=1234,stratify=labels)
print(y_test)
[1 2 1 2 0 2 0 0 2 2 0 1 1 1 0 2 2 0 0 2 1 0 1 0 1 1 1 1 2 1 1 2 2 0 2 1 2
0 1 0 2 2 0 0 1 0 2 0 2 0 2 2 1 0 1 2 0 1 1 0]
以3:2的比例分割数据集,训练集90个样本,测试集60个样本,设置stratify后测试集内每个类别分别有20个样本;反之,则每个类别不是按比例分割。