当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。