關於sklearn中train_test_split
sklearn.model_selection.train_test_split(*arrays, **options) 作用:將陣列或矩陣拆分為隨機序列和測試子集 我們先了解其引數和返回值,然後通過例子來學會使用它。
引數:
arrays :具有相同長度/形狀的可索引序列,允許的輸入是列表,numpy陣列,scipy-sparse矩陣或pandas資料幀。
test_size : float, int, None, optional
如果為float,則應介於0.0和1.0之間,並表示要包含在測試拆分中的資料集的比例。如果是int,則表示測試樣本的絕對數量。如果為None,則將該值設定為列車大小的補碼。預設情況下,該值設定為0.25。預設值將在版本0.21中更改。只有在train_size未指定時才會保持0.25 ,否則它將補充指定的train_size。
train_size : float,int或None,預設為None
如果為float,則應介於0.0和1.0之間,並表示要包含在列車拆分中的資料集的比例。如果是int,則表示列車樣本的絕對數量。如果為None,則該值將自動設定為測試大小的補碼。
random_state : int,RandomState例項或None,default=None
如果是int,則random_state是隨機數生成器使用的種子; 如果是RandomState例項,則random_state是隨機數生成器; 如果沒有,隨機數生成器所使用的RandomState例項np.random。
shuffle : boolean, optional (default=True)
是否在拆分之前對資料進行洗牌。如果shuffle = False,則分層必須為None。
stratify : array-like or None (default is None)
如果不是None,則資料以分層方式拆分,使用此作為類標籤。
返回值:
splitting :列表,長度= 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]]