Scikit-learn – 如何在CV对象中使用单一静态验证集? [重复]

在Scikit-learn中,RandomSearchCVGridSearchCV需要为cv参数提供交叉验证对象,例如GroupKFoldsklearn.model_selection中的任何其他CV分割器。

然而,如何使用单一的、静态验证集呢?我有一个非常大的训练集和一个大的验证集,我只需要CV对象的接口,而不需要整个交叉验证过程。

具体来说,我在使用Scikit-optimize和BayesSearchCV文档),它需要CV对象(与常规Scikit-learn的SearchCV对象具有相同的接口)。我想使用我选择的验证集,而不是整个CV过程。


回答:

scikit-learn的模型选择对象的文档,例如GridSearchCV,可能更清楚地说明如何实现这一点:

cv: int, 交叉验证生成器或可迭代对象,默认=None

  • 一个可迭代对象,生成(训练,测试)分割作为索引数组

因此,你需要训练和测试样本的索引数组作为一个元组,然后将它们包装在一个可迭代对象中,例如列表:

train_indices = [...]  # 训练的索引test_indices = [...]  # 测试的索引cv = [(train_indices, test_indices)]

将这个定义为单一元组的cv传递给模型选择对象,它将始终使用相同的样本进行训练和测试。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注