以下xgboost模型树图中'leaf'的值是什么意思?

时间:2016-12-02 06:44:15

标签: python machine-learning random-forest decision-tree xgboost

enter image description here

考虑到上述(树枝)条件存在,我猜测它是条件概率。但是,我不清楚。

如果您想了解有关所用数据的更多信息或我们如何获得此图表,请转到:http://machinelearningmastery.com/visualize-gradient-boosting-decision-trees-xgboost-python/

4 个答案:

答案 0 :(得分:7)

对于具有2个类别{0,1}的分类树,叶节点的值表示类别1的原始得分。可以使用logistic函数将其转换为概率得分。下面的计算以最左边的叶子为例。

1/(1+np.exp(-1*0.167528))=0.5417843204057448

这意味着如果一个数据点最终分配到该叶子,则该数据点为1类的概率为0.5417843204057448。

答案 1 :(得分:1)

你是对的。与叶节点相关联的那些概率值表示在给定树的特定分支的情况下到达叶节点的条件概率。树枝可以作为一组规则呈现。例如,在answer中提到的@ user1808924;一个规则代表树模型的最左侧分支。

因此,简而言之:树可以线性化为决策规则,其中结果是叶节点的内容,沿路径的条件在if子句中形成连接。通常,规则的格式为:

if condition1 and condition2 and condition3 then outcome.

可以通过在右侧使用目标变量构建关联规则来生成决策规则。它们还可以表示temporalcausal关系。

答案 2 :(得分:0)

属性leaf是预测值。换句话说,如果树模型的评估在该终端节点(也称为叶节点)处结束,那么这是返回的值。

在伪代码中(树模型的最左侧分支):

if(f1 < 127.5){
  if(f7 < 28.5){
    if(f5 < 45.4){
      return 0.167528f;
    } else {
      return 0.05f;
    }
  }
}

答案 3 :(得分:0)

如果它是一个回归模型(目标可以是reg:squarederror),则叶值是给定数据点对该树的预测。叶值可以基于目标变量为负。该数据点的最终预测将是该点的所有树木中叶子值的总和。

如果它是一个分类模型(目标可以是二进制:逻辑),则叶子值代表数据点属于正类的概率(如原始分数)。通过获取所有树木中的叶子值(原始分数)的总和,然后使用sigmoid函数将其在0和1之间转换,可以得出最终的概率预测。叶值(原始分数)可以为负,值0实际上表示概率为1/2。

请在-https://xgboost.readthedocs.io/en/latest/parameter.html

中找到有关参数和输出的更多详细信息