sklearn.model.selection.train_test_split介绍
Always on my way! J
将数组或矩阵分为随机的训练子集和测试子集。
sklearn.model_selction.train_test_split(*array,test_size =None,train_size = None,random_state = None,)
参数 | 介绍 |
---|---|
*Array | 具有相同长度/形状的可索引数组序列(可以是列表、数组、numpy的array、pandas的dataFrame) |
test_size | 浮点型或整型,默认为none(如果是浮点型,应介于0-1之间,表示测试集占需拆分数据集的比例;如果是整型,则表示测试样本的具体数量。如果是None,则该值是train_size的余量。如果train_size同时为none,则该值默认值取0.25) |
train_size | 浮点型或整型,默认为none,同test_size |
random_state | 玄学,可设为42,默认为None |
shuffle | 布尔值,默认为True。是否在拆分前被数据进行洗牌,如果shuffle设为false,那么startify必须为None, |
stratify | 类数组分层,默认为None,如果不是None,则以分层方式拆分数据,并将其用作类标签。 |
输出 | 包含输入的训练-测试拆分的列表 |
例子如下
import numpy as np
from sklearn.model_selection import train_test_split
X,y = np.arrange(10).reshape((5,2)),range(5)
得到以下结果
>>> X
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
>>> list(y)
[0, 1, 2, 3, 4]
利用上述方法对数据集进行训练集与测试集分类
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.33,random_state=42)
得到以下结果
>>> X_train
array([[4, 5],
[0, 1],
[6, 7]])
>>> y_train
[2, 0, 3]
>>> X_test
array([[2, 3],
[8, 9]])
>>> y_test
[1, 4]