1. 程式人生 > >關於sklearn中train_test_split

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