使用 export graphviz 将特征和类名称放入决策树

Posted

技术标签:

【中文标题】使用 export graphviz 将特征和类名称放入决策树【英文标题】:Get feature and class names into decision tree using export graphviz 【发布时间】:2017-01-21 09:48:30 【问题描述】:

下午好,

我正在研究决策树分类器,但无法对其进行可视化。我可以输出决策树,但是我无法将我的功能或类名称/标签放入其中。我的数据采用 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=??)  

就像我说的,如果我取出 feature_names 和 class_names 参数,它运行良好并输出决策树。如果可能的话,我想将它们包含在输出中并且已经碰壁了......

任何帮助将不胜感激!

谢谢,

斯科特

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

就我个人而言,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

【讨论】:

以上是关于使用 export graphviz 将特征和类名称放入决策树的主要内容,如果未能解决你的问题,请参考以下文章

Scikit决策树分类特征

如何使用 export_graphviz 显示决策树图

export_graphviz 返回 NoneType

了解 export_graphviz 的决策树输出

python 导出树,export_graphviz

如何阅读graphviz决策树?