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

人气:88 发布:2023-01-03 标签: python scikit-learn machine-learning pandas decision-tree

问题描述

我目前有一个决策树,将功能名称显示为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]。

我也知道有一种简单的方法可以使用graph viz来完成这项工作,但由于某些原因,我无法在Jupiter上运行graph viz,所以我正在寻找一种不使用它的方法。

当前决策树图片:

推荐答案

在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]",…)。

19