有人可以解释这些XGBoost树中的得分是如何得出的吗?

问题描述 投票:2回答:3

我正在看下面的图像。 enter image description here

有人能解释一下它们的计算方法吗?我虽然是N为-1而+1是肯定的但是后来我无法弄清楚这个小女孩是怎么回事.1。但这对树2也不起作用。

xgboost
3个回答
2
投票

叶子元素(又名“得分”) - +2+0.1-1+0.9-0.9的值 - 是在训练期间由XGBoost算法设计的。在这种情况下,XGBoost模型使用数据集进行训练,其中小男孩(+2)比小女孩(+0.1)显得更“大”。如果您知道响应变量是什么,那么您可以进一步解释/合理化这些贡献。否则,只需按原样接受这些值。

对于评分样本,第一个加数由tree1生成,第二个加数由tree2生成。对于小男孩(age < 15is male == Yuse computer daily == Y),tree1产生2和tree2产生0.9



2
投票

我同意@ user1808924。我认为仍然值得解释一下XGBoost如何在幕后工作。

  • leaves'得分是什么意思?

首先,你在树叶中看到的分数不是概率。它们是回归值。

在Gradient Boosting Tree中,只有回归树。为了预测某人是否喜欢电脑游戏,该模型(XGboost)会将其视为回归问题。这里的标签变为1.0表示是,0.0表示否。然后,XGboost将回归树放入训练中。树当然会返回类似+2,+ 0.1,-1的东西,我们在树叶处得到它们。

我们总结所有“原始分数”,然后通过应用sigmoid函数将它们转换为概率。

  • 如何计算叶子的分数?

叶子得分(w)由this formula计算:

w = - (sum(gi) / (sum(hi) + lambda))

其中gh是一阶导数(梯度)和二阶导数(粗麻布)。

为了演示,让我们选择具有第一棵树的-1值的叶子。假设我们的目标函数是mean squared error (mse),我们选择lambda = 0

有了mse,我们有g = (y_pred - y_true)和h=1。我只是摆脱常数2,事实上,你可以保留它,结果应该保持不变。另一个注意事项:在第t次迭代时,y_pred是我们在第(t-1)次迭代后得到的预测(直到那时我们得到的最好)。

一些假设:

  • 女孩,爷爷和奶奶不喜欢电脑游戏(每个人都有y_true = 0)。
  • 对于所有3个人来说,最初的预测是1(也就是说,我们猜测所有人都喜欢游戏。请注意,我会故意选择1来获得与第一棵树相同的结果。事实上,初始预测可以是均值,中位数, ...叶子中所有观察结果的标签。

我们为每个人计算gh

  • g_girl = y_pred - y_true = 1 - 0 = 1。同样,我们有g_grandpa = g_grandma = 1
  • h_girl = h_grandpa = h_grandma = 1

g, h值放入上面的公式中,我们得到:

w = -( (g_girl + g_grandpa + g_grandma) / (h_girl + h_grandpa + h_grandma) ) = -1

最后一点:在实践中,我们在绘制树时看到的叶子分数有点不同。它将乘以学习率,即w * learning_rate

© www.soinside.com 2019 - 2024. All rights reserved.