### Gridsearchcv: 内部逻辑

我在尝试理解Gridsearchcv的逻辑是如何工作的。我查看了这里,官方文档,以及源代码,但无法理解以下内容:

Gridsearchcv背后的总体逻辑是什么?

澄清

  1. 如果我使用默认的cv = 5,输入数据被分为训练、验证和测试集的百分比是多少?
  2. Gridsearchcv多久进行一次这样的分割,以及它如何决定哪些观测值属于训练/验证/测试集?
  3. 由于正在进行交叉验证,超参数调整的平均值在哪里起作用?即最优超参数值是否是优化某种平均值的一个值?

这个问题与我的担忧相同,但我不知道信息是否是最新的,并且我不确定我是否理解了那里的所有信息。例如,根据原帖,我的理解是:

  • 测试集占输入数据集的25%,且仅创建一次。
  • 训练集和验证集的联合相应地创建一次,这个联合占原始数据的75%。
  • 然后,该过程将这75%进一步分成5个(因为cv = 5)分割,每个分割为60%训练和15%验证。
  • 最优超参数值是优化这些5个分割中某个指标的平均值的值。

这种理解是否正确且现在仍然适用?以及该过程是如何进行最初的25%-75%分割的?


回答:

  1. 首先,您将数据分割成训练和测试集。测试集被留出来用于模型训练后的测试和优化。gridsearchcv使用您数据的75%并将其分成5个部分。首先它训练4个部分并在1个部分上进行验证,然后引入之前留出的部分进行验证并在新的部分上进行测试,等等…共5次。

然后可以看到每次运行的表现以及它们的平均值,以了解您的模型整体表现如何。

  1. 由于您在进行gridsearch,在建模结束时,best_params将被保存以预测您的测试集。
  2. 总结一下,最佳参数将在整个训练结束后被选中并用于您的模型,因此,您可以轻松地使用它们来predict(X_test)

阅读更多内容请点击这里。

  1. 通常,如果您不进行交叉验证,模型将尝试使用预设参数优化其权重,而留出的测试集将帮助评估模型表现。然而,对于真正的模型训练,重新分割训练数据为训练和验证集非常重要,您使用验证集来手动调整模型的参数。然而,过度调整模型以在验证集上获得最佳表现是作弊行为。

理论上的K折

enter image description here

更多细节

enter image description here

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中创建了一个多类分类项目。该项目可以对…

发表回复

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