正则化梯度增强回归器的最佳方法?

数据挖掘 随机森林 xgboost 正则化 助推
2022-03-04 16:22:22

我正在测试来自 sklearn 的梯度增强回归器,用于对噪声数据(货币市场)进行时间序列预测。

https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html

令人惊讶的是,梯度提升回归器在训练数据上实现了非常高的准确度——令人惊讶,因为数据非常嘈杂。但是,它在测试集上表现不佳。

这显然是过度拟合的情况,所以我想知道我可以更改哪些参数来规范梯度提升回归器。

到目前为止,我已经尝试了 max_depth,将其减少到 1(从默认值 3)。这似乎在提高验证集的准确性方面效果很好。

有谁知道我可以调整哪些其他参数以提高验证/测试集的性能?谢谢

1个回答

您可以在任何增强技术中调整的超参数是:

  1. 每棵树的深度:正如您正确指出的那样,这非常重要,因为提升技术中的每棵树都从先前树的错误中学习。因此,对初始树的欠拟合确保了后面的树学习实际模式而不是噪声。

  2. 树的数量:从前一点来看,这是一种直观的感觉,因为树的数量增加了可学习的信号减少,因此理想的树数量多于欠拟合的树,少于过拟合的树。

  3. 学习率:此参数根据 0 到 1 之间的值赋予先前树的权重。较低的学习率对先前树的重要性较低。更高的权重导致更快的优化步骤。较低的权重通常会导致全局最优。但是较低的学习率需要更多的树来学习函数。

4.子样本:如果值小于1,则使用变量子集来构建树,使其健壮并从更多变量中学习信号。该变量通过不只拟合一个变量而是一组变量来减少过度拟合。

如果调整正确,这些变量足以减少过度拟合。