logo

Losowy klasyfikator lasów wykorzystujący Scikit-learn

W tym artykule zobaczymy, jak zbudować plik Losowy klasyfikator lasów używając Biblioteka Scikit-Learn z Język programowania Python i w tym celu używamy Zbiór danych IRIS co jest dość powszechnym i znanym zbiorem danych.

Losowy las

The Przypadkowy las lub Random Decision Forest to nadzorowany algorytm uczenia maszynowego używany do klasyfikacji, regresji i innych zadań przy użyciu drzew decyzyjnych. Lasy losowe szczególnie dobrze nadają się do obsługi dużych i złożonych zbiorów danych, radzenia sobie z wielowymiarowymi przestrzeniami cech i zapewniania wglądu w znaczenie cech. Zdolność tego algorytmu do utrzymywania wysokiej dokładności predykcyjnej przy jednoczesnym minimalizowaniu nadmiernego dopasowania sprawia, że ​​jest to popularny wybór w różnych dziedzinach, w tym między innymi w finansach, opiece zdrowotnej i analizie obrazu.

Losowy klasyfikator lasów

Klasyfikator losowego lasu tworzy ustawić z drzewa decyzyjne z losowo wybranego podzbioru zbioru uczącego. Jest to zbiór drzew decyzyjnych (DT) z losowo wybranego podzbioru zbioru szkoleniowego, a następnie zbiera głosy z różnych drzew decyzyjnych, aby podjąć decyzję o ostatecznej prognozie.



Losowy klasyfikator lasów

Ponadto klasyfikator lasu losowego może obsługiwać zarówno zadania klasyfikacji, jak i regresji, a jego zdolność do zapewniania ocen ważności cech sprawia, że ​​jest to cenne narzędzie do zrozumienia znaczenia różnych zmiennych w zbiorze danych.

Jak działa losowa klasyfikacja lasów

Klasyfikacja losowego lasu to technika uczenia się zespołowego, zaprojektowana w celu zwiększenia dokładności i solidności zadań klasyfikacyjnych. Algorytm buduje wiele drzew decyzyjnych podczas szkolenia i generuje wyniki klasa taki jest tryb klas klasyfikacyjnych. Każde drzewo decyzyjne w lesie losowym jest konstruowane przy użyciu podzbioru danych uczących i losowego podzbioru cech wprowadzających różnorodność między drzewami, dzięki czemu model jest solidniejszy i mniej podatny na nadmierne dopasowanie.

Algorytm losowego lasu wykorzystuje technikę zwaną pakowaniem (agregacją Bootstrap) do tworzenia tych różnorodnych podzbiorów.

W fazie szkoleniowej każdy drzewo jest tworzony poprzez rekurencyjne partycjonowanie danych w oparciu o funkcje. Przy każdym podział, algorytm wybiera najlepszą cechę z losowego podzbioru, optymalizując pod kątem uzyskania informacji lub zanieczyszczenia Giniego. Proces trwa do momentu spełnienia wcześniej określonego kryterium zatrzymania, takiego jak osiągnięcie maksymalnej głębokości lub posiadanie minimalnej liczby próbek w każdym węźle liścia.

Po wyszkoleniu losowego lasu może on dokonywać przewidywań, wykorzystując głosy każdego drzewa na klasę, a klasa z największą liczbą głosów staje się klasą przewidywaną dla danych wejściowych.

Wybór funkcji w losowych lasach

Wybór funkcji w Random Forests jest nieodłącznie osadzony w konstrukcji indywidualnych drzew decyzyjnych i procesie agregacji.

Na etapie uczenia każde drzewo decyzyjne jest budowane przy użyciu losowego podzbioru funkcji, co przyczynia się do różnorodności drzew. Proces ten, zwany pakowaniem cech, pomaga zapobiegać dominacji jakiejkolwiek pojedynczej cechy i promuje solidniejszy model.

Algorytm ocenia różne podzbiory cech w każdym punkcie podziału, wybierając najlepszą cechę do podziału węzłów w oparciu o kryteria takie jak przyrost informacji lub zanieczyszczenie Giniego. W rezultacie lasy losowe w naturalny sposób obejmują formę selekcji cech, zapewniając zestawowi korzyści ze zróżnicowanego zestawu funkcji w celu zwiększenia uogólnienia i ograniczenia nadmiernego dopasowania.

Losowy klasyfikator lasu w uczeniu maszynowym

Krok 1: Ładowanie zbioru danych

Python3


sumator pełny sumator



# importing required libraries> # importing Scikit-learn library and datasets package> from> sklearn>import> datasets> # Loading the iris plants dataset (classification)> iris>=> datasets.load_iris()>

>

>

Krok 2: Sprawdzenie zawartości zbioru danych i występujących w nim nazw funkcji.

Python3




print>(iris.target_names)>

>

>

Wyjście:

[‘setosa’ ‘versicolor’ ‘virginica’]>

Python3




print>(iris.feature_names)>

>

>

Wyjście:

[‘sepal length (cm)’, ’sepal width (cm)’, ’petal length (cm)’, ’petal width (cm)’]>

Krok 3: Podział testu pociągu

Python3




# dividing the datasets into two parts i.e. training datasets and test datasets> X, y>=> datasets.load_iris( return_X_y>=> True>)> # Splitting arrays or matrices into random train and test subsets> from> sklearn.model_selection>import> train_test_split> # i.e. 70 % training dataset and 30 % test datasets> X_train, X_test, y_train, y_test>=> train_test_split(X, y, test_size>=> 0.30>)>

>

>

Krok 4: Zaimportuj moduł losowego klasyfikatora lasu.

Python3




# importing random forest classifier from assemble module> from> sklearn.ensemble>import> RandomForestClassifier> import> pandas as pd> # creating dataframe of IRIS dataset> data>=> pd.DataFrame({>'sepallength'>: iris.data[:,>0>],>'sepalwidth'>: iris.data[:,>1>],> >'petallength'>: iris.data[:,>2>],>'petalwidth'>: iris.data[:,>3>],> >'species'>: iris.target})>

>

>

Przegląd zbioru danych

Python3




# printing the top 5 datasets in iris dataset> print>(data.head())>

>

>

Wyjście:

 sepallength sepalwidth petallength petalwidth species 0 5.1 3.5 1.4 0.2 0 1 4.9 3.0 1.4 0.2 0 2 4.7 3.2 1.3 0.2 0 3 4.6 3.1 1.5 0.2 0 4 5.0 3.6 1.4 0.2 0>

Krok 5: Trening modelu

przycisk j

Python3




# creating a RF classifier> clf>=> RandomForestClassifier(n_estimators>=> 100>)> # Training the model on the training dataset> # fit function is used to train the model using the training sets as parameters> clf.fit(X_train, y_train)> # performing predictions on the test dataset> y_pred>=> clf.predict(X_test)> # metrics are used to find accuracy or error> from> sklearn>import> metrics> print>()> # using metrics module for accuracy calculation> print>(>'ACCURACY OF THE MODEL:'>, metrics.accuracy_score(y_test, y_pred))>

>

>

Wyjście:

ACCURACY OF THE MODEL: 0.9238095238095239>

Krok 6: Prognozy

Python3




# predicting which type of flower it is.> clf.predict([[>3>,>3>,>2>,>2>]])>

>

>

Wyjście:

array([0])>

Oznacza to, że tak jedwabisty typ kwiatu, ponieważ w naszym zestawie danych mamy trzy gatunki lub klasy: Setosa, Versicolor i Virginia.

Sprawdź ważne funkcje

Teraz dowiemy się również o ważnych funkcjach lub wybierzemy funkcje w zbiorze danych IRIS, korzystając z poniższych wierszy kodu.

Python3




# using the feature importance variable> import> pandas as pd> feature_imp>=> pd.Series(clf.feature_importances_, index>=> iris.feature_names).sort_values(ascending>=> False>)> feature_imp>

>

>

Wyjście:

petal length (cm) 0.440050 petal width (cm) 0.423437 sepal length (cm) 0.103293 sepal width (cm) 0.033220 dtype: float64>

Losowe lasy w Pythonie Scikit-Ucz się biblioteka jest dostarczana z zestawem hiperparametry które pozwalają na precyzyjne dostrojenie zachowania modelu. Zrozumienie i wybór odpowiednich hiperparametrów ma kluczowe znaczenie dla optymalizacji wydajności modelu.

Parametry losowego klasyfikatora lasu

  • n_estymatorów: Liczba drzew w lesie.
    • Więcej drzew zazwyczaj prowadzi do lepszej wydajności, ale kosztem czasu obliczeniowego.
    • Zacznij od wartości 100 i zwiększaj ją w razie potrzeby.
  • maksymalna głębokość: Maksymalna głębokość każdego drzewa.
    • Głębsze drzewa mogą uchwycić bardziej złożone wzorce, ale także stwarzają ryzyko nadmiernego dopasowania.
    • Eksperymentuj z wartościami z zakresu od 5 do 15 i rozważ niższe wartości w przypadku mniejszych zestawów danych.
  • max_features: Liczba obiektów branych pod uwagę przy podziale w każdym węźle.
    • Powszechną wartością jest „sqrt” (pierwiastek kwadratowy z całkowitej liczby cech).
    • Dostosuj w oparciu o rozmiar zbioru danych i znaczenie funkcji.
  • kryterium: Funkcja używana do pomiaru jakości podziału („gini” lub „entropia”).
    • Zanieczyszczenie Gini jest często nieco szybsze, ale oba mają ogólnie podobną wydajność.
  • min_samples_split: Minimalne próbki wymagane do podziału węzła.
    • Wyższe wartości mogą zapobiec nadmiernemu dopasowaniu, ale zbyt wysokie mogą utrudniać złożoność modelu.
    • Zacznij od 2 i dostosuj w razie potrzeby.
  • min_samples_leaf: Minimalne próbki wymagane, aby znajdować się w węźle liścia.
    • Podobny do min_samples_split, ale skupia się na węzłach liści.
    • Zacznij od 1 i dostosuj w razie potrzeby.
  • bootstrap: Określa, czy podczas budowania drzew używać próbkowania metodą bootstrap (prawda czy fałsz).
    • Bootstrapping może poprawić wariancję i uogólnienie modelu, ale może nieznacznie zwiększyć obciążenie.

Zalety losowego klasyfikatora leśnego

  • Zespołowy charakter lasów losowych, łączący wiele drzew, sprawia, że ​​są one mniej podatne na nadmierne dopasowanie w porównaniu z pojedynczymi drzewami decyzyjnymi.
  • Skuteczny w przypadku zbiorów danych z dużą liczbą funkcji i dobrze radzi sobie z nieistotnymi zmiennymi.
  • Losowe lasy mogą zapewnić wgląd w znaczenie funkcji, pomagając w wyborze funkcji i zrozumieniu zbioru danych.

Wady losowego klasyfikatora leśnego

  • Losowe lasy mogą być kosztowne obliczeniowo i mogą wymagać więcej zasobów ze względu na konstrukcję wielu drzew decyzyjnych.
  • Zespołowy charakter utrudnia interpretację uzasadnienia poszczególnych przewidywań w porównaniu z pojedynczym drzewem decyzyjnym.
  • W przypadku niezrównoważonych zbiorów danych losowe lasy mogą być stronnicze w stosunku do klasy większościowej, co wpływa na wydajność predykcyjną klas mniejszości.

Wniosek

Podsumowując, Random Forests wraz ze swoim zestawem drzew decyzyjnych wyróżnia się jako solidne rozwiązanie do różnych zadań uczenia maszynowego, wykazując się swoją wszechstronnością i skutecznością.

Często zadawane pytania (FAQ)

P. Co to jest losowy klasyfikator lasów?

Random Forest Classifier to metoda uczenia się zespołowego wykorzystująca wiele drzew decyzyjnych do zadań klasyfikacyjnych, co zwiększa dokładność. Doskonale radzi sobie ze złożonymi danymi, łagodzeniem nadmiernego dopasowania i zapewnianiem solidnych prognoz z uwzględnieniem ważności funkcji.

P. Czy do regresji można użyć losowego lasu?

Random Forest można używać zarówno do zadań regresji, jak i klasyfikacji, co czyni go wszechstronnym algorytmem uczenia maszynowego.

P. Jaka jest zasada losowego lasu?

Random Forest buduje wiele drzew decyzyjnych przy użyciu losowych podzbiorów zbioru danych i łączy ich wyniki w celu zwiększenia dokładności.

P. Jakie są zastosowania losowego lasu?

Prawdziwe zastosowania obejmują:

  • Diagnoza medyczna: Identyfikacja chorób na podstawie danych pacjenta.
  • Finanse: Scoring kredytowy do oceny ryzyka w procesie kredytowym.