使用export graphviz将特征和类名称添加到决策树中

时间:2016-09-13 17:42:15

标签: python scikit-learn decision-tree

下午好,

我正在研究决策树分类器,但我无法对其进行可视化。我可以输出决策树,但是我无法将我的功能或类名/标签输入其中。我的数据是一个pandas数据帧格式,然后我移动到一个numpy数组并传递给分类器。我尝试过一些东西,但是当我尝试指定类名时,似乎只是出错了。任何帮助,将不胜感激。代码如下。

all_inputs=df.ix[:,14:].values
all_classes=df['wic'].values

(training_inputs,
 testing_inputs,
 training_classes,
 testing_classes) = train_test_split(all_inputs, all_classes,train_size=0.75, random_state=1)

decision_tree_classifier=DecisionTreeClassifier()
decision_tree_classifier.fit(training_inputs,training_classes)

export_graphviz(decision_tree_classifier, out_file="mytree.dot",  
                     feature_names=??,  
                     class_names=??)  

LIke我说,如果我拿出feature_names和class_names参数,它运行正常并输出一个决策树。我想尽可能将它们包含在输出中并且已经碰壁了......

非常感谢任何帮助!

谢谢,

斯科特

2 个答案:

答案 0 :(得分:10)

类名存储在decision_tree_classifier.classes_中,即classes_个实例的DecisionTreeClassifier属性。功能名称应该是输入数据框的列。对于你的情况,你将有

classe_names = decision_tree_classifier.classes_
feature_names = df.columns[14:]

答案 1 :(得分:1)

对我个人而言,class_names = True有效。它会显示结果的象征性表示。

feature_names = df.columns[14:]
tree.export_graphviz(decision_tree_classifier, out_file="mytree.dot",  
                     feature_names=feature_names ,  
                     class_names=TRUE)  

以下是有关该主题的更多详细信息:https://scikit-learn.org/stable/modules/generated/sklearn.tree.export_graphviz.html