如何在 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 的位置获取叶子的节点号?