No puedo reproducir un ejemplo simple. Aquí es cómo va:

import pandas as pd
import numpy as np
import sklearn as skl
from sklearn import tree
from sklearn.cross_validation import train_test_split as tts



#   import data and give a little overview
sample = pd.read_stata('sample_data.dta')
s = sample

#   Let's learn
X = np.array((s.crisis, s.cash, s.industry, s.current_debt, s.activity)).reshape(1000, 5)
y = np.array(s.wc_measure)

X_train, X_test, y_train, y_test = tts(X, y, test_size = .8)

my_tree = tree.DecisionTreeClassifier()
clf = my_tree.fit(X_train, y_train)
predictions = my_tree.predict(X_test)

#   Graph the tree
from sklearn.externals.six import StringIO  
import pydotplus 
dotfile = StringIO() 
tree.export_graphviz(clf, out_file=dotfile) 
pydotplus.graph_from_dot_data(dotfile.getvalue()).write_png("my_tree.png")

Cuando intento graficar el árbol, aparece el siguiente error:

pydotplus.graphviz.InvocationException: GraphViz's executables not found

¿Alguna idea de cuál es el problema? Sigo cuidadosamente la documentación de graphviz.

1
Rachel 25 ago. 2016 a las 16:30

2 respuestas

La mejor respuesta

Parece que no instaló el software graphviz en absoluto. Debes descargarlo e instalarlo antes de usar el módulo.

2
Ohad Eytan 26 ago. 2016 a las 09:17

Paso 1, instale la versión C de graphviz usando 'sudo apt-get install graphviz' si es ubuntu, 'brew install graphviz' si es OSX

Paso 2, instale el paquete 'graphviz' por pip sudo pip install graphviz

2
dxf 12 mar. 2018 a las 03:56