Quali sono alcune linee guida utili per i parametri GBM?


31

Quali sono alcune linee guida utili per testare i parametri (ad es. Profondità di interazione, minchild, frequenza di campionamento, ecc.) Usando GBM?

Diciamo che ho 70-100 funzioni, una popolazione di 200.000 e ho intenzione di testare la profondità di interazione di 3 e 4. Chiaramente ho bisogno di fare alcuni test per vedere quale combinazione di parametri regge meglio fuori dal campione. Qualche suggerimento su come affrontare questo progetto di test?

Risposte:


34

Il pacchetto di assistenza può aiutarti a ottimizzare la scelta dei parametri per il tuo problema. La vignetta caretTrain mostra come ottimizzare i parametri gbm usando una convalida incrociata ripetuta 10 volte - sono disponibili altri approcci di ottimizzazione che possono essere eseguiti tutti in parallelo usando il pacchetto foreach. Utilizzare vignette("caretTrain", package="caret")per leggere il documento.

La messa a punto supporti pacchetto shrinkage, n.treese interaction.depthparametri per il modello GBM, anche se è possibile aggiungere il proprio.

Per l'euristica, questo è il mio approccio iniziale:

shrinkage: Piccolo quanto hai tempo per (il manuale di gbm ha di più su questo, ma in generale non puoi mai sbagliare con un valore inferiore). Il tuo set di dati è piccolo, quindi probabilmente inizierei con 1e-3

n.trees: Di solito coltivo un modello iniziale aggiungendo sempre più alberi fino a quando gbm.perfnon ne ho abbastanza (in realtà, in genere a 1,2 volte quel valore) e quindi lo uso come guida per ulteriori analisi.

interaction.depth: hai già un'idea a riguardo. Prova anche valori più piccoli. Il valore massimo è floor (sqrt (NCOL (dati)).

n.minobsinnode: Trovo davvero importante ottimizzare questa variabile. Non lo vuoi così piccolo che l'algoritmo trova troppe funzionalità spurie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.