函数原型
sklearn.model_selection.
train_test_split
(*arrays, **options)
函数功能
将数组或矩阵随机的分割成训练集和测试集,注意这里是随机的。假定某元素A第一次划分到测试集中,对数据集进行新增操作之后,再进行划分,则A可能划分到训练集中。
函数允许一次传入多个数据集,所以我们也可以把行数相同的多个数据集添加为*arrays参数,它会根据相同索引将其拆分,当我们有一个单独的dataframe用于标记时,这种做法是非常有用的。
参数说明
*arrays:长度或者shape[0]相同7的可索引序列。 | 允许的输入是列表、numpy数组、scipy-sparse矩阵、或者是pandas dataframe。 |
test_size:可选,float, int或None(默认) | 如果是浮点数,则应该在0.0和1.0之间,表示要测试集占总数据集的比例。 如果是int类型,表示测试集的绝对数量。 如果是None,则将该值设置为训练集train_size大小的补数;如果train_size也是None,则将其设置为0.25。 |
train_size:float, int, or None(默认=None) | 如果是浮点数,则应该在0.0和1.0之间,表示要训练集占数据集的比例。 如果是int类型,表示训练集的绝对数量。 如果是Nnone,该值将自动设置为测试集大小的补数。 |
random_stateint:可选,int,RandomState实例或None(默认) | 如果是int类型,random_state是随机数生成器使用的种子; 如果是RandomState实例,random_state是随机数生成器; 如果是None,随机数生成器就是np.random使用的RandomState实例,每次生成结果均不同。 |
shuffle:可选参数,boolean(默认为True) | 表示是否在分割之前重新洗牌数据。只有在stratify=None时,才允许shuffle=False。 |
stratify:array-like 或者 None (default=None) | 如果不是None,则以分层的方式分割数据,并将其作为类标签。 |
例子
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
>>> X, y = np.arange(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]