类 sklearn.model_selection.KFold(n_splits=5, shuffle=False, random_state=None)
K折交叉验证器
提供训练/测试索引以将数据拆分为训练/测试集。将数据集拆分为k个连续的折叠(默认情况下不进行混洗),然后将每个折叠用作一次验证,而剩下的k-1个折叠形成训练集。
参数:
- n_splits:表示折叠成几份。整型,默认为5,至少为2。
- shuffle:表示在拆分成批次之前是否对数据进行混洗。布尔值,可选。默认False。
- random_state:整型,RandomState实例或None,可选,默认None。
如果为整型,则 random_state 是随机数生成器使用的种子;
如果是 RandomState 实例,则 random_state 是随机数生成器;
如果为 None,则随机数生成器是所使用的 RandomState 实例 np.random,仅当 shuffle 为 True 时使用。
如果 shuffle 为 False,则应将其保留为 None。
例子:
>>> 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]
方法:
- get_n_splits:返回交叉验证器中的拆分迭代次数。
- split:生成索引以将数据分为训练和测试集。
__ init __(self, n_splits=5, shuffle=False, random_state=None)
get_n_splits(self, X=None, y=None, groups=None)
参数:
- X:对象
始终被忽略,出于兼容性考虑而存在。 - y:对象
始终被忽略,出于兼容性考虑而存在。 - groups:对象
始终被忽略,出于兼容性考虑而存在。
返回值:
n_splits:整型,返回交叉验证器中拆分迭代的次数。
split(self, X, y=None, groups=None)
参数:
-
X:array-like, shape (n_samples, n_features)
训练数据,其中n_samples是样本数,n_features是要素数。 -
y:array-like, shape (n_samples,)
监督学习问题的目标变量。 -
groups:array-like, with shape (n_samples,) 可选
将数据集拆分为训练/测试集时使用的样本的标签分组。
Yields:
-
train:ndarray
拆分的训练集索引。 -
test:ndarray
拆分的测试集索引。