sklearn.model_selection.train_test_split
将数组或矩阵拆分为随机序列和测试子集
包含输入验证和应用程序的快速实用程序, 用于将数据输入到单个调用中,以便在oneliner中拆分(并可选地进行子采样)数据。next(ShuffleSplit().split(X, y))
参数:
-
数组: 具有相同长度/形状的可索引序列[0]
允许的输入是列表,numpy数组,scipy稀疏矩阵或pandas数据帧。 -
test_size :float,int或None,可选(默认=无)如果为float,则应介于0.0和1.0之间,并表示要包含在测试拆分中的数据集的比例。如果是int,则表示测试样本的绝对数量。如果为None,则将该值设置为列车大小的补码。如果train_size也是None,则将其设置为0.25。
-
train_size : float,int或None,(default = None)如果为float,则应介于0.0和1.0之间,并表示要包含在列车拆分中的数据集的比例。如果是int,则表示列车样本的绝对数量。如果为None,则该值自动设置为测试大小的补码。
-
random_state :
int,RandomState实例或None,可选(默认=无)如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器; 如果为None,则随机数生成器是由其使用的RandomState实例np.random。 -
shuffle : boolean,optional(default = True)是否在拆分之前对数据进行洗牌。如果shuffle = False,则分层必须为None。
-
分层 :数组样或无(默认=无)如果不是None,则数据以分层方式拆分,使用此作为类标签。
返回:
- 拆分 :
列表,长度= 2 * len(数组)
包含列车测试输入分组的列表。
版本0.16中的新增内容:如果输入是稀疏的,则输出将为a 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]]
使用例子
sklearn.model_selection.train_test_split
使用特征脸和svm的脸部识别示例