对于分类问题(假设损失函数是负二项似然),梯度提升(GBM)算法计算残差(负梯度),然后使用均方误差(MSE)作为分裂的回归树来拟合它们标准。这与 XGBoost 算法有何不同?
XGBoost 是否利用回归树来拟合负梯度?GBM 和 XGBoost 之间的唯一区别是正则化项还是 XGBoost 使用另一个拆分标准来确定回归树的区域?
对于分类问题(假设损失函数是负二项似然),梯度提升(GBM)算法计算残差(负梯度),然后使用均方误差(MSE)作为分裂的回归树来拟合它们标准。这与 XGBoost 算法有何不同?
XGBoost 是否利用回归树来拟合负梯度?GBM 和 XGBoost 之间的唯一区别是正则化项还是 XGBoost 使用另一个拆分标准来确定回归树的区域?
@jbowman 有正确的答案:XGBoost 是 GBM 的一种特殊实现。
GBM 是一种算法,您可以在Greedy Function Approximation: A Gradient Boosting Machine中找到详细信息。
XGBoost 是 GBM 的实现,您可以在 GBM 中配置要使用的基础学习器。它可以是一棵树、树桩或其他模型,甚至是线性模型。
这是在 XGBoost 中使用线性模型作为基础学习的示例。
梯度提升 (GBM) 算法计算残差(负梯度),然后使用均方误差 (MSE) 作为分割标准的回归树来拟合它们。这与 XGBoost 算法有何不同?
两者确实都适合回归树,以在每次提升迭代中最小化 MSE wrt 伪响应变量。该伪响应是根据原始二元响应和先前迭代的回归树的预测计算得出的。
这两种方法在计算伪响应的方式上有所不同。GBM 在当前的 boosting 迭代中使用损失函数的一阶导数,而 XGBoost 使用一阶和二阶导数。后者也称为牛顿助推。
AfaikR
包gbm
默认使用梯度提升。在每次提升迭代中,回归树都会最小化负梯度的最小二乘逼近。
GBM 和 XGBoost 之间的唯一区别是正则化项还是 XGBoost 使用另一个拆分标准来确定回归树的区域?
我不完全理解您所说的正则化术语是什么意思。回归树的分割标准确实不同,因为 XGBoost 计算伪响应变量的方式不同。在每次提升迭代中,它拟合回归树以最小化加权最小二乘近似。计算伪响应以使来自先前树的预测越极端(即远离零的线性预测器;接近于 0 或 1 的预测概率),观察将在当前迭代中受到的影响越小。因此,梯度由先前树的预测的不确定性加权。
Sigrist (2021) 很好地讨论了预测性能和优化功能方面的差异。
西格里斯特,F. (2021)。用于分类和回归的梯度和牛顿提升。具有应用程序的专家系统,167,114080。https ://arxiv.org/abs/1808.03064
两者都是相同的 XG boost 和 GBM,两者的工作原理相同。在 Xg boost 中并行计算是可能的,这意味着在 XG boost 中许多 GBM 并行工作。在 Xgboost 中,调整参数更多。它们中的任何一个都可以使用,我选择使用 XG 增强,因为需要更多的调整参数,从而稍微提高准确性。