0314——Graphviz问题(可视化CART数树)

背景描述:

python版本:3.6.3

IDE:pycharm

问题:

在pycharm上安装了graphviz和pydotplus等包,但是运行下面程序时,仍然会报错: GraphViz's executables not found
报错:
"F:\python\python project\learn & practise\venv2\Scripts\python.exe" E:/python_liao/0313-actual/0313_01_G635.py
Traceback (most recent call last):
  File "E:/python_liao/0313-actual/0313_01_G635.py", line 48, in <module>
    graph.write_pdf("G635_tree.pdf")
  File "F:\python\python project\learn & practise\venv2\lib\site-packages\pydotplus\graphviz.py", line 1810, in <lambda>
    prog=self.prog: self.write(path, format=f, prog=prog)
  File "F:\python\python project\learn & practise\venv2\lib\site-packages\pydotplus\graphviz.py", line 1918, in write
    fobj.write(self.create(prog, format))
  File "F:\python\python project\learn & practise\venv2\lib\site-packages\pydotplus\graphviz.py", line 1960, in create
    'GraphViz\'s executables not found')
pydotplus.graphviz.InvocationException: GraphViz's executables not found

程序:
  
import numpy as np
from sklearn import tree
from sklearn.tree 
import DecisionTreeRegressor
import matplotlib.pyplot as plt
import pandas as pd
import pydotplus
# 生成CART决策回归树模型
regr_1 = DecisionTreeRegressor(max_depth=5)
regr_1.fit(data_x_train, data_y_train)

# 用模型regr_1进行预测
data_y_predict = regr_1.predict(data_x_test) ******************************************************************************************** 该部分生成了决策回归树的可视化图,分别为.dot和.pdf格式的可视化文档# 现在可以将模型存入dot文件:G635_tree.dot
with open("G635_tree.dot", 'w') as f: 
f = tree.export_graphviz(regr_1, out_file=f)
# 可视化方法------------------------------------------
# 用pydotplus生成G635_tree.pdf。这样就不用再命令行去专门生成pdf文件了。
dot_data = tree.export_graphviz(regr_1, out_file=None)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("G635_tree.pdf") 
********************************************************************************************

# plot the results
plt.figure(figsize=(12, 9))
plt.plot(data_x_axix, data_y_predict, color="r", label="predict", linewidth=2)
plt.plot(data_x_axix, data_y_test, 'b', label="original")
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regression")
plt.legend()
plt.show()
print('model:\n', regr_1)


解决方法:

参照http://blog.csdn.net/tina_ttl/article/details/51778551里面的方法,下载Graphviz的.zip文件,解压到一个路径下,得到“**graphviz-2.38\release\“这样的文件夹,然后把该路径利用os.path加入到程序里面,即可得到正常运行该程序。并且生成两个文档,可视化决策树的分类结果。
    import os
    os.environ["PATH"] += os.pathsep + 'F:/python/graphviz-2.38/release/bin/'

不知道具体原因,参考其他人的解答:
没有安装GraphViz‘s executables。我是用pip安装的Graphviz,但是Graphviz不是一个python tool,仍然需要安装GraphViz‘s executables,解决方法是 将GraphViz安装目录的bin目录放到环境变量的path路径中。

另附sklearn的简介:

(附一个学习的网址:http://sklearn.lzjqsdd.com/index.html)
     自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了。scikit-learn简称sklearn,支持包括分类、回归、降维和聚类四大机器学习算法。还包含了特征提取、数据处理和模型评估三大模块。
     sklearn是Scipy的扩展,建立在NumPy和matplotlib库的基础上。利用这几大模块的优势,可以大大提高机器学习的效率。
     sklearn拥有着完善的文档,上手容易,具有着丰富的API,在学术界颇受欢迎。sklearn已经封装了大量的机器学习算法,包括LIBSVM和LIBINEAR。同时sklearn内置了大量数据集,节省了获取和整理数据集的时间。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Graphviz可视化决策树,你可以按照以下步骤进行操作: 1. 首先,确保已经安装了Graphviz软件包。你可以从Graphviz官方网站(https://graphviz.org/)下载并安装适用于你的操作系统的版本。 2. 在Python中,你需要安装`graphviz`包,可以使用pip命令进行安装:`pip install graphviz`。 3. 导入必要的库和模块: ```python from sklearn import tree import graphviz ``` 4. 准备决策树的数据集,并进行训练: ```python # 假设你有一个特征矩阵X和一个目标向量y X = [[0, 0], [1, 1]] y = [0, 1] # 创建并训练决策树模型 clf = tree.DecisionTreeClassifier() clf = clf.fit(X, y) ``` 5. 生成决策树的dot文件: ```python # 使用export_graphviz函数生成dot文件 dot_data = tree.export_graphviz(clf, out_file=None) # 或者,你可以指定一些参数来自定义可视化效果,例如: dot_data = tree.export_graphviz(clf, out_file=None, feature_names=['feature1', 'feature2'], class_names=['class1', 'class2'], filled=True, rounded=True) ``` 6. 将dot文件转换为可视化图形: ```python # 使用graphviz库将dot文件转换为可视化图形 graph = graphviz.Source(dot_data) ``` 7. 显示决策树可视化图形: ```python # 在Jupyter Notebook或类似的环境中,可以直接显示图形 graph # 如果你使用的是其他IDE或脚本方式运行,可以将图形保存为文件并打开 graph.render("decision_tree") ``` 这样,你就可以使用Graphviz可视化决策树了。记得替换掉步骤4中的数据集和步骤5中的特征名和类别名,以适应你的实际情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值