【问题标题】:Catboost overfits training data but test performance increasesCatboost 过拟合训练数据,但测试性能提高
【发布时间】:2022-05-01 06:55:17
【问题描述】:

我正在一个由 41k 观察和约 60 个特征组成的数据集上训练 catboost。该数据集是一个纵向系列(9 年),在空间上分布。目前我只是使用数据的随机重采样,忽略空间和时间依赖性。模型选择使用 5 折 CV 进行,部分数据用作外部测试/保留集。

最佳结果我使用 catboost 获得的 hps 如下:

mtry=37,min_n = 458,tree_depth = 10,学习率 = 0.05

训练 AUC = .962

内部验证 AUC = .867

外部测试 AUC = .870

训练和测试 AUC 之间的差异很大,这表明过度拟合。

第二个 hp 配置反而会减少训练集和测试集之间的差异,但测试性能也会降低。

mtry=19,min_n = 976,tree_depth = 8,学习率 = 0.0003

训练 AUC = .846

内部验证 AUC = .841

外部测试 AUC = .836

我很想使用第一个 hps 配置,因为它在测试集上给了我最好的结果。另一方面,第二个结果对我来说似乎更可靠,因为训练和测试性能非常相似。此外,第二个结果可能更接近我使用空间或时间块重采样策略可以获得的“真实”性能。

那么我的问题是我应该关注训练集和测试集之间的差异,还是只要测试性能不下降(过度拟合后果)我不应该关心它并选择第一个 hps 配置?

【问题讨论】:

    标签: performance cross-validation catboost overfitting-underfitting


    【解决方案1】:

    “第二个结果可能更接近'真实'结果”的直觉是好的。在模型过度拟合的情况下,甚至对验证集和测试集的性能持保留态度。可能是模型为训练而记忆的模式目前在验证和测试中仍然表现良好,但这是一个强烈的信号,表明模型对方差不灵活,在大多数情况下,这很可能会随着时间的推移而发生。

    因此,是的,您应该关注训练和测试之间的差异,而不是简单地选择具有最佳测试性能的模型。这两种模型的测试性能差异相对较小。根据我对您尝试过的内容的了解很少,我建议您进行更多迭代,看看您是否可以在消除过度拟合的同时重新获得一些准确度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 2019-06-16
      • 2021-03-04
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      相关资源
      最近更新 更多