hessian 正则化(min_child_weight)和损失正则化(gamma)有什么区别?什么时候使用一个而不是另一个?

数据挖掘 xgboost 正则化 助推
2021-09-22 15:58:28

我想知道XGBoostmin_child_weight和正则化之间的区别。gamma据我了解:

  • hessian 正则化会阻止单个树 (ft) 从增长(很像限制max_depth
  • 损失正则化阻止了单个树(ft) 不会被保留在集合中,因为它会惩罚树的数量

但是,我很难从中找到实际意义。我的意思是,是否存在黑森正则化比伽马正则化表现更好(或更差)的情况?还是这一切都取决于数据集和其他超参数值?我的感觉是,当我的模型损失主要是由一些非常不准确的预测引起的 - 那么 hessian 正则化可能比 gamma 更有帮助,并且当我的模型在每次观察中被误认为大约相同的数量时,那么 gamma 会更好。但我很难找出这种感觉的证据。

1个回答

损失正则化也阻止了树的生长;它不会惩罚树木的数量。

我认为你是对的,哪个更好(当然,你可以同时使用)取决于数据和其他超参数。您可以考虑给定节点是否会分裂,具体取决于正则化的类型:
如果您有一个大节点具有一些潜在的分裂,这将创建另外两个大节点,但这种分裂不会减少太多损失,gamma将防止但min_child_weight不会。如果您有一个节点可能分裂,其中一个孩子非常小,但这会大大减少损失,gamma将允许但min_child_weight不会。所以,个人意见(基于那个思想实验,没有经验将这两者调整在一起或相互对抗):min_child_weight足够大,以至于您对具有这么多样本的节点(在平方损失情况下,并在其他情况下进行适当转换)感到满意,足以吸收您的人口的噪音[我的意思是:一个样本肯定很可能为随机噪声;平均 100 可能会更好,但可能还不够,这取决于您的数据];设置好之后,调gamma更好的是,将它们一起调整,但仍然使用上述对数据的直觉来为min_child_weight.