eli5解释预测XGBoost模型

时间:2018-03-21 09:36:55

标签: python-3.x machine-learning scikit-learn xgboost

我不明白为什么我在贡献功能中有一个名为BIAS的功能。

我阅读了文档并找到了

  

"在每列中都有功能和重量。截距   (偏差)功能显示在同一表格中#34;

但我不明白这里有什么拦截偏见。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

这与ELI5计算权重的方式有关。

XGBoost仅为树叶输出分数(您可以通过booster.dump_model(…, with_stats=True)查看),因此XGBoost中的ELI5解释器实现开始为每个节点重建伪叶分数所有的树木。这些伪叶得分基本上是在此节点级别停止树时所期望的平均叶得分,因此所有子叶的平均值都由它们在训练集中的覆盖加权。

此算法也适用于树的根节点,这些树根类似地分配了伪叶分数。在根节点级别,此分数是您可能最终通过树的平均分数。对所有树进行求和,所有根节点得分的总和是您可能通过所有树的平均得分(将应用sigmoid转换为概率的树)。这是ELI5放入<BIAS>的内容。

因此,根据训练集的分布,您可以将<BIAS>理解为模型的预期平均得分输出。

如果您修改<BIAS>参数,base_score会发生变化(例如,在二进制分类不平衡的情况下,您可以将默认0.5更改为更接近目标费率的值,<BIAS>应该更接近0)。

编辑:也许这个博客的视觉解释更清晰(baseline相当于<BIAS>https://medium.com/applied-data-science/new-r-package-the-xgboost-explainer-51dd7d1aa211