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]]