【发布时间】:2020-06-25 23:09:54
【问题描述】:
我正在尝试选择一种方法将我的数据拆分为训练集和测试集。我目前正在使用 Scikit 的 RepeatedStratifiedKFold。根据documentation,RepeatedStratifiedKFold 是:
重复分层 K 折交叉验证器。
重复分层 K 折叠
n次,每次都有不同的随机化 重复。
我使用RepeatedStratifiedKFold 在包含 1000 个观察值的数据集上使用 5 次折叠和 100 次重复,如下所示:
rskf = RepeatedStratifiedKFold(n_splits=5, n_repeats=100, random_state=None)
for train_index, test_index in rskf.split(X, y):
X_train, _X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
但是,当我查看 X_train 集时,我只看到 800 个观察值(4 个火车折叠)。不应该按照重复次数包含所有100个训练集吗?
我的第二个问题:在使用RepeatedStratifiedKFold 方法拆分数据后,当您在X_train 和y_train 数据集上拟合分类模型时会发生什么?模型是否训练了所有 100 次重复?
假设我只是想在测试后得到模型的 F1 分数。它会给我所有 100 次重复的平均分数吗?
谢谢!
【问题讨论】:
标签: python scikit-learn cross-validation