wie erklären Sie den Entscheidungsbaum von scikit-learn
Ich habe zwei Probleme mit Verständnis das Ergebnis des Entscheidungsbaum von scikit-learn. Dies ist zum Beispiel einer meiner Entscheidung Bäume:
Meine Frage ist, wie kann ich mit dem Baum?
Die erste Frage ist die: wenn eine Probe erfüllt die Bedingung, dann geht es um die LINKS Zweig (falls vorhanden), ansonsten geht er RECHT. In meinem Fall, wenn eine Probe mit X[7] > 63521.3984. Dann wird die Probe gehen Sie auf das grüne Feld. Richtig?
Die zweite Frage ist, dass, wenn eine Stichprobe erreicht, die leaf-Knoten, wie kann ich wissen, welche Kategorie es gehört? In diesem Beispiel habe ich drei Kategorien zu klassifizieren. Im roten Feld gibt es 91, 212 und 113 Proben sind zufrieden, der Zustand, beziehungsweise. Aber wie kann ich entscheiden, die Kategorie?
Ich weiß, es ist eine Funktion clf.Vorhersage(Beispiel) zu sagen, die Kategorie. Kann ich das von der Grafik???
Vielen Dank.
InformationsquelleAutor der Frage Student Jack | 2014-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
value
Linie in jeder box ist Ihnen zu sagen, wie viele Proben bei, die Knoten lassen sich in jeder Kategorie in Ordnung. Das ist, warum, in jeder box, die zahlen invalue
hinzufügen, bis die angezeigte Zahl insample
. Zum Beispiel, in Ihrem roten Feld 91+212+113=416. Dies bedeutet, dass wenn Sie bis zu diesem Knoten, es wurden 91 Daten-Punkte in der Kategorie 1, 212 in der Kategorie 2, und 113 in der Kategorie 3.Wenn Sie wollten, um das Ergebnis vorherzusagen für einen neuen Datenpunkt, erreicht das Blatt im Entscheidungsbaum, Sie würden voraussagen, Kategorie 2, denn das ist die häufigste Kategorie für Beispiele an diesem Knoten.
InformationsquelleAutor der Antwort BrenBarn
Erste Frage:
Ja, Ihre Logik ist richtig. Der linke Knoten ist Wahr, und den rechten Knoten, ist Falsch. Dies ist counter-intuitiv, true bedeuten in der Regel einen kleineren Wert.
Zweite Frage:
Dieses problem ist am besten gelöst werden, indem die Visualisierung der Struktur als graph mit pydotplus.
Die 'class_names' - Attribut des Baumes.export_graphviz() fügt eine Klasse Erklärung, die der Mehrheit der Klasse der einzelnen Knoten. Code wird ausgeführt, in iPython.
Als für die Bestimmung der Klasse auf das Blatt, Ihrem Beispiel nicht haben Blätter mit einer einzigen Klasse, wie der iris-Daten festgelegt ist. Dies ist üblich und erfordern over-fitting des Modells zu erreichen, so ein Ergebnis. Eine diskrete Verteilung von Klassen ist das beste Ergebnis für viele cross-validierten Modelle.
Genießen den code!
InformationsquelleAutor der Antwort MyopicVisage
Laut dem Buch "Lernen scikit-learn: Machine Learning in Python", Der Entscheidungsbaum stellt eine Reihe von Entscheidungen, basierend auf den Trainingsdaten.
!(http://i.imgur.com/vM9fJLy.png)
Zu klassifizieren, eine Instanz, wir sollten die Frage beantworten, an jedem Knoten. Zum Beispiel Ist sex<=0,5 ist? (reden wir über eine Frau?). Wenn die Antwort ja ist, gehen Sie zum linken Kind-Knoten im Baum; sonst gehen Sie rechts untergeordneten Knoten. Sie halten die Beantwortung von Fragen (Sie war in der Dritten Klasse?, war Sie in der ersten Klasse?, und war Sie unter 13 Jahre alt?), bis Sie ein Blatt. Wenn Sie dort sind, ist die Vorhersage entspricht der Ziel-Klasse, die die meisten Instanzen.
InformationsquelleAutor der Antwort user3784777