gpt4 book ai didi

python - 在Python中使用graphviz绘制决策树

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:30 28 4
gpt4 key购买 nike

我正在关注上一篇文章中提出的答案:Is it possible to print the decision tree in scikit-learn?

from sklearn.datasets import load_iris
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot

clf = tree.DecisionTreeClassifier()
iris = load_iris()

clf = clf.fit(iris.data, iris.target)
tree.export_graphviz(clf, out_file='tree.dot')
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")

不幸的是,我无法找出以下错误:

'list' object has no attribute 'write_pdf'

有人知道解决这个问题的方法吗,因为生成的 tree.dot 文件的结构是一个列表?

更新

我尝试使用网络应用程序 http://webgraphviz.com/ 。这是可行的,但是,决策树条件以及类别不会显示。有什么方法可以将这些包含在 tree.dot 文件中吗?

最佳答案

看起来您在graph中收集的数据属于list类型。

graph = pydot.graph_from_dot_data(dot_data.getvalue())
type(graph)
<type 'list'>

我们只对列表的第一个元素感兴趣。因此,您可以通过以下两种方法之一执行此操作,

1) 将 graph 中收集 dot_data 值的行更改为

(graph, ) = pydot.graph_from_dot_data(dot_data.getvalue())

2) 或者在graph中收集整个列表,但仅使用第一个元素发送到pdf

graph[0].write_pdf("iris.pdf")

这是我得到的 iris.pdf 输出

enter image description here更新

为了解决路径错误,

Exception: "dot.exe" not found in path.

here安装graphviz

然后在您的代码中使用以下任一内容。

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'

或者只需将以下内容添加到控制面板中的 Windows 路径中。

C:\Program Files (x86)\Graphviz2.38\bin

根据 graphviz 文档,它在安装过程中不会添加到 Windows 路径。

关于python - 在Python中使用graphviz绘制决策树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984478/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com