与指定数量的训练数据交叉验证?

时间:2020-10-04 08:35:06

标签: python machine-learning scikit-learn cross-validation k-fold

客观

我想执行k倍交叉验证,但是我不想确定k-1数据集用于训练,k数据集用于测试,而是要确定训练数据的数量,就像train_test_split的{ {1}}。然后其余作为测试数据。

准确地说,我有二进制分类数据集,并且在进行交叉验证时每个类需要10个实例。

预期功能

假设我要进行5折简历:

train_size

当然,在这种情况下,我的X,y应该具有> = 100个实例。

我的尝试

好吧,我只是手动构建它们。我能得到的最接近的是迭代:

cross_val_score(estimator=my_model, X, y, cv=5, train_size=20)

但这会随机选择数据,并且可能会导致两个火车数据集相同,而且无法容纳简历。

注意

是的,这将导致某些数据集未用于训练集,但这是我当前工作中要实现的目标。

有没有提供此功能的python函数?

1 个答案:

答案 0 :(得分:1)

您仍然可以使用KFold,但需要附加逻辑。

确定测试数据量:const element = await page.$('.some-class');

确定拆分数量test_amount = total_amount * test_size

使用Kfolds:

n_splits = total_amount // test_amount