提问者:小点点

安装Graphviz,没有名为Graphviz的模块


我一直在尝试安装graphviz并与python连接,以绘制决策树的一些节点。我读过很多与我有相同问题的线程,但我执行了很多解决方案,但仍然无法执行决策树:(

我不是程序员,我只是一个试图学习机器学习模型的简单经济学家,所以对我来说很难阅读其他线程中提供的大部分解决方案。

我已经可以在我的cmd和conda安装-c anaconda pydot中安装conda安装-c anaconda graviz,并且安装完成。(我也从GraphViz页面下载rar包)

然后我尝试导入graphviz,但是python显示了以下错误没有名为'graphviz'的模块

因此,我尝试使用以下cdC:\ProgramFiles(x86)\Graphviz2向我的环境添加一个新路径。38\bin但我仍然有同样的问题。

我试图在spyder代码中运行以下脚本,但没有成功

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

import pydot
from IPython.display import Image, display
# import graphviz as gv

from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.externals.six import StringIO  
from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier, 
export_graphviz
from sklearn.ensemble import BaggingClassifier, RandomForestClassifier, 
BaggingRegressor, RandomForestRegressor, GradientBoostingRegressor
from sklearn.metrics import mean_squared_error,confusion_matrix, 
classification_report

# This function creates images of tree models using pydot
def print_tree(estimator, features, class_names=None, filled=True):
   tree = estimator
   names = features
   color = filled
   classn = class_names

   dot_data = StringIO()
   export_graphviz(estimator, out_file=dot_data, feature_names=features, 
   class_names=classn, filled=filled)
   graph = pydot.graph_from_dot_data(dot_data.getvalue())
   return(graph)

hitter = 
pd.read_csv('C:\\Users\\ldresl\\Documents\\Chapter8\\Hitters.csv',sep=';')

hitter = hitter.dropna()

#Llamo una nueva matriz
X = hitter[['Years','Hits']].as_matrix()
y = np.log(hitter.Salary.as_matrix())

 #Se corre todo el codigo junto
fig, (ax1, ax2) = plt.subplots(1,2, figsize=(11,4))
ax1.hist(hitter.Salary.as_matrix())
ax1.set_xlabel('Salary')
ax2.hist(y)
ax2.set_xlabel('Log(Salary)');

# Corro la regresion de la decision tree (NOTAR QUE NO ES RANDOM FOREST!!!)
regr = DecisionTreeRegressor(max_leaf_nodes=3)
regr.fit(X, y)

graph, = print_tree(regr, features=['Years', 'Hits'])
Image(graph.create_png())

但每当我试图运行最后两行抛给我以下错误[WinError 2]dot.exe路径中找不到。另外,如果我写导入Graphviz作为gv没有找到它。

对不起我的英语:(我正在学习:)。


共3个答案

匿名用户

Anaconda现在有一个python graphviz包。org,其中包含graphviz工具的Python接口。只需使用以下设备安装:

conda install python-graphviz

查看这里了解更多信息。

匿名用户

下面的命令在Windows10中对我有效,Anaconda4.8版。三:

conda install -c anaconda python-graphviz

匿名用户

解决问题的最好方法是:

source activate anaconda
pip安装pydot
pip安装pydotplus
pip安装PydotNG

然后根据您的操作系统类型下载并安装Graphviz:

http://www.graphviz.org/download/

查看我以前的回答以了解更多信息:
Python运行时错误:无法导入pydot