如何在 sklearn 决策树中显示特征名称?

Posted

技术标签:

【中文标题】如何在 sklearn 决策树中显示特征名称?【英文标题】:How to display feature names in sklearn decision tree? 【发布时间】:2021-06-07 16:03:00 【问题描述】:

我目前有一个决策树,将功能名称显示为X[index],即X[0], X[1], X[2],等等。

from sklearn import tree
from sklearn.tree import DecisionTreeClassifier

dt = DecisionTreeClassifier()
dt.fit(X_train, y_train)

 
# plot tree
plt.figure(figsize=(20,16))# set plot size (denoted in inches)
tree.plot_tree(dt,fontsize=10)

我希望将这些 X[featureNumber] 替换为实际的功能名称。

所以我希望它显示X.columns.values[0]返回的功能名称而不是显示X[0](我不知道这段代码是否正确)。

我也知道使用 graphviz 有一种简单的方法可以做到这一点,但由于某种原因,我无法让 graphviz 在 Jupiter 中运行,所以我正在寻找一种不用的方法。

当前决策树的照片:

【问题讨论】:

欢迎来到 SO;如果答案解决了您的问题,请接受 - 请参阅What should I do when someone answers my question? 【参考方案1】:

这在the documentation中有解释:

sklearn.tree.plot_tree(decision_tree, *, max_depth=None, feature_names=None, class_names=None, label='all', filled=False, impurity=True, node_ids=False, proportion=False, rotate='deprecated', rounded=False, precision=3, ax=None, fontsize=None)

feature_names:字符串列表,默认=None

每个功能的名称。如果None,将使用通用名称(“X[0]”、“X[1]”、...)。

【讨论】:

以上是关于如何在 sklearn 决策树中显示特征名称?的主要内容,如果未能解决你的问题,请参考以下文章

决策树中的特征重要性、离散化和标准

决策树中的特征重要性、离散化和标准

SciKit Learn 中决策树中的 Feature_importance 向量以及特征名称

我如何从决策树中预测 x_train 的位置获取叶子的节点号?

如何解释sklearn决策树树中的children_left属性_

如何获取决策树中的所有基尼指数?