【问题标题】:Hyper-parameter tuning when you don't have an access to the test data当您无权访问测试数据时进行超参数调整
【发布时间】:2018-12-13 23:25:19
【问题描述】:

我正在为 SQUAD(斯坦福问答)数据集 (https://rajpurkar.github.io/SQuAD-explorer) 构建模型。斯坦福没有发布它的测试集。它只为我们提供训练和开发数据集。

这是我的问题:

当我调整不同模型的超参数时,我根据斯坦福大学提供的“开发”数据调整它们。但是,我们将“开发”集视为“测试”集,因为我们无法访问真正的“测试”数据。我们根据“dev”数据集上的性能,在不同的模型中只选择 1 个模型提交。

所以我想知道是否应该将训练集进一步分为训练集和开发集,并在新分离的开发集上调整超参数,而不是斯坦福给出的开发集,因为我们使用“开发”集作为“测试”集。 ​​​ 我有没有作弊?我是否需要从现有的火车数据中创建另一个“开发”数据,进一步拆分它,并在那里调整超参数,并检查给定“开发”集的性能数?

【问题讨论】:

    标签: machine-learning hyperparameters


    【解决方案1】:

    我认为完全可以(假设您有足够的数据)将训练集进一步拆分为新的(较小的)训练和测试,使用开发集调整超参数并评估测试集的性能。

    【讨论】:

      【解决方案2】:

      您可以通过交叉验证轻松做到这一点。它会为你做这一切。这里的优势是假设您希望将训练集分成 10 组。它将需要 9 组作为训练和一组进行验证。这样它会运行 10 次,然后取最好 3 的平均值(如果你给出最好的 3 组参数)。

      【讨论】:

        猜你喜欢
        • 2018-09-21
        • 1970-01-01
        • 2021-08-11
        • 2023-03-16
        • 2018-12-07
        • 2020-12-30
        • 2021-08-29
        • 2015-09-07
        • 2019-01-15
        相关资源
        最近更新 更多