【发布时间】:2012-10-12 07:59:35
【问题描述】:
我正在使用 pydot 在 python 中绘制图形。 我想代表一个决策树,比如(a1,a2,a3 是属性,两个类是 0 和 1:
a1>3
/ \
a2>10 a3>-7
/ \ / \
1 0 1 0
但是,使用 pydot,只创建了两片叶子,树看起来像这样(附上 png):
a1>3
/ \
a2>10 a3>-7
| X |
1 0
现在,在这种简单的情况下,逻辑很好,但在较大的树中,属于不同分支的混乱内部节点是统一的。
我使用的简单代码是:
import pydot
graph = pydot.Dot(graph_type='graph')
edge = pydot.Edge("a_1>3", "a_2>10")
graph.add_edge(edge)
edge = pydot.Edge("a_1>3", "a_3>-7")
graph.add_edge(edge)
edge = pydot.Edge("a_2>10", "1")
graph.add_edge(edge)
edge = pydot.Edge("a_2>10", "0")
graph.add_edge(edge)
edge = pydot.Edge("a_3>-7", "1")
graph.add_edge(edge)
edge = pydot.Edge("a_3>-7", "0")
graph.add_edge(edge)
graph.write_png('simpleTree.png')
我还尝试创建不同的节点对象而不是创建边并将其添加到图中,但似乎 pydot 会检查节点池中是否具有相同名称的节点,而不是创建新节点。
有什么想法吗?谢谢!
【问题讨论】:
标签: python decision-tree pydot