gpt4 book ai didi

python - 交叉验证是如何执行的以及 GridSearchCV() 具体如何执行?

转载 作者:太空宇宙 更新时间:2023-11-04 04:00:43 24 4
gpt4 key购买 nike

如何GridSearchCV() (和或 RandomizedSearchCV() )在 scikit 中实现?我想知道以下问题:在使用其中一种技术时,如何考虑以下方面:

  • 验证集
  • 模型选择
  • 超参数调整
  • 预测

?这是一张总结我的困惑的图片:

CV

什么时候发生,多久发生一次?也许为了简单起见,让我们假设一个神经网络充当我们的模型。到目前为止我的理解:

在第一次迭代中,模型适合训练折叠,分成不同的折叠。在这里我已经很挣扎了:模型是在单折上训练然后在验证折上测试的吗?下一次折叠会发生什么?该模型是否会保留其第一次训练折叠所获得的权重,还是会为下一次训练折叠重新初始化?

更准确地说:在第一次迭代中,模型是否在验证集上进行了四次拟合并进行了四次测试,所有折叠之间都是独立的?

当下一次迭代开始时,模型不会保留第一次迭代的信息,对吗?因此,所有迭代和所有折叠是否彼此独立?这里的超参数是如何调整的?

在上面的例子中,总共有 25 次折叠。具有一组恒定超参数的模型是否拟合并测试了 20 次?比方说,我们有两个超参数需要调整:学习率和丢失率,都有两个级别:

  • learning_rate = [0.3, 0.6] 和
  • dropout_rate = [0.4, 0.8]。

神经网络现在会拟合80次吗?当不仅有一个模型而且例如两个模型(神经网络和随机森林),整个过程会执行两次?

是否有可能看到 GridSearchCV() 会考虑多少折?

我看过Does GridSearchCV perform cross-validation? , Model help using Scikit-learn when using GridSearchscikit-learn GridSearchCV with multiple repetitions但我看不到我的问题的明确和准确的答案。

最佳答案

所以 k 折方法:

您将训练集分成 n 部分(k 份),例如 5。您将第一部分作为验证集,将其他 4 部分作为训练集。你训练,这给你一个训练/简历表现。您执行此操作 5(折叠次数)次,每次折叠都成为验证集,而其他折叠成为训练集。最后,您对性能进行平均以获得模型的 cv 性能。这是为了 k 折。

现在,GridSearchCV 是一个使用 k-folds 方法的超参数调谐器。原则是你给 gridsearch 一个字典,其中包含你想要测试的所有超参数,然后它将测试所有超参数(字典)并选择最佳超参数集(那些具有最佳模型 cv 性能的超参数)。这可能需要很长时间。

您在 gridsearch 中传递一个模型(估算器)、一组参数以及是否需要 k 折的数量。

示例:

GridSearchCV(SVC(), parameters, cv = 5)

其中 SVC() 是估算器,parameters 是您的超参数字典,cv 是折叠数。

关于python - 交叉验证是如何执行的以及 GridSearchCV() 具体如何执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58391295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com