Python 如何在scikit学习中向决策树的输出添加功能名称

Python 如何在scikit学习中向决策树的输出添加功能名称,python,scikit-learn,Python,Scikit Learn,我正在scikit学习中构建一个决策树,然后想要生成该树的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.ext

我正在scikit学习中构建一个决策树,然后想要生成该树的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的每个节点都使用数据矢量化[i]对某些i进行比较。当矢量化的数据很大且稀疏时,这很难解释

如何让它显示功能的名称

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


尝试将导出更改为:

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

谢谢!我应该发现的。