Ich bekomme falsche Klassennamen im Entscheidungsbaum von "scikit learn/decision tree/export graphviz". Das Programm ist wie folgt dargestellt:scikit learn entscheidungsbaum export graphviz - falsche Klassennamen im Entscheidungsbaum
import matplotlib.pyplot as plt
import matplotlib.image as img
import pydot
from sklearn import tree
digital_table = [[0, 0], [0, 1], [1, 0], [1, 1]]
digital_label = ['zero', 'one', 'two', 'three']
digital_name = ['idx-1', 'idx-2']
digital_tree = tree.DecisionTreeClassifier()
digital_tree.fit(digital_table, digital_label)
with open("digital.dot", 'w') as f:
f = tree.export_graphviz(digital_tree,
feature_names=digital_name,
class_names=digital_label,
filled=True, rounded=True,
out_file=f)
(graph,) = pydot.graph_from_dot_file("digital.dot")
graph.write_png("digital.png")
plt.imshow(img.imread('digital.png'))
plt.show()
Die Ausgabe ist wie folgt:
Das Problem ist, über die Klassennamen in den Blättern gezeigt. Zum Beispiel sollte die grüne Box als 'drei' gekennzeichnet sein, wenn sowohl idx-1 als 1 als auch idx-2 als 1 sind. Aber das Bild zeigt die Bezeichnung als 'eins'. Kann jemand Ihre Kommentare geben?
Danke für die Kommentare vorbei. Aber ich denke, dass die Reihenfolge der Tabellenelemente und die Reihenfolge der Beschriftungselemente synchron sein sollte. Recht? – Frank