【问题标题】:Is it a flaw that Optuna examples return the evaluation metric of the test set?Optuna 示例返回测试集的评估指标是否存在缺陷?
【发布时间】:2020-05-17 00:47:54
【问题描述】:

我正在使用 Optuna 对某些模型进行参数优化。

在几乎所有示例中,目标函数都会返回测试集上的评估指标,并尝试将其最小化/最大化。我觉得这是示例中的一个缺陷,因为 Optuna 然后根据看不见的数据优化了她的参数。

对训练集的 cv 进行优化会更加稳健。想听听其他想法并检查我是否遗漏了什么。

谢谢!

【问题讨论】:

    标签: python hyperparameters train-test-split optuna


    【解决方案1】:

    不,这不是缺陷,而是一个特性。性能应该在算法没有看到的测试数据集上进行评估。

    如果您想进行交叉验证,可能需要几个月的时间才能使用 Optuna 完成一项简单的研究。这样做并没有错误,但可能是浪费时间,因为 Optuna 的算法是贝叶斯优化器,交叉验证只能近似。

    话虽如此,如果你使用机器学习并且需要每个 epoch 有一个训练/验证循环,我 recommend 使用邵君的比例 n**(0.75) 作为你的训练集大小,在训练开始前随机选择;它不仅更快,而且可能更好。

    因此,虽然需要在机器学习中进行多项训练和验证操作,但如果您使用 Optuna,则无需交叉验证该模型的性能。请点击上面的链接在 cross-validated 的 SE 网站上查看我的回答,然后您可以从那里点击进入 Github repo 但请先发表评论和/或看看其他人在说什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      相关资源
      最近更新 更多