Ich benutze Pydot, um Grafiken in Python zu zeichnen. Ich möchte einen Entscheidungsbaum vertreten, so etwas sagen wie (a1, a2, a3 sind Attribute und zwei Klassen 0 und 1:Pydot: ist es möglich, zwei verschiedene Knoten mit der gleichen Zeichenfolge in ihnen zu plotten?
a1>3
/ \
a2>10 a3>-7
/\ /\
1 0 1 0
jedoch mit pydot werden nur zwei Blätter erstellt und der Baum sieht wie folgt aus (png beigefügt):
a1>3
/ \
a2>10 a3>-7
| X |
1 0
nun in diesem einfachen Fall die Logik ist in Ordnung, aber in größeren Bäumen ist es chaotisch inneren Knoten zu verschiedenen Zweigen vereinigt sind gehören,
der einfache Code I‘. m using ist:
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')
Ich habe auch versucht, verschiedene Knotenobjekte zu erstellen, als die Kanten zu erstellen und dann zum Diagramm hinzuzufügen, aber es scheint, dass pydot den Knotenpool nach Knoten mit demselben Namen prüft, anstatt einen neuen zu erstellen.
Irgendwelche Ideen? Vielen Dank!