问题标签 [leaf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pandas - XGBClassifier 中哪个是正确的树?
我在 Pandas 中训练了以下 XGBClassifier:
生成的树如下所示:
如您所见,有 4 片叶子:
我的假设是我们在图片中看到的数字是对数赔率。
然后我使用该apply
方法检查每个样本的每棵树的预测叶子:
打印输出如下所示:
树的总数是 3(从 0 到 2),因为我设置了n_estimators=3
. 我的理解正确吗?
问题:上面这三棵树中哪一棵对应上图中显示的树(地块)?
我已经倾倒了树:
看起来像这样:
我用橙色突出显示了与上图相对应的叶子和增益。因此,我假设树 0是算法选择的用于分割数据集的树。
现在,当我通过仅选择 tree 将用于训练 XGBClassifier 的数据帧与包含apply
结果的数据帧合并时0
,我获得了一个数据帧,其中包含我使用该model.predict_proba(X)
方法预测的概率和一个名为Leaf
包含叶子的列3,4,5,6 符合预期。问题是概率字段只包含两个值:我期待四个值(每个叶子一个)。
这是为什么?我希望为每个叶子分配一个且唯一的概率。
我怎样才能弄清楚算法选择为每个记录分配叶子的分段是什么?我在哪里可以找到实际的细分?以及如何在包含正确叶子的火车数据框中创建一列?