【问题标题】:Does cross validation + early stopping show the actual performance for small sample?交叉验证+提前停止是否显示小样本的实际性能?
【发布时间】:2020-02-09 23:03:53
【问题描述】:

我在一些模拟上运行 xgboost,其中我的样本大小为 125。我正在测量 5 倍交叉验证误差,即在每一轮中,我的训练样本大小为 100,测试样本大小为 25。假设所有其他参数是固定的,但“n_estimators”,即提升轮数。

我有两个选择:

  • 对不同的 n_estimators 运行 5 倍 cv,不要使用 early stopping——在这种情况下,我可能会从 cv 结果中选择最好的 n_estimator;

  • 进一步将训练样本分为训练 (80) 和验证 (20),在 80 个训练观察值上训练模型并监控 20 个验证观察值的提前停止——在这种情况下,我可能会选择一个巨大的 n_estimator让它自动停止。

问题是

  • 在选项 1 中,如果我有另一个单独的测试样本,我可以在测试数据上使用 5 个交叉验证模型并计算平均/多数票吗?还是我需要在所有 125 个 obs 上使用最佳参数再次训练模型并在测试集上进行预测?

  • 在选项 2 中,80 个训练 obs 是否足以训练模型/20 个验证 obs 是否足以监控性能? (在选项 1 中,我们的样本量也很小,但要好一些)

  • 在将 xgboost 模型与其他模型进行比较时,哪个选项更好?

总结:对于小样本量选择模型的最佳方法是什么?

【问题讨论】:

    标签: cross-validation xgboost train-test-split


    【解决方案1】:

    使用非常少量的数据作为验证数据存在非常高的过拟合风险,不推荐。选项 1 比选项 2 更好,并且对交叉验证进行平均比使用最佳参数再次训练模型更好。

    但是,在这个小样本案例中,最好的方法是选择简单模型而不是复杂模型。

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2016-03-29
      • 2021-05-08
      • 2020-02-06
      • 2019-03-18
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      相关资源
      最近更新 更多