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

sok*_*014 4 python decision-tree scikit-learn

下午好,

我正在研究决策树分类器,但我无法将其可视化.我可以输出决策树,但是我无法将我的功能或类名/标签输入其中.我的数据是一个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=??)  
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激!

谢谢,

斯科特

max*_*moo 12

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

classe_names = decision_tree_classifier.classes_
feature_names = df.columns[14:]
Run Code Online (Sandbox Code Playgroud)


小智 6

就我个人而言 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)  
Run Code Online (Sandbox Code Playgroud)

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