Kiedy unikać Losowego lasu?

25

Lasy losowe są dobrze znane z wykonywania dość różnorodnych zadań i określane są mianem rzemieślników metod uczenia się . Czy są jakieś problemy lub szczególne warunki, w których należy unikać korzystania z losowego lasu?

tSchema
źródło
8
Cześć. „PLS jest skórą…”, „Bootstrap jest skórą…”, „Losowy las jest skórą…” <- Radzę podejrzewać takie roszczenia. To był tylko komentarz :)
Stéphane Laurent

Odpowiedzi:

24

Myśląc o konkretnym języku cytatu, galanteria skórzana to narzędzie wielofunkcyjne: pojedynczy element sprzętowy z dużą ilością małych gadżetów. To szczypce, nóż, śrubokręt i wiele więcej! Leatherman to jeden przedmiot, który można przypiąć do spodni, a nie mieć pod ręką osobno każdego z tych narzędzi osobno. Jest to wygodne , ale kompromis polega na tym, że każde z narzędzi składowych nie jest najlepsze w swojej pracy. Otwieracz do puszek jest trudny w użyciu, końcówki śrubokręta mają zwykle niewłaściwy rozmiar, a nóż może osiągnąć niewiele więcej niż tylko drobne skurcze. Jeśli wykonanie któregokolwiek z tych zadań ma krytyczne znaczenie, lepiej byłoby skorzystać ze specjalistycznego narzędzia: rzeczywistego noża, rzeczywistego śrubokręta lub rzeczywistej pary szczypiec.

Losowy las można myśleć na takich samych zasadach. Losowy las daje dobre wyniki w różnych zestawach danych i nie jest niezwykle wrażliwy na parametry strojenia. Ale to nie jest idealne. Im więcej wiesz o problemie, tym łatwiej jest zbudować wyspecjalizowane modele dostosowane do konkretnego problemu.

Istnieje kilka oczywistych przypadków, w których losowe lasy będą walczyć:

  • Rzadkość - gdy dane są bardzo rzadkie, bardzo prawdopodobne jest, że w przypadku niektórych węzłów próbka startująca i losowy podzbiór funkcji będą współpracować w celu utworzenia niezmiennej przestrzeni cech. Nie ma produktywnego podziału, więc jest mało prawdopodobne, aby dzieci tego węzła były w ogóle pomocne. XGBoost może zrobić lepiej w tym kontekście.

  • Dane nie są wyrównane względem osi - Załóżmy, że w obszarze dwóch elementów, i , istnieje diagonalna granica decyzyjna . Nawet jeśli jest to jedyny odpowiedni wymiar twoich danych, potrzeba zwykłego losowego modelu lasu wielu podziałów, aby opisać tę przekątną granicę. Wynika to z tego, że każdy podział jest zorientowany prostopadle do osi lub . (Powinno to być intuicyjne, ponieważ zwykły losowy model lasu tworzy podziały w postacix1x2)x1x2)x1>4.) Las rotacyjny, który wykonuje rzut PCA na podzbiorze elementów wybranych dla każdego podziału, może być wykorzystany do przezwyciężenia tego: rzuty na podstawie ortogonalnej zasadniczo zmniejszą wpływ właściwości wyrównania osi, ponieważ podziały nie będzie już wyrównany do osi w pierwotnej podstawie.

    Ten obraz stanowi kolejny przykład wpływu podziałów wyrównanych do osi na losowe decyzje lasu. Granicą decyzyjną jest koło u początku, ale należy pamiętać, że ten konkretny losowy model lasu rysuje ramkę przybliżającą koło. Istnieje wiele rzeczy, które można zrobić, aby poprawić tę granicę; najprostsze obejmują zebranie większej ilości danych i zbudowanie większej liczby drzew. wprowadź opis zdjęcia tutaj

  • Losowe lasy w zasadzie działają tylko na danych tabelarycznych,tzn. nie ma silnej, jakościowo istotnej zależności między cechami w tym sensie, że dane są obrazem, albo obserwacje są połączone w sieć na wykresie. Struktury te zazwyczaj nie są dobrze przybliżone przez wiele prostokątnych przegród. Jeśli Twoje dane żyją w szeregu czasowym, są serią obrazów, żyją na wykresie lub mają inną oczywistą strukturę, losowy las będzie miał trudności z rozpoznaniem tego. Nie mam wątpliwości, że badacze opracowali różne metody próby dostosowania się do tych sytuacji, ale losowy las waniliowy niekoniecznie musi wychwycić te struktury w pomocny sposób. Dobrą wiadomością jest to, że zazwyczaj wiesz, kiedy tak jest, tj. Wiesz, że masz obrazy, szeregi czasowe lub wykres do pracy,
Sycorax mówi Przywróć Monikę
źródło
Myślę, że losowe lasy waniliowe mogą rozpoznawać nieprostokątne przegrody. Możemy na przykład mieć cechy kwadratowe i rozpoznawać granice, takie jak x ^ 2 <c.
Aniruddha Acharya
2
@AniruddhaAcharya Powiedziałem: „walka”, nie porażka. Moja odpowiedź tutaj wyjaśnia, że ​​cechy kwadratowe nie są problemem nie do pokonania. Ale przekątne, kwadratyki lub inne nierównoległe typy podziałów będą wymagały, aby drzewa rozdzielały te elementy raz po raz w prostokątny sposób w celu przybliżenia przekątnej / krzywej. Możesz zobaczyć ten efekt w fabule do tego postu: spójrz na ostre rogi. RF wykorzystuje kwadrat do przybliżenia okręgu.
Sycorax mówi Przywróć Monikę
Miałem na myśli, że podawanie funkcji kwadratowych (i innych wyższych rzędów) do RF zmniejszyłoby problem w modelowaniu partycji nie prostokątnych. Na przykład RF mogą używać 2 kwadratów do przybliżania koła zamiast kwadratu. Chociaż zgadzam się, że nie jest to tak łatwe, jak modele uwzględniające interakcje między zmiennymi, uważam, że nie jest to takie trudne, ponieważ RF nie są ograniczone do używania progów dla surowych funkcji.
Aniruddha Acharya
1
@AniruddhaAcharya Jeśli wiesz, że warunki kwadratowe są właściwym modelem, nie potrzebujesz losowego lasu: po prostu dodaj warunki kwadratowe do modelu liniowego. RF to dobry sposób na przybliżenie dowolnych funkcji, zwłaszcza gdy mają one funkcje decyzyjne wyrównane do osi.
Sycorax mówi: Przywróć Monikę
Dlaczego inżynieria funkcji (warunki kwadratowe) sugerowana przez @AniruddhaAcharya nie jest użytecznym krokiem w połączeniu z RF? Tak, te funkcje można dodać do modelu liniowego: ten ostatni nie zapewnia jednak zachowania połączenia wielu wyników, które są indywidualnie optymalizowane dla różnych podzbiorów funkcji.
javadba
22

Ostre rogi. Dokładność.

Używają metod dyfuzyjnych. Dobrze pasują do brył. Nie pasują do skomplikowanych i bardzo szczegółowych rzeczy, gdy próbka jest mała. Wyobrażam sobie, że nie radzą sobie dobrze na wielowymiarowych szeregach czasowych - gdy coś tutaj zależy od tej jednej rzeczy tam na odległość.

Lasy ze wzmocnieniem gradientowym mogą pasować lub nadmiernie pasować, ale mogą uzyskać znacznie niższy błąd dla tych samych danych.

Leathermen ” nie istnieje. Nie ma „srebrnych kul”. Istnieją skrzynki na narzędzia. Poznaj swoje narzędzia i zadbaj o nie, aby mogli się tobą zająć. Uważaj na „kiedy jesteś młotkiem, wtedy każdy problem wygląda jak gwóźdź”, zwłaszcza gdy nie masz gęstej biblioteki w zestawie narzędzi.

Dopóki nie znasz dobrze problemu, łatwo sobie wyobrazić, że coś może go rozwiązać lub twoje ulubione narzędzie może go rozwiązać. Mądrość sugeruje głębsze zrozumienie problemu i bardzo dobrą znajomość narzędzi.

Dodano: jeśli masz wystarczająco dużo zasobów obliczeniowych lub marginesu czasu, aby użyć czegoś innego. RF jest nie tylko szybki w trenowaniu, ale także szybki w realizacji. Bardzo głęboko wzmocniona struktura to mniej. Musisz mieć narzut, aby to wesprzeć.

EngrStudent - Przywróć Monikę
źródło
2
Być tutaj adwokatem diabła: Nic nie „ pasuje do skomplikowanych i bardzo szczegółowych rzeczy, gdy próbka jest niska
mówi usεr11852 Przywróć Monic
5

Po raz pierwszy faktycznie odpowiadam na pytanie, więc nie przypominaj mi o tym ... ale myślę, że mogę odpowiedzieć na twoje pytanie:

Jeśli rzeczywiście interesuje Cię tylko wydajność modelu, a nie coś takiego jak interpretacja, losowy las jest często bardzo dobrym algorytmem uczenia się, ale działa nieco gorzej w następujących przypadkach:

1.) Gdy wymiarowość (liczba cech) jest bardzo wysoka w stosunku do liczby próbek treningowych, w takich przypadkach lepsza byłaby regaryzowana regresja liniowa lub SVM.

2.) W przypadku, gdy w danych występują reprezentacje / struktury splotowe wyższego rzędu, jak np. W problemach z widzeniem komputerowym. W tych przypadkach wizji komputerowej splotowa sieć neuronowa przewyższy losowy las (ogólnie, jeśli istnieje wiedza, którą można włączyć do uczenia się, co jest lepszą rzeczą).

Mówi się, że losowy las jest bardzo dobrym punktem wyjścia. Jedna z osób, którą podziwiam za umiejętności uczenia maszynowego, zawsze zaczyna się od nauki losowego lasu i znormalizowanego liniowego regresora.

Jeśli jednak chcesz uzyskać najlepszą możliwą wydajność, uważam, że w dzisiejszych czasach sieci neuronowe, zwane też. Głębokie uczenie się wygląda jak bardzo atrakcyjne podejście. Coraz więcej zwycięzców w witrynach z danymi, takich jak Kaggle, korzysta z modeli Deep Learning do zawodów. Inną zaletą sieci neuronowych jest to, że mogą one obsługiwać bardzo dużą liczbę próbek (> 10 ^ 6 można je trenować przy użyciu opadania gradientu stochastycznego, zasilając jednocześnie fragmenty danych). Osobiście uważam, że jest to bardzo atrakcyjny profesjonalista do głębokiego uczenia się.

MJW
źródło
2
Dobra odpowiedź, ale twój ostatni punkt nie jest poprawny: szkolenie mini-partii można wdrożyć dla wszystkich popularnych algorytmów uczenia maszynowego, patrz na przykład h2o .
jubo
Okej, ciekawe, nie wiedziałem o tym. Czy mówisz, że używając tych metod można wytrenować drzewo (decyzyjne) przy użyciu uczenia mini-partii / SGD, a tym samym zbudować jedno drzewo w oparciu o podział większości danych treningowych (powiedzmy 65%)?
MJW,
1
Myślę, że losowy las nadal powinien być dobry, gdy liczba funkcji jest wysoka - po prostu nie używaj wielu funkcji naraz podczas budowania pojedynczego drzewa, a na końcu będziesz mieć las niezależnych klasyfikatorów, którzy wspólnie powinni ( miejmy nadzieję) dobrze.
Alexey Grigorev,
O ile rozumiem, h2o używa paradygmatu zmniejszania mapy do treningu minibatchów. Pojedyncze drzewa (CART) nie są zaimplementowane jako takie w H2O (ale przypuszczam, że niecięte drzewo jest szczególnym przypadkiem losowego lasu z tylko jednym drzewem i maksymalnym wyborem predyktorów?).
jubo
2
Jakie jest uzasadnienie dla (1)? Zgłaszasz roszczenie, ale nie podajesz żadnego dodatkowego argumentu.
Sycorax mówi Przywróć Monikę
0

Po pierwsze, las losowy nie może być stosowany do następujących typów danych:

  • zdjęcia
  • audio
  • tekst (po wstępnym przetwarzaniu dane będą rzadkie, a RF nie działa dobrze z rzadkimi danymi)

W przypadku tabelarycznego typu danych zawsze dobrze jest sprawdzić Losowy las, ponieważ:

  • wymaga mniej przygotowania danych i przetwarzania wstępnego niż sieci neuronowe lub SVM. Na przykład nie musisz wykonywać skalowania funkcji.
  • W przypadku treningu w Losowym lesie możesz użyć domyślnych parametrów i ustawić liczbę drzew ( im więcej drzew w RF, tym lepiej ). Gdy porównasz Random Forest z sieciami neuronowymi , szkolenie jest bardzo łatwe (nie musisz definiować architektury ani stroić algorytmu szkolenia). Random Forest jest łatwiejszy do trenowania niż sieci neuronowe.
pplonski
źródło