【问题标题】:eli5 explaining prediction XGBoost modeleli5 解释预测 XGBoost 模型
【发布时间】:2018-08-30 08:36:23
【问题描述】:

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

我阅读了文档并找到了

" 在每一列中都有特征及其权重。截取 (bias) 特征如同表"

但我不明白这里的截取偏差是什么意思。

感谢您的帮助:)

【问题讨论】:

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


    【解决方案1】:

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

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

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

    所以你可以将<BIAS>理解为模型输出的预期平均分数,基于训练集的分布。

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

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

    【讨论】:

    • 谢谢!这非常有帮助,您知道 xgboost 如何为分类问题计算终端叶子的分数吗?
    • 不是一个简单的答案!这里解释了公式和证明:xgboost.readthedocs.io/en/latest/model.html -- 叶子分数在w 向量中(在“模型复杂性”一章中)
    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 2019-08-18
    • 2021-12-18
    • 1970-01-01
    • 2022-11-10
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多