Wie finde ich optimale Werte für die Abstimmungsparameter beim Boosten von Bäumen?

9

Mir ist klar, dass das Boosting-Tree-Modell 3 Tuning-Parameter enthält, d. H.

  1. die Anzahl der Bäume (Anzahl der Iterationen)
  2. Schrumpfungsparameter
  3. Anzahl der Teilungen (Größe der einzelnen Bäume)

Meine Frage ist: Wie soll ich für jeden der Abstimmungsparameter den optimalen Wert finden? Und welche Methode?

Beachten Sie Folgendes: Der Parameter für die Schrumpfung und der Parameter für die Anzahl der Bäume arbeiten zusammen, dh ein kleinerer Wert für den Parameter für die Schrumpfung führt zu einem höheren Wert für die Anzahl der Bäume. Und das müssen wir auch berücksichtigen.

Ich interessiere mich besonders für die Methode, um den optimalen Wert für die Anzahl der Teilungen zu finden. Sollte es auf Kreuzvalidierung oder Domänenwissen über das dahinter stehende Modell basieren?

Und wie werden diese Dinge im gbmPaket in R ausgeführt?

mein Name ist Jeff
quelle

Antworten:

6

Das Caret- Paket in R ist darauf zugeschnitten.

Die Zugfunktion verwendet ein Raster von Parameterwerten und bewertet die Leistung anhand verschiedener Varianten der Kreuzvalidierung oder des Bootstraps. Der Autor des Pakets hat ein Buch mit dem Titel Angewandte Vorhersagemodellierung geschrieben , das dringend empfohlen wird. Im gesamten Buch werden 5 Wiederholungen der 10-fachen Kreuzvalidierung verwendet.

Bei der Auswahl der Baumtiefe würde ich zunächst das Fachwissen über das Problem einholen, dh wenn Sie keine Wechselwirkungen erwarten - beschränken Sie die Tiefe auf 1 oder entscheiden Sie sich für ein flexibles parametrisches Modell (das viel einfacher zu verstehen und zu interpretieren ist). Trotzdem stelle ich oft fest, dass ich die Baumtiefe einstelle, da das Fachwissen oft sehr begrenzt ist.

Ich denke, das gbm-Paket stimmt die Anzahl der Bäume auf feste Werte der Baumtiefe und -schrumpfung ab.

ErikL
quelle
Enthält das Buch auch R-Code?
user1769197
Ich meine ein Beispiel, das R-Code enthält, damit wir verstehen, wie die Modelle rechnerisch implementiert und auf einen Datensatz angewendet werden
user1769197
1
Ja tut es. Weitere Informationen finden Sie auf der Webseite des Buches Appliedpredictivemodeling.com .
ErikL
1

Es gibt zwei gute Quellen für die verstärkten Regressionsbäume und das GBM-Paket. Zur Erklärung der BRT und zur Optimierung der Anzahl der Bäume ( nt), der Lernrate ( lr) und der Baumkomplexität ( tc) siehe Ein Arbeitsleitfaden zur Steigerung der Regressionsbäume. Obwohl er sich auf die Ökologie konzentriert, werden Sie meiner Meinung nach keine bessere Einführung in die BRT finden .

Informationen zur Implementierung von BRT im gbm-Paket finden Sie unter Boosted Regression Trees zur ökologischen Modellierung

Kurz gesagt, eine Faustregel lautet, eine Lernrate auszuwählen, mit der das BRT-Modell mindestens 1000 Bäume aufnehmen kann. Daher benötigen Sie wahrscheinlich eine niedrige Lernrate, möglicherweise 0,001, um dies zu erreichen. Dies hängt jedoch von der Größe Ihrer Daten ab (siehe Abb. 2 und 3 in der Arbeitsanleitung zu BRT. Ich denke, ein möglicher Weg wäre, verschiedene Modelle in BRT entsprechend Ihrer Datengröße einzurichten, zum Beispiel verschiedene lr (0,1, 0,01, 0,001), tc (1, 3, 5, 7, 9, 20) mit verschiedenen Beuteln zu kombinieren .fraktionen (0,5, 0,7, 0,9) und wählen Sie die beste nach der niedrigsten Abweichung oder der höchsten ROC-Punktzahl. Vielleicht hat es geholfen.

user3624251
quelle
1
Als Referenz BRT_MODEL$self.statistics$correlation[[1]]dient die Korrelation von Tests mit Trainingsdaten, was eine gute Testmetrik ist.
dez93_2000
klingt für mich nach einer statistischen Versuchsplanung. : P
EngrStudent