Używam programu pydot do rysowania wykresów w pythonie. chciałbym reprezentować drzewo decyzyjne, powiedzieć coś w stylu (a1, a2, a3 są atrybuty i dwóch klas 0 i 1:pydot: czy możliwe jest wykreślenie dwóch różnych węzłów z tym samym ciągiem znaków?
a1>3
/ \
a2>10 a3>-7
/\ /\
1 0 1 0
Jednak użycie pydot tylko dwa liście są tworzone i drzewo wygląda następująco (png załączeniu):
a1>3
/ \
a2>10 a3>-7
| X |
1 0
teraz, w tym prostym przypadku logika jest w porządku, ale w większych drzew jest niechlujny węzły wewnętrzne należące do różnych gałęzi są zunifikowane
prosty kod I”. m stosuje się:
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')
Próbowałem też tworzenia różnych obiektów węzłów niż tworzą krawędzie i niż go dodać do wykresu, ale wydaje się, że pydot sprawdza basen węzła dla węzłów o tej samej nazwie, zamiast tworzenia nowego.
Wszelkie pomysły? dzięki!