Praktyczne pytania dotyczące strojenia losowych lasów


65

Moje pytania dotyczą Losowych Lasów. Koncepcja tego pięknego klasyfikatora jest dla mnie jasna, ale wciąż istnieje wiele praktycznych pytań dotyczących użytkowania. Niestety nie udało mi się znaleźć żadnego praktycznego przewodnika po RF (szukałem czegoś takiego jak „Praktyczny przewodnik po szkoleniach z ograniczonymi maszynami Boltzmana” autorstwa Geoffrey'a Hintona, ale dla Random Forests!

Jak dostroić RF w praktyce?

Czy to prawda, że ​​większa liczba drzew jest zawsze lepsza? Czy istnieje uzasadniony limit (z wyjątkiem oczywiście wydajności) na zwiększenie liczby drzew i jak je oszacować dla danego zestawu danych?

A co z głębokością drzew? Jak wybrać rozsądny? Czy ma sens eksperymentowanie z drzewami różnej długości w jednym lesie i jakie są tego wytyczne?

Czy są jakieś inne parametry, na które warto zwrócić uwagę podczas szkolenia RF? Algos do budowy pojedynczych drzew może być?

Kiedy mówią, że RF są odporne na nadmierne dopasowanie, jak to jest prawda?

Będę wdzięczny za wszelkie odpowiedzi i / lub linki do przewodników lub artykułów, które mogłem przeoczyć podczas wyszukiwania.


Aby dostroić perfoamnce, zobacz także SO: „Jak poprawić wydajność randomForest”
smci

Odpowiedzi:


43

Nie jestem wiarygodną postacią, więc weź pod uwagę te krótkie uwagi dla praktyków:

Im więcej drzew, tym lepiej przy malejących zwrotach. Głębsze drzewa prawie zawsze lepiej wymagają większej liczby drzew o podobnej wydajności.

Powyższe dwa punkty są bezpośrednio wynikiem kompromisu wariancji odchylenia. Głębsze drzewa zmniejszają stronniczość; więcej drzew zmniejsza wariancję.

Najważniejszym hiperparametrem jest liczba funkcji do przetestowania dla każdego podziału. Im więcej bezużytecznych funkcji, tym więcej funkcji powinieneś wypróbować. To wymaga dostrojenia. Możesz w pewien sposób dostroić go za pomocą szacunków OOB, jeśli chcesz tylko znać swoje wyniki na danych treningowych i nie ma partnerstwa (~ powtarzane pomiary). Mimo że jest to najważniejszy parametr, jego optymalna wartość jest zwykle dość zbliżona do pierwotnej wartości domyślnej sugerowanej (sqrt (p) lub (p / 3) do klasyfikacji / regresji).

Dość niedawne badania pokazują, że nawet nie trzeba przeprowadzać wyczerpującego wyszukiwania dzielonego w obrębie funkcji, aby uzyskać dobrą wydajność. Po prostu wypróbuj kilka punktów cięcia dla każdej wybranej funkcji i przejdź dalej. Dzięki temu trening jest jeszcze szybszy. (~ Niezwykle losowe lasy / drzewa).


Kilka innych uwag: w praktyce zwykle potwierdzam zbieżność, porównując prognozy z jednej połowy drzew do drugiej. Jeśli chodzi o nadmierne dopasowanie, jest to raczej funkcja tego, co próbujesz uogólnić. Nie będą się zbyt dobrze układać, jeśli trenujesz na reprezentatywnej próbce, ale tak rzadko to działa.
Shea Parkes,

Czy twoje „głębsze drzewa = lepsze, wszystko inne stałe” jest prawdziwe w przypadku bardzo hałaśliwych danych ze strukturami zależności, które zmieniają się w czasie, w których relacje liniowe są najsolidniejsze, aby nie zmieniać zestawu treningowego i zestawu testowego?
Jase

Widziałem potencjał, aby płytsze drzewa były lepsze, jeśli masz sytuację, w której powinieneś uczyć się tylko płytkich związków, ale naprawdę chciałbym użyć dowodów empirycznych, aby to udowodnić (i nie mam czasu, aby nad tym popracować). Jeśli wierzysz lub masz dowód, że relacje liniowe są najbardziej odporne, zdecydowanie rozważę coś nieopartego na drzewach. Może sieci neuronowe z pomijanymi warstwami?
Shea Parkes

Powiedzmy, że masz zestaw danych z 3 istotnymi funkcjami i 100 funkcjami, które są białym szumem, i 50 punktami danych. Ale nie wiesz, które są białe szumy, a które są istotne z wyprzedzeniem, po prostu wiesz, że twoje dane są tak szumowe, że tak jest. Zdecydowanie wyjątkowo płytkie drzewa o dużych rozmiarach mtrysą lepsze, nie są potrzebne żadne dowody ani dowody empiryczne, aby to zobaczyć.
Jase

22
  • Liczba drzew : im większe, tym lepiej: tak. Jednym ze sposobów oceny i ustalenia, kiedy przestać, jest monitorowanie poziomu błędów podczas budowania lasu (lub innych kryteriów oceny, których można użyć) i wykrywanie, kiedy się zbiega. Możesz to zrobić na samym zestawie do nauki lub, jeśli jest dostępny, na niezależnym zestawie testów. Należy również zauważyć, że liczba węzłów testowych w drzewach jest ograniczona górną liczbą obiektów, więc jeśli masz wiele zmiennych i nie ma zbyt wielu obiektów szkoleniowych, zdecydowanie większy las będzie zalecany w celu zwiększenia szanse na ocenę wszystkich deskryptorów przynajmniej raz w lesie.

  • Głębokość drzewa : istnieje kilka sposobów kontrolowania głębokości drzew (ograniczenie maksymalnej głębokości, ograniczenie liczby węzłów, ograniczenie liczby obiektów wymaganych do podziału, zatrzymanie podziału, jeśli podział nie poprawi dostatecznie dopasowania, ... ). Przez większość czasu zaleca się przycinanie (ograniczanie głębokości) drzew, jeśli mamy do czynienia z hałaśliwymi danymi. Na koniec możesz użyć w pełni rozwiniętych drzew do obliczenia wydajności krótszych drzew, ponieważ są one „podzbiorem” w pełni rozwiniętych drzew.

  • Ile funkcji przetestować w każdym węźle : zweryfikuj krzyżowo swoje doświadczenia z szerokim zakresem wartości (w tym zalecanych), powinieneś uzyskać krzywą wydajności i być w stanie zidentyfikować maksimum wskazujące, jaka jest najlepsza wartość dla tego parametru + Odpowiedź Shea Parkes.

  • Shea Parkes wspomniała o Extra-Trees, tutaj jest oryginalny artykuł szczegółowo opisujący metodę: http://orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.