Was sind einige nützliche Richtlinien für GBM-Parameter?

31

Was sind einige nützliche Richtlinien zum Testen von Parametern (z. B. Interaktionstiefe, Kind, Abtastrate usw.) mit GBM?

Nehmen wir an, ich habe 70-100 Features, eine Bevölkerung von 200.000 und ich beabsichtige, die Interaktionstiefe von 3 und 4 zu testen. Natürlich muss ich einige Tests durchführen, um zu sehen, welche Parameterkombination außerhalb der Stichprobe am besten funktioniert. Anregungen zur Vorgehensweise bei diesem Testdesign?

Ram Ahluwalia
quelle

Antworten:

34

Mit dem Caret-Paket können Sie die Parameterauswahl für Ihr Problem optimieren. Die caretTrain-Vignette zeigt, wie Sie die gbm-Parameter mithilfe der 10-fach wiederholten Kreuzvalidierung optimieren können. Weitere Optimierungsansätze stehen zur Verfügung, die alle mithilfe des foreach-Pakets parallel ausgeführt werden können. Verwenden Sie vignette("caretTrain", package="caret")das Dokument zu lesen.

Das Paket unterstützt Tuning shrinkage, n.treesund interaction.depthParameter für das GBM - Modell, wenn Sie Ihre eigenen hinzufügen.

Für die Heuristik ist dies mein erster Ansatz:

shrinkage: So klein wie du Zeit dafür hast (das gbm-Handbuch hat mehr dazu, aber im Allgemeinen kannst du mit einem kleineren Wert nichts falsch machen). Ihr Datensatz ist klein, also würde ich wahrscheinlich mit 1e-3 beginnen

n.trees: Normalerweise züchte ich ein erstes Modell, indem ich immer mehr Bäume hinzufüge, bis gbm.perfich genug habe (normalerweise bis zum 1,2-fachen dieses Wertes), und verwende das dann als Richtlinie für die weitere Analyse.

interaction.depth: du hast schon eine idee dazu. Versuchen Sie es auch mit kleineren Werten. Maximalwert ist Floor (sqrt (NCOL (Daten)).

n.minobsinnode: Ich finde es wirklich wichtig, diese Variable zu stimmen. Sie möchten nicht, dass der Algorithmus zu viele falsche Merkmale findet.

Allan Engelhardt
quelle