當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn KFold用法及代碼示例


本文簡要介紹python語言中 sklearn.model_selection.KFold 的用法。

用法:

class sklearn.model_selection.KFold(n_splits=5, *, shuffle=False, random_state=None)

K-Folds cross-validator

提供訓練/測試索引以拆分訓練/測試集中的數據。將數據集拆分為 k 個連續折疊(默認情況下不打亂)。

然後將每個折疊用作一次驗證,而剩餘的 k - 1 個折疊形成訓練集。

在用戶指南中閱讀更多信息。

參數

n_splits整數,默認=5

折疊次數。必須至少為 2。

shuffle布爾,默認=假

是否在拆分成批次之前對數據進行洗牌。請注意,每個拆分中的樣本不會被打亂。

random_stateint、RandomState 實例或無,默認=無

shuffle 為 True 時,random_state 會影響索引的順序,從而控製每次折疊的隨機性。否則,該參數無效。傳遞 int 以在多個函數調用之間實現可重現的輸出。請參閱術語表。

注意

第一個 n_samples % n_splits 折疊的大小為 n_samples // n_splits + 1 ,其他折疊的大小為 n_samples // n_splits ,其中 n_samples 是樣本數。

隨機 CV 拆分器可能會為每個拆分調用返回不同的結果。您可以通過將random_state 設置為整數來使結果相同。

例子

>>> import numpy as np
>>> from sklearn.model_selection import KFold
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([1, 2, 3, 4])
>>> kf = KFold(n_splits=2)
>>> kf.get_n_splits(X)
2
>>> print(kf)
KFold(n_splits=2, random_state=None, shuffle=False)
>>> for train_index, test_index in kf.split(X):
...     print("TRAIN:", train_index, "TEST:", test_index)
...     X_train, X_test = X[train_index], X[test_index]
...     y_train, y_test = y[train_index], y[test_index]
TRAIN: [2 3] TEST: [0 1]
TRAIN: [0 1] TEST: [2 3]

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.model_selection.KFold。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。