Jakie są przydatne wskazówki dotyczące parametrów GBM?

31

Jakie są przydatne wskazówki dotyczące testowania parametrów (tj. Głębokość interakcji, dziecko, częstotliwość próbkowania itp.) Za pomocą GBM?

Powiedzmy, że mam 70-100 funkcji, populację 200 000 i zamierzam przetestować głębokość interakcji 3 i 4. Oczywiście muszę przeprowadzić testy, aby zobaczyć, która kombinacja parametrów najlepiej trzyma się poza próbą. Wszelkie sugestie dotyczące podejścia do tego projektu testu?

Ram Ahluwalia
źródło

Odpowiedzi:

34

Pakiet Caret może pomóc zoptymalizować wybór parametrów dla twojego problemu. Winieta caretTrain pokazuje, jak dostroić parametry GBM za pomocą 10-krotnego powtarzanego sprawdzania poprawności krzyżowej - dostępne są inne metody optymalizacji, które można uruchomić równolegle za pomocą pakietu Foreach. Użyj, vignette("caretTrain", package="caret")aby przeczytać dokument.

Strojenie podpory pakietów shrinkage, n.treesoraz interaction.depthparametry modelu GBM, choć można dodać własne.

W przypadku heurystyki jest to moje wstępne podejście:

shrinkage: Tak mały, jak masz na to czas (instrukcja gbm ma więcej na ten temat, ale ogólnie rzecz biorąc, nigdy nie możesz się pomylić z mniejszą wartością). Twój zestaw danych jest mały, więc prawdopodobnie zacznę od 1e-3

n.trees: Zazwyczaj opracowuję model początkowy, dodając coraz więcej drzew, dopóki nie gbm.perfstwierdzę, że mam ich wystarczająco dużo (a właściwie do 1,2-krotności tej wartości), a następnie wykorzystuję to jako przewodnik do dalszej analizy.

interaction.depth: już o tym wiesz. Wypróbuj również mniejsze wartości. Maksymalna wartość to floor (sqrt (NCOL (dane)).

n.minobsinnode: Uważam, że bardzo ważne jest dostrojenie tej zmiennej. Nie chcesz, aby był tak mały, aby algorytm znalazł zbyt wiele fałszywych funkcji.

Allan Engelhardt
źródło