So wie ich es sehe, ist es eine Reihe von Wenn-Sonst. Warum verwende ich nicht einfach if-else anstelle eines Entscheidungsbaums?
Du liegst absolut richtig. Ein Entscheidungsbaum ist nichts anderes als eine Reihe von if-else-Anweisungen. Es ist jedoch die Art und Weise, wie wir diese Anweisungen als Baum interpretieren, mit dem wir diese Regeln automatisch erstellen können ... Das heißt , wir geben ein Eingabebeispiel ... was ist das bestes Regelwerk, das beschreibt, welchen Wert einer neuen Eingabe ? Mit ID3 und anderen können wir diese Regeln automatisch erstellen. Es geht nicht wirklich um den Baum, der einmal gebaut wurde, sondern darum, wie wir ihn geschaffen haben.( x1, y1) , . . . , ( xN., yN.)yx
Abgesehen davon verwendet man kaum einen Entscheidungsbaum allein. Der Grund dafür ist genau das, was Sie sagen: Es ist ein ziemlich simples Modell, dem es an Ausdruckskraft mangelt. Es hat jedoch einen großen Vorteil gegenüber anderen Modellen: Man kann einen einzelnen Entscheidungsbaum ziemlich schnell berechnen. Das bedeutet, dass wir Algorithmen entwickeln können, die viele, viele Entscheidungsbäume (Boosting, auch bekannt als AdaBoost und GradientBoosting) für große Datenmengen trainieren. Diese Sammlung (normalerweise mehr als 500) dieser simplen Modelle (Wald genannt) kann dann viel kompliziertere Formen ausdrücken.
Sie können es sich auch so vorstellen: Bei einer 'netten' (dh kontinuierlichen), aber komplizierten Funktion könnten wir versuchen, diese Funktion mithilfe von Linien zu approximieren. Wenn die Funktion kompliziert ist (wie oder so), erzeugen wir einen großen Fehler. Wir könnten jedoch Linien so kombinieren, dass wir das Intervall in kleinere Teile und auf jedem versuchen wir zu approximieren (dhf:[a,b]→Rsin(x)[a,b]a=a0<a1<...<aM=bai,ai+1f|(ai,ai+1)fauf dieses Intervall beschränkt) durch eine Linie. Durch grundlegende Mathematik (Analyse) können wir dann die Funktion beliebig schließen (dh einen beliebig kleinen Fehler machen), wenn wir genügend Zeilen nehmen. Daher haben wir aus sehr einfachen ein kompliziertes, aber genaues Modell aufgebaut. Das ist genau die gleiche Idee, die (zum Beispiel) GradientBoosting verwendet: Es erstellt einen Wald aus sehr 'dummen' Einzelentscheidungsbäumen.