train_test_split#

sklearn.model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)[source]#

将数组或矩阵拆分为随机的训练集和测试集。

一个快速实用的工具,它将输入验证、next(ShuffleSplit().split(X, y))和应用于输入数据的操作封装到单个调用中,用于将数据(以及可选的子采样)拆分为单行代码。

更多信息请参见 用户指南

参数:
*arrays长度/shape[0]相同的可索引序列

允许的输入包括列表、NumPy数组、SciPy稀疏矩阵或Pandas DataFrame。

test_size浮点数或整数,默认为None

如果为浮点数,则应在0.0到1.0之间,表示测试集在数据集中的比例。如果为整数,则表示测试样本的绝对数量。如果为None,则该值设置为训练大小的补集。如果train_size也为None,则将其设置为0.25。

train_size浮点数或整数,默认为None

如果为浮点数,则应在0.0到1.0之间,表示训练集在数据集中的比例。如果为整数,则表示训练样本的绝对数量。如果为None,则该值会自动设置为测试大小的补集。

random_state整数、RandomState实例或None,默认为None

控制在应用分割之前应用于数据的混洗。传递一个整数以在多次函数调用中获得可重复的输出。参见 词汇表

shuffle布尔值,默认为True

是否在分割之前混洗数据。如果shuffle=False,则stratify必须为None。

stratify类数组,默认为None

如果非None,则使用此作为类别标签以分层方式分割数据。在用户指南中了解更多信息。

返回值:
splitting列表,长度=2 * len(arrays)

包含输入的训练-测试分割的列表。

版本 0.16 中新增: 如果输入是稀疏的,输出将是 scipy.sparse.csr_matrix。否则,输出类型与输入类型相同。

示例

>>> 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]
>>> train_test_split(y, shuffle=False)
[[0, 1, 2], [3, 4]]