哪些损失函数与 h2o xgboost 和 gbm 中的分布相关?

What loss functions are associated with the distributions in h2o xgboost and gbm?

我需要知道在高斯分布、二项分布和多项分布的 h2o gbm 和 xgboost 函数中使用了哪些损失函数。不幸的是,我对 Java 的了解非常有限,我无法真正破译源代码,而且似乎也没有任何文件说明哪个发行版与哪个功能相关联。我想我从 here 中收集到,它是二项式的对数损失和高斯的 MSE,但我找不到多项式的任何东西。这里有人知道答案吗?

感谢您的提问。我们绝对应该在 documentation 中提供此信息。我们正在努力改进文档。回答你的问题:

H2O GBM 和 XGBoost 的多项式 classification 的损失函数也是 softmax。 H2O GBM 是基于这个 paper 实现的:Greedy function approximation: A gradient boosting machine,Jerome H. Friedman 2001。在第 4.6 章中。作者很好地解释了它是如何计算的以及为什么。

基于损失函数定义了negHalfGradient方法,每个分布单独实现它。对于多项式分布 (here),实现是:

@Override
public double negHalfGradient(double y, double f, int l) {
    return ((int) y == l ? 1f : 0f) - f;
}

其中:

  • y 是实际响应
  • f 是 link space
  • 中的预测响应
  • l 是一个 class 标签(从原始标签按字典顺序转换为 class - 1 的 0 个)

如果您有其他问题,请告诉我。