【问题标题】:How is the dataset divided in kfold cross validation with differing values of k?如何将数据集划分为具有不同 k 值的 k 折交叉验证?
【发布时间】:2021-07-29 07:15:01
【问题描述】:

这是我使用不同 k (3,4,5,6) 值的基本代码

from numpy import array
from sklearn.model_selection import KFold
# data sample type(data)
data = array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
# prepare cross validation
k = 6
kfold = KFold(k, True, 1)
# enumerate splits
for train, test in kfold.split(data):
    print('train: %s, test: %s' % (data[train], data[test]))

输出是:-

k = 3
train: [0.1 0.4 0.5 0.6], test: [0.2 0.3]
train: [0.2 0.3 0.4 0.6], test: [0.1 0.5]
train: [0.1 0.2 0.3 0.5], test: [0.4 0.6]

k=4
train: [0.1 0.4 0.5 0.6], test: [0.2 0.3]
train: [0.2 0.3 0.4 0.6], test: [0.1 0.5]
train: [0.1 0.2 0.3 0.5 0.6], test: [0.4]
train: [0.1 0.2 0.3 0.4 0.5], test: [0.6]

k=5
train: [0.1 0.4 0.5 0.6], test: [0.2 0.3]
train: [0.1 0.2 0.3 0.4 0.6], test: [0.5]
train: [0.2 0.3 0.4 0.5 0.6], test: [0.1]
train: [0.1 0.2 0.3 0.5 0.6], test: [0.4]
train: [0.1 0.2 0.3 0.4 0.5], test: [0.6]

k=6
train: [0.1 0.2 0.4 0.5 0.6], test: [0.3]
train: [0.1 0.3 0.4 0.5 0.6], test: [0.2]
train: [0.1 0.2 0.3 0.4 0.6], test: [0.5]
train: [0.2 0.3 0.4 0.5 0.6], test: [0.1]
train: [0.1 0.2 0.3 0.5 0.6], test: [0.4]
train: [0.1 0.2 0.3 0.4 0.5], test: [0.6]


所有这些中的一个共同点是验证集从不重复观察,但定义是,“然后将每个折叠用作一次验证,而剩余的 k - 1 个折叠形成训练集”。 k=3,4,5 是错误的,那么只有 k=6 是正确的,对吧?

【问题讨论】:

    标签: python cross-validation k-fold


    【解决方案1】:

    发生这种情况是因为您的输入数据并不总是创建完美的分割,除非 k=3 或 k=6。

    第一个 n_samples % n_splits 折叠的大小为 n_samples // n_splits + 1,其他折叠的大小为 n_samples // n_splits,其中 n_samples 是样本数。

    您有 6 个样本:

    1. k=3:前 6%3(=0) 个折叠的大小为 6//3+1(=3),其余的大小为 6//3(=2)。
    2. k=4:前 6%4(=2) 个折叠的大小为 6//4+1(=2),其余的大小为 1//4(=1)。

    等等……

    然后将每个折叠用作一次验证,而剩余的 k - 1 个折叠形成训练集。

    这就是这里发生的事情,例如对于 k=3(3 折为 [0.2 0.3], [0.1 0.5], [0.4 0.6]),在第一次迭代中,[0.2 0.3] 用作验证,[0.1 0.5 0.4 0.6] 用作训练。

    【讨论】:

      猜你喜欢
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 2020-10-24
      • 2018-06-22
      相关资源
      最近更新 更多