【问题标题】:LightGBM plot tree not matching feature importanceLightGBM 绘图树与特征重要性不匹配
【发布时间】:2021-06-02 10:21:38
【问题描述】:

我正在从 lightgbm 绘制模型并尝试查看绘图树。当我使用 plot.tree 时,它​​可以工作......但是,树的输出与特征重要性不匹配,也不匹配我在优化参数时选择的叶子数。

例如,特征 A 是我的特征重要性图中最重要的特征,但这个特征并没有在我的实际决策树图中显示为要做出决策的节点。另外,我的参数之一是 22 片叶子,但树状图有 24 片叶子。

我正在使用 python 在 databricks 环境中执行此操作。

有什么想法吗?

我无法发布代码,抱歉。任何对正在发生的事情有大致了解的人都会有所帮助。

【问题讨论】:

    标签: plot decision-tree lightgbm


    【解决方案1】:

    首先,Ligthgbm 是一种 Boosting ensemble 方法,这意味着您可以串联创建几棵树。

    那么,你要绘制哪棵树?你有几棵树,只探索一棵树并不能代表模型的工作原理。当然,如果您检查几棵树,您的特征 A 应该会出现。

    关于不同的num_leaves,我没有明确的答案。这没有道理。我应该有一些代码和输出来分析它(但我在你的评论中看到你不能提供它,别担心)。理论上,如果你指定这个值,你不应该有任何超过 22 片叶子的树......无论如何,你可以尝试使用另一个超参数:max_depth,它非常相似,事件更好。

    【讨论】:

    • 谢谢你,亚历克斯。我不记得 plot.tree 有参数 tree_index = X 感觉像个傻瓜。这解决了我的问题。真的很感激。
    猜你喜欢
    • 2021-02-03
    • 2019-04-24
    • 2017-11-14
    • 1970-01-01
    • 2019-01-09
    • 2018-05-29
    • 2020-07-24
    • 1970-01-01
    相关资源
    最近更新 更多