Rozmiar drzewa w wzmocnieniu gradientowym

10

Zwiększanie drzewa gradientowego, jak zaproponował Friedman, używa drzew decyzyjnych z Jwęzłami końcowymi (= liśćmi) jako podstawowych uczniów. Istnieje wiele sposobów, aby wyhodować drzewo z dokładnie Jwęzłami, na przykład można je wyhodować w pierwszej kolejności w głębokości lub w pierwszej kolejności, ...

Czy istnieje ustalony sposób uprawy drzew z dokładnie Jkońcowymi węzłami w celu wzmocnienia drzewa gradientowego?

Zbadałem procedurę uprawy drzewa gbmpakietu R i wydaje się, że rozszerza ona drzewo w pierwszej kolejności i używa heurystyki opartej na poprawie błędów, aby wybrać, czy rozwinąć lewy czy prawy węzeł potomny - czy to prawda?

Peter Prettenhofer
źródło
2
gbm używa CART do budowy drzew, dobrze znanego algorytmu z lat 80. Heurystyka nazywa się nieczystością gini, dość standardowym wyborem regresji z kwadratową stratą.
2
Zanieczyszczenie Afaik gini służy do klasyfikacji problemów. Niemniej jednak pytanie dotyczy wielkości drzew.
Peter Prettenhofer,
Dodaje gałąź jednocześnie. Byłbym zaskoczony, gdyby każdy następny podział był najlepszym z pozostałych podzielonych kandydatów w drzewie, nie tylko gałęzi. Są chwile, w których dane nie obsługują dokładnej liczby - na przykład gdy dane są zbyt małe, aby „J”.
EngrStudent,
Jak powiedział @EngrStudent, nie można wymusić dokładnej liczby węzłów. Masz jednak pewną kontrolę nad górną granicą liczby węzłów. gbmma parametr n.minobsinnodekontrolujący minimalną liczbę obiektów na węzeł. Oczywiście liczba węzłów jest mniejsza lub równa NumberOfPoints / n.minobsinnode
G5W
Gdybym szukał liści „J”, to w pełni zbudowałbym drzewo, a następnie, zakładając, że jest więcej niż J liści, przyciąłbym do J. To dałoby mi węzły „J”, a byłyby najbardziej podziały informacyjne - byłby to najzdrowszy model koszyka. Jeśli nie ma wystarczającej liczby podziałów, mógłbym po prostu losowo podzielić domeny, aby uzyskać „J”, ale byłyby one fałszywe i nieco trywialne. Mogę spojrzeć na rozkład wartości w liściu i użyć aproksymacji opartej na CDF, ale to odbiegałoby od modelu średniej na liść.
EngrStudent

Odpowiedzi:

2

Rozwiązanie w R gbmnie jest typowe.

Inne pakiety, takie jak scikit-learnlub LightGBMużywają tzw. (W scikit-learn) BestFirstTreeBuilder, gdy liczba liści jest ograniczona. Obsługuje kolejkę priorytetową wszystkich liści i przy każdej iteracji dzieli liść, który przynosi najlepszy spadek zanieczyszczenia. Tak więc nie jest to ani pierwszy, ani pierwszy, ale trzeci algorytm oparty na obliczeniach w liściach.

jaja

David Dale
źródło