2016-09-02 4 views
0

의사 결정 트리를 파이썬으로 빌드하고 시각화하려고합니다. 그러나 graphviz는 문제를 만들고 있습니다. 난이 오류가 계속하지만의사 결정 트리 시각화

# -*- coding: utf-8 -*- 
import pandas as pd 
from pandas import Series, DataFrame 
import numpy as np 
import os 
import matplotlib.pylab as plt 
import sklearn 
from sklearn.cross_validation import train_test_split 
from sklearn.tree import DecisionTreeClassifier 
import sklearn.metrics 
from sklearn.metrics import classification_report 
from sklearn import tree 
from io import BytesIO as StringIO 
from IPython.display import Image 
import pydot 
import pydotplus 
import graphviz 

path = "C:\\Users\\admin\\PycharmProjects\\conference\\New\\decision_tree\\" 

data = pd.read_csv(path + "weights.csv") 
data_clean = data.dropna() 

#data_clean.dtypes() 
#data_clean.describe() 

predictors = data_clean[['anxiety', 'taking']] 
target = data_clean['influence_score'] 

pred_train, pred_test, tar_train, tar_test = train_test_split(predictors,target, test_size=.2) 

#pred_train.shape 
#pred_test.shape 
#tar_test.shape 
#tar_train.shape 

classifier = DecisionTreeClassifier() 
classifier = classifier.fit(pred_train,tar_train) 

predictons = classifier.predict(pred_test) 

sklearn.metrics.confusion_matrix(tar_test,predictons) 

data = StringIO() 

#out_dot = path + "tree.dot" 
tree.export_graphviz(classifier, out_file = data) 

graph = pydotplus.graph_from_dot_data(data.getvalue()) 

out_tree = path + "tree_full.pdf" 

graph.write_pdf(out_tree) 

: 여기

내가 노력 코드입니다. 내가 환경 변수를 변경하고 또한 (나는 pycharm을 사용하고 있습니다) 파이썬 IDE에서 가져와 포함 Graphvizpydotplus을 설치하기위한 모든 절차를 따랐

File "C:\Python27\lib\site-packages\pydotplus\graphviz.py", line 1960, in create 
    'GraphViz\'s executables not found') 
pydotplus.graphviz.InvocationException: GraphViz's executables not found 

. 설치된 Graphviz 버전 2.38.

어떻게하면됩니까?

+1

그래프에 그래프를 그리는 방법은? (http://stackoverflow.com/questions/39146728/how-to-graph-a-tree-with-graphviz) –

+0

질문에 포스터에 graphviz를 별도로 설치하지 않았으므로 문제가 발생했습니다. 별도로 설치했지만 여전히이 오류가 발생합니다. –

답변

0

해결했습니다. 그것은 환경 변수를 업데이 트에 실수를하고있는 것 같습니다. 잘 작동합니다.