如何在 scikit 学习中将特征名称添加到决策树的输出

How to add feature names to output of decision tree in scikit learn

我正在 scikit-learn 中构建决策树,然后想生成该树的 pdf。我输出树的工作流程大致如下

vec = DictVectorizer()
data_vectorized = vec.fit_transform(data)
vec.get_feature_names() #Shows feature names

clf = tree.DecisionTreeClassifier()
clf = clf.fit(data_vectorized, Labels)

from sklearn.externals.six import StringIO  
import pydot 
dot_data = StringIO() 
tree.export_graphviz(clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
graph.write_pdf("tree.pdf") 

然而,此 pdf 的每个节点都显示了使用 data_vectorized[i] 对某些 i 进行的比较。当 data_vectorized 很大且稀疏时,这很难解释。

如何让它显示功能的名称?

此图显示了您得到的示例(当特征在变量 X 中时。例如,我希望 X[2] 被特征名称替换。

尝试将您的导出更改为:

tree.export_graphviz(clf, out_file=dot_data, feature_names=vec.get_feature_names())