我正在使用 XGBClassifier 训练一个二元分类器(如果我理解正确的话,基本上是提升决策树)。我有 10K 个训练示例。我有两组不同的特征(但它们可能是依赖的),一个包含 26 个特征(称为集合 A),另一个包含 96 个特征(称为集合 B)。我尝试训练 3 个分类器,每个分类器都有不同的特征集组合,即 A、B 和 A+B。结果是只使用 A 显然比同时使用 A 和 B 更好。此时我认为它可能是过度拟合,因此使用较少数量的特征实际上可以避免过度拟合。
上述训练中使用的树数是 100。所以我使用 10 倍交叉验证来找到每个特征集组合的最佳树数,它们都超过了 100(比如 300-500)。所以在我看来,模型学习的自由度低于预期,如果你愿意的话,它们是不合适的。
所以这让我很困惑:当模型处于欠拟合(而不是过拟合)时,为什么提供附加功能会使事情变得更糟(即仅使用 A 比同时使用 A 和 B 更好)?
或者也许是一个更普遍的问题:在这种情况下,我如何找出真正的问题?
注意:我已经阅读过这个关于过拟合/欠拟合的问题,我仍然认为我的模型应该是欠拟合的,因为显然增加模型复杂性有帮助(例如从 100 棵树到 300-500 棵树)。