Wszystko, co musisz wiedzieć o optymalizacji algorytmu losowego lasu

Opublikowany: 2020-12-22

Załóżmy, że utworzyłeś program uczenia maszynowego i do uczenia go używasz modelu lasu losowego. Jednak dane wyjściowe/wyniki programu nie są tak dokładne, jak chcesz. Więc co robisz?

Istnieją trzy metody ulepszania modelu uczenia maszynowego w celu poprawy wyników programu uczenia maszynowego:

  • Popraw jakość danych wejściowych i inżynierię funkcji
  • Strojenie hiperparametrów algorytmu
  • Korzystanie z różnych algorytmów

Ale co, jeśli wykorzystałeś już wszystkie dostępne źródła danych? Następnym logicznym krokiem jest dostrajanie hiperparametrów. W związku z tym, jeśli utworzyłeś program uczenia maszynowego z losowym modelem lasu, użyłeś najlepszego źródła danych i chcesz jeszcze bardziej ulepszyć dane wyjściowe programu, powinieneś wybrać opcję dostrajania hiperparametrów losowego lasu .

Zanim zagłębimy się w dostrajanie hiperparametrów losowego lasu , przyjrzyjmy się najpierw ogólnie hiperparametrom i dostrajaniu hiperparametrów.

Spis treści

Czym są hiperparametry?

W kontekście uczenia maszynowego hiperparametry to parametry, których wartość służy do sterowania procesem uczenia modelu. Są one zewnętrzne w stosunku do modelu, a ich wartości nie można oszacować na podstawie danych.

W przypadku dostrajania hiperparametrów losowego lasu hiperparametry obejmują liczbę drzew decyzyjnych i liczbę funkcji uwzględnianych przez każde drzewo podczas dzielenia węzłów.

Co to jest dostrajanie hiperparametrów?

Dostrajanie hiperparametrów to proces wyszukiwania idealnego zestawu hiperparametrów dla problemu uczenia maszynowego.

Teraz, gdy widzieliśmy, czym są hiperparametry i dostrajanie hiperparametrów, przyjrzyjmy się hiperparametrom w losowym lesie i dostrajaniu hiperparametrów w losowym lesie .

Przeczytaj: Pytania do rozmowy kwalifikacyjnej na temat drzewa decyzyjnego

Co to jest dostrajanie hiperparametrów losowego lasu?

Aby zrozumieć, czym jest dostrajanie hiperparametrów losowego lasu , przyjrzymy się pięciu hiperparametrom i dostrajaniu hiperparametrów dla każdego z nich.

Hiperparametr 1: max_depth

max_depth to najdłuższa ścieżka między węzłem głównym a węzłem liścia w drzewie w algorytmie losowego lasu. Dostrajając ten hiperparametr, możemy ograniczyć głębokość, do jakiej drzewo ma rosnąć w algorytmie losowego lasu. Ten hiperparametr zmniejsza wzrost drzewa decyzyjnego, pracując na poziomie makro.

Hiperparametr 2: max_terminal_nodes

Ten hiperparametr ogranicza wzrost drzewa decyzyjnego w losowym lesie poprzez ustawienie warunku podziału węzłów w drzewie. Podział węzłów zostanie zatrzymany, a wzrost drzewa ustanie, jeśli po podziale będzie więcej węzłów końcowych niż określona liczba.

Załóżmy na przykład, że mamy jeden węzeł w drzewie, a maksymalna liczba węzłów końcowych wynosi cztery. Ponieważ istnieje tylko jeden węzeł, na początek węzeł zostanie podzielony, a drzewo będzie dalej rosło. Gdy podział osiągnie maksymalny limit wynoszący cztery, drzewo decyzyjne nie będzie dalej rosło, ponieważ podział zostanie zakończony. Korzystanie z funkcji dostrajania hiperparametrów max_terminal_nodes pomaga zapobiegać nadmiernemu dopasowaniu. Jeśli jednak wartość tuningu jest bardzo mała, las prawdopodobnie nie będzie pasował.

Powiązane Przeczytaj: Klasyfikacja drzewa decyzyjnego

Hiperparametr 3: n_estymatorów

Analityk danych zawsze staje przed dylematem, ile drzew decyzyjnych należy wziąć pod uwagę. Można powiedzieć, że wybieranie większej liczby drzew jest drogą do zrobienia. Może to prawda, ale zwiększa też złożoność czasową algorytmu losowego lasu.

Dzięki dostrajaniu hiperparametrów n_estimators możemy decydować o liczbie drzew w losowym modelu lasu. Domyślna wartość parametru n_estimators to dziesięć. Oznacza to, że domyślnie tworzonych jest dziesięć różnych drzew decyzyjnych. Dostrajając ten hiperparametr, możemy zmienić liczbę drzew, które zostaną zbudowane.

Hiperparametr 4: max_features

Dzięki temu dostrajaniu hiperparametrów możemy zdecydować, ile funkcji ma być zapewnione każdemu drzewu w lesie. Ogólnie rzecz biorąc, jeśli wartość maksymalnej liczby funkcji jest ustawiona na sześć, ogólna wydajność modelu jest najwyższa. Można jednak również ustawić domyślną wartość parametru max features, która jest pierwiastkiem kwadratowym liczby funkcji obecnych w zestawie danych.

Hiperparametr 5: min_samples_split

To dostrajanie hiperparametrów decyduje o minimalnej liczbie próbek wymaganych do podziału wewnętrznego węzła liścia. Domyślnie wartość tego parametru to dwa. Oznacza to, że aby podzielić węzeł wewnętrzny, muszą być obecne co najmniej dwie próbki.

Jak wykonać dostrajanie hiperparametrów lasu losowego?

Dostrajanie hiperparametrów losowego lasu należy przeprowadzić ręcznie, wywołując funkcję tworzącą model. Dostrajanie losowych hiperparametrów lasu jest bardziej podejściem eksperymentalnym niż teoretycznym. Dlatego może zaistnieć potrzeba wypróbowania różnych kombinacji dostrajania hiperparametrów i oceny wydajności każdego z nich, zanim zdecydujesz się na jedno.

Załóżmy na przykład, że musisz dostroić liczbę estymatorów i minimalny podział drzewa w algorytmie losowego lasu. Dlatego możesz użyć następującego polecenia, aby wykonać dostrajanie hiperparametrów:

las = RandomForestClassifier(losowy_stan = 1, n_estymatorów = 20, min_samples_split = 2)

W powyższym przykładzie liczba estymatorów została zmieniona z ich domyślnej wartości z dziesięciu na dwadzieścia. Zatem zamiast dziesięciu drzew decyzyjnych algorytm utworzy dwadzieścia drzew w losowym lesie. Podobnie wewnętrzny węzeł liścia zostanie podzielony tylko wtedy, gdy ma co najmniej dwie próbki.

Wniosek

Mamy nadzieję, że ten blog pomógł Ci zrozumieć dostrajanie hiperparametrów losowego lasu . Istnieje wiele innych hiperparametrów, które można dostroić, aby poprawić wydajność programu uczenia maszynowego. W większości przypadków dostrajanie hiperparametrów wystarczy, aby poprawić wydajność programu uczenia maszynowego.

Jednak w rzadkich przypadkach nawet losowe dostrajanie hiperparametrów lasu może nie być pomocne. W takich sytuacjach będziesz musiał rozważyć inny algorytm uczenia maszynowego, taki jak regresja liniowa lub logistyczna, KNN lub dowolny inny algorytm, który uznasz za odpowiedni.

Jeśli chcesz dowiedzieć się więcej o drzewach decyzyjnych, uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznych szkoleń, ponad 30 studiów przypadków i zadań , status absolwentów IIIT-B, ponad 5 praktycznych praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.

Dlaczego warto korzystać z algorytmu losowego lasu?

Algorytm lasu losowego jest jednym z najczęściej używanych modeli, jeśli chodzi o kategorię algorytmów uczenia nadzorowanego w uczeniu maszynowym. Algorytm lasu losowego może rozwiązywać zarówno problemy z klasyfikacją, jak i regresją w uczeniu maszynowym. Koncentruje się na uczeniu zespołowym, koncepcji, która łączy kilka klasyfikatorów w celu rozwiązania skomplikowanego problemu, tak aby poprawić ogólne funkcjonowanie i wynik modelu. Algorytm losowego lasu jest popularny, ponieważ jego szkolenie zajmuje znacznie mniej czasu w porównaniu z wieloma innymi algorytmami. Może również oferować bardzo dokładne prognozy dla ogromnych zestawów danych, nawet jeśli brakuje niektórych części danych.

Jaka jest różnica między drzewem decyzyjnym a losowym lasem?

Algorytm drzewa decyzyjnego to technika nadzorowanego uczenia się w uczeniu maszynowym, która modeluje pojedyncze drzewo stanowiące serię kolejnych decyzji, które prowadzą do określonego wyniku. Drzewo decyzyjne jest łatwe do interpretacji i zrozumienia. Często jednak nie wystarcza do rozwiązywania bardziej złożonych problemów. W tym miejscu algorytm losowego lasu staje się przydatny – wykorzystuje kilka drzew decyzyjnych do rozwiązywania określonych problemów. Innymi słowy, algorytm losowego lasu losowo generuje wiele drzew decyzyjnych i łączy ich wyniki, aby uzyskać ostateczny wynik. Chociaż losowy las jest trudniejszy do zinterpretowania niż drzewo decyzyjne, daje dokładne wyniki, gdy zaangażowane są ogromne ilości danych.

Jakie są zalety korzystania z algorytmu losowego lasu?

Największą zaletą algorytmu losowego lasu jest jego elastyczność. Możesz użyć tej techniki zarówno do zadań klasyfikacji, jak i regresji. Oprócz swojej wszechstronności algorytm ten jest również niezwykle poręczny – domyślne parametry, których używa, są wystarczająco wydajne, aby zapewnić wysoką dokładność predykcji. Co więcej, modele klasyfikacji uczenia maszynowego są dobrze znane z problemów, takich jak nadmierne dopasowanie. Jeśli w algorytmie lasu losowego jest wystarczająca liczba drzew, problemy związane z przesadą klasyfikacji można łatwo przezwyciężyć.