Sklearn决策树未使用Graphviz绘制

时间:2020-01-18 20:56:54

标签: python-3.x pandas scikit-learn

我编写了此代码以应用决策树算法。但是,然后使用Graphviz绘制树木时,没有发生任何事情……任何人都可以检查我所缺少的东西吗?

features=
age balance day month   duration    campaign    
58  2143    5   5       261         1   
44  29      5   5       151         2   
33  2       5   5       76          1   
47  1506    5   5       92          3
33  1       5   5       198         1   

target=
conversion
0
1
1
0

# Create decision tree 
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from IPython.display import Image  
from sklearn import tree
import pydotplus
import graphviz

    X=features
    y=target

    clf = DecisionTreeClassifier(random_state=0)

    # Train model
    model = clf.fit(X, y)

    # Create DOT data
    dot_data = tree.export_graphviz(clf, out_file=None, 
                                    feature_names=features.columns,  
                                    class_names=['0','1'])

    # Draw graph
    graph = pydotplus.graph_from_dot_data(dot_data)  

    # Show graph
    Image(graph.create_png())

运行此代码时,我收到一个InvocationException:找不到GraphViz的可执行文件!这是什么意思?

1 个答案:

答案 0 :(得分:-1)

您需要从sklearn.trees导出dt_model,它基本上是使用功能export_graphviz而不是[dt_model = tree.DecisionTreeClassifier(max_depth = 4)]的适合树的目标文件

然后使用pydotplus进行显示