我正在一个由41,000个观察值和约60个特征组成的数据集上训练catboost。数据集为纵向序列(9年),具有空间分布性。目前,我只是使用随机重新采样数据,忽略空间和时间依赖性。模型选择使用5倍CV进行,一些数据用作外部测试/保留集。
最好结果我得到的catboost是与以下hps:
mtry=37, min_n = 458, tree_depth = 10,学习率= 0.05
training AUC = .962
内部验证AUC = .867
外测AUC = .870
训练和测试AUC之间的差异相当大,这表明过拟合。
第二惠普配置,反而减少了训练集和测试集之间的差异,但测试性能也下降了。
mtry=19, min_n = 976, tree_depth = 8, learn rate = 0.0003
training AUC = .846
内部验证AUC = .841
外测AUC = .836
我很想使用第一个hps配置,因为它在测试集中给了我最好的结果。另一方面,第二种结果对我来说似乎更稳健,因为训练和测试的表现非常相似。此外,第二个结果可能更接近于"true"。使用空间或时间阻塞重采样策略可以获得的性能。
那么我的问题是,我应该关心训练集和测试集之间的差异,还是只要测试性能不下降(过拟合结果),我就不应该关心它并选择第一个hps配置?
你的直觉"第二个结果可能更接近"真实"的结果";是好的。在模型过度拟合的场景中,甚至可以对验证和测试集的性能持保留态度。这可能是模型为训练而记忆的模式目前在验证和测试中仍然表现良好,但这是一个强烈的信号,表明模型对方差不灵活,这在大多数情况下可能随着时间的推移而发生。
因此,是的,您应该关注训练和测试之间的差异,而不是简单地选择具有最佳测试性能的模型。这两种模型在测试性能上的差异相对较小。基于我所知道的你所做的尝试,我建议你进行更多的迭代,看看你是否能在消除过拟合的同时重新获得几个点的准确性。