sklearn.model_selection.train_test_split¶
sklearn.model_selection.train_test_split(* arrays,** options )
将数组或矩阵切分为随机训练和测试子集。
这个快速实用程序封装了输入验证和next(ShuffleSplit().split(X, y))
以及应用程序,以便将数据输入到单个调用中,在oneliner中对数据进行切分(或选择性的进行二次采样)。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
*arrays | sequence of indexables with same length / shape[0] 允许的输入是列表,numpy数组,稀疏矩阵或padas中的DataFrame。 |
test_size | float or int, default=None 如果为float,则应在0.0到1.0之间,表示要包括在测试集切分中的数据集的比例。如果为int,则表示测试集样本的绝对数量。如果为None,则将值设置为训练集大小的补集。如果 train_size 也是None,则将其设置为0.25。 |
train_size | float or int, default=None 如果为float,则应在0.0到1.0之间,并表示要包含在训练集切分中的数据集的比例。如果为int,则表示训练集样本的绝对数量。如果为None,则该值将自动设置为测试集大小的补集。 |
random_state | int or RandomState instance, default=None 在应用切分之前,控制应用于数据的无序处理。为多个函数调用传递可重复输出的int值。请参阅词汇表。 |
shuffle | bool, default=True 切分前是否对数据进行打乱。如果shuffle = False,则stratify必须为None。 |
stratify | array-like, default=None 如果不为None,则以分层方式切分数据,并将其用作类标签。 |
返回值 | 说明 |
---|---|
splitting | list, length=2 * len(arrays) 列表包含切分后的训练集和测试集 版本0.16中的新功能:如果输入稀疏,则输出将为 scipy.sparse.csr_matrix 。否则,输出类型与输入类型相同。 |
示例
>>> 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]]