Warum sind Entscheidungsbäume nicht rechenintensiv?

38

In einer Einführung in das statistische Lernen mit Anwendungen in R schreiben die Autoren, dass das Anpassen eines Entscheidungsbaums sehr schnell ist, aber das ergibt für mich keinen Sinn. Der Algorithmus muss jedes Feature durchlaufen und auf jede mögliche Weise partitionieren, um die optimale Aufteilung zu finden. Bei numerischen Features mit Beobachtungen kann dies zu n Partitionen für jedes Feature führen.nn

Verstehe ich falsch, wie die binäre Aufteilung funktioniert? Oder gibt es einen Grund, warum dieser Algorithmus nicht lange dauern würde?

matt_js
quelle
1
+1 für die Frage. Sie können beginnen, dieses Skript auf Seite 15 zu überprüfen. Verwenden Sie anstelle von O ( N 2 ) . O(N)O(N2)
Haitao Du

Antworten:

40

Entscheidungsbaumalgorithmen berechnen nicht alle möglichen Bäume, wenn sie zu einem Baum passen. Wenn sie das taten, würden sie eine NP-schwere Aufgabe lösenProblem. Entscheidungsbaum-Anpassungsalgorithmen treffen in der Regel gierige Entscheidungen im Anpassungsprozess - in jeder Phase optimieren sie das Unterproblem, um eine optimale Aufteilung mit den Daten im gegebenen Knoten zu finden und im Anpassungsprozess voranzukommen. Wenn Sie sich tiefer in den Entscheidungsbaum hineinbewegen, haben Sie eine kleinere Datenmenge, die es zum angegebenen Knoten geschafft hat, so dass Sie die Aufteilungsregel über eine kleinere Teilmenge von Daten optimieren. Alle diese Auswahlmöglichkeiten sind lineare Scans der Daten im angegebenen Knoten. Dies ist nicht kompliziert, kann aber rechnerisch etwas teuer werden, wenn Sie eine große Anzahl von Beobachtungen oder eine große Anzahl von Kovariaten haben, auf die Sie sich aufteilen müssen. Ein Großteil der Arbeit kann jedoch aufgeteilt und zur Bearbeitung an verschiedene Computer gesendet werden. Es gibt also Möglichkeiten, Ihre Computerarchitektur für eine Skalierung auszubauen.

Lucas Roberts
quelle
10
Mit anderen Worten, es ist mehr oder weniger vergleichbar mit einer binären Suche.
Robert Harvey
1
log2(N)
2
Einverstanden, aber das Prinzip gilt immer noch. (Deshalb habe ich die Worte "mehr oder weniger" verwendet)
Robert Harvey
2

Es gibt einige Unterschiede zwischen den Algorithmen CART und C4.5 zum Erstellen von Entscheidungsbäumen. Beispielsweise verwendet CART Gini Impurity, um Features auszuwählen, während C.4.5 Shannon Entropy verwendet. Ich denke nicht, dass die Unterschiede für die Antwort relevant sind, deshalb werde ich nicht zwischen diesen unterscheiden.

Was Entscheidungsbäume schneller macht, als Sie denken, ist:

  1. Wie bereits erwähnt, handelt es sich bei diesen Algorithmen um 1-Lookahead-Algorithmen. Sie führen lokale Optimierungen durch. In jedem Zweig wählen sie die Regel, die die von ihnen verwendete Metrik (Gini oder Entropy) maximiert / minimiert. Dies bedeutet, dass sie möglicherweise Regeln verpassen, bei denen die Verwendung eines logischen Operators zu andeinem besseren Baum führen würde. Dies bedeutet, dass Sie beim Feature-Engineering sehr vorsichtig / klug sein sollten. Nehmen wir zum Beispiel an, Sie versuchen vorherzusagen, wie viel Menschen trinken, und möchten Ingenieursachen wie new_feature = hour > 22 & hour < 4 & (friday_night | saturday_night). Entscheidungsbäume können solche Regeln übersehen oder ihnen eine geringere Bedeutung geben, als sie sollten.
  2. X1={3,1.5,2.5,2,1}X <= 1X <= 1.5X <= 2X1={1,1.5,2,2.5,3}X <= 1X <= 1.5x¯vx¯nx¯+vn+1
  3. Entscheidungsbäume können parallelisiert werden. Jeder Knoten besteht aus zwei unabhängigen Zweigen. Daher haben Sie in jedem Zweig die Möglichkeit, die Baumerstellung zu parallelisieren. Darüber hinaus kann auch die Merkmalsauswahl selbst parallelisiert werden. Das macht Pakete xgboostso schnell. Gradient Boosting erfolgt sequentiell und kann nicht parallelisiert werden, die Bäume selbst jedoch.
Ricardo Cruz
quelle
1

Nur um die Antworten zu bereichern,

Hierarchische achsparallele Entscheidungsbäume sind schnell (CART, C4.5), aber es gibt andere Alternativen wie nicht hierarchische Entscheidungsbäume oder solche, die schräge Partitionen ausführen, die es nicht sind, obwohl sie genauer sein können. Überprüfen Sie die folgenden Referenzen, wenn Sie interessiert sind (Sie sind keine exahustive Auswahl).

Nicht hierarchisch:

Grubinger, T., Zeileis, A. und Pfeiffer, K.-., 2014. Evtree: Evolutionäres Lernen global optimaler Klassifikations- und Regressionsbäume in RJStat.Software 61 (1), 1-29.

Schräge Teilungen:

Murthy, SK, Kasif, S. und Salzberg, S., 1994. Ein System zur Induktion von schrägen Entscheidungsbäumen. J. Artif. Intell. Res. 2 (1), 1-32. http://dx.doi.org/doi:10.1613/jair.63 . Cantú-Paz, E. und Kamath, C., 2003. Induzieren von schrägen Entscheidungsbäumen mit evolutionären Algorithmen. IEEE Trans. Evol. Comput. 7 (1), 54 & ndash; 68. http://dx.doi.org/10.1109/TEVC.2002.806857 . Heath, D., Kasif, S. und Salzberg, S., 1993. Induktion von schrägen Entscheidungsbäumen. J. Artif. Intell. Res. 2 (2), 1002 & ndash; 1007.

Viel Glück!

Rafa_Mas
quelle