Sto usando pydot per disegnare grafici in python. Mi piacerebbe rappresentare un albero decisionale, dire qualcosa di simile (A1, A2, A3 sono attributi e due classi sono 0 e 1:pydot: è possibile tracciare due nodi diversi con la stessa stringa?
a1>3
/ \
a2>10 a3>-7
/\ /\
1 0 1 0
Tuttavia, utilizzando pydot, solo due foglie vengono creati e l'albero sembra che questo (png allegata):
a1>3
/ \
a2>10 a3>-7
| X |
1 0
Ora, in questo caso semplice la logica è soddisfacente, ma negli alberi più grandi è nodi interni disordinato appartenenti a diversi rami sono unificati
il semplice codice I'. m utilizzando è:
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')
Ho anche provato a creare oggetti nodo diversi da creare i bordi e poi aggiungerlo al grafico ma sembra che pydot controlli il pool di nodi per i nodi con lo stesso nome invece di crearne uno nuovo.
Qualche idea? Grazie!