encyklopedia.run.place

Random Forest

Random Forest (pol. las losowy) jest jednym z najpopularniejszych algorytmów w dziedzinie uczenia maszynowego. Należy do grupy metod ensemble, które budują silny klasyfikator (lub regresor) poprzez połączenie wielu słabszych modeli – w tym przypadku licznych drzew decyzyjnych.

Historia

Metoda została opracowana w połowie lat 90. XX wieku przez amerykańskiego statystyka Leo Breimana i współpracownika Adele Cutler. Pierwszy artykuł opisujący koncepcję pojawił się w 2001 roku i od tego czasu technika szybko zyskała uznanie wśród praktyków i badaczy.

Podstawowa idea

Random Forest tworzy dużą liczbę drzew decyzyjnych, z których każde jest budowane na podstawie:

  • losowego podzbioru przykładów treningowych (tzw. bootstrap),
  • losowego wyboru podzbioru atrybutów przy podziale w każdym węźle drzewa.

Dzięki temu poszczególne drzewa są od siebie nieco różne, a ich głosowanie (w klasyfikacji) lub średnia (w regresji) daje stabilny i odporny na przeuczenie wynik.

Budowa modelu

  1. Wybór liczby drzew n_estimators (zazwyczaj setki lub tysiące).
  2. Dla każdego drzewa:
    • Losowy dobór przykładów z zestawu treningowego z zastąpieniem (metoda bootstrap).
    • Budowa drzewa decyzyjnego, przy każdym podziale losując podzbiór atrybutów mtry i wybierając najlepszy split tylko spośród nich.
    • Drzewa nie są przycinane (ang. unpruned), co zwiększa ich różnorodność.
  3. Agregacja wyników:
    • Klasyfikacja – większość głosów (majority vote).
    • Regresja – średnia przewidywań.

Kluczowe parametry

ParametrOpisTypowa wartość domyślna
n_estimatorsLiczba drzew w lesie100
max_depthMaksymalna głębokość pojedynczego drzewa (brak limitu = None)Brak
max_featuresLiczba atrybutów brana pod uwagę przy każdym podziale (sqrt dla klasyfikacji, log2 lub liczba całkowita)sqrt(n_features)
min_samples_splitMinimalna liczba próbek wymagana do podziału węzła2
bootstrapCzy używać próbkowania ze zwracaniemtrue
oob_scoreObliczanie błędu na out‑of‑bag próbkachfalse

Właściwości i zalety

  • Odporność na przeuczenie – dzięki losowości i agregacji model jest mniej podatny na dopasowanie do szumu w danych.
  • Możliwość oceny ważności cech – ważność atrybutów może być wyznaczona na podstawie spadku dokładności po losowym przetasowaniu danej cechy.
  • Obsługa danych mieszanych (liczbowych i kategorycznych) bez konieczności skalowania.
  • Wydajność przy dużych zbiorach – drzewa można budować równolegle, co przyspiesza trening.

Ograniczenia

  • Modele mogą być czarne skrzynki – interpretacja pojedynczego drzewa jest łatwa, ale całego lasu trudna.
  • Wymagają więcej pamięci niż pojedyncze drzewo decyzyjne, szczególnie przy dużej liczbie n_estimators.
  • W pewnych sytuacjach (np. bardzo silnie skorelowane cechy) mogą nie przynieść znaczącej przewagi nad innymi metodami.

Przykładowe zastosowania

Random Forest znajduje zastosowanie w wielu dziedzinach, m.in.:

  • Biologia – klasyfikacja gatunków, analiza ekspresji genów (bioinformatyka).
  • Finanse – ocena ryzyka kredytowego, wykrywanie oszustw.
  • Medicina – prognozowanie przebiegu chorób, segmentacja obrazów medycznych.
  • Ekologia – modelowanie siedlisk i prognozowanie zmian klimatycznych.
  • Marketing – segmentacja klientów, prognozowanie popytu.

Implementacje

W najpopularniejszych bibliotekach programistycznych dostępne są gotowe implementacje:

Powiązane pojęcia

Warto zapoznać się także z następującymi artykułami:

Bibliografia

  1. Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5–32.
  2. Hastie, T., Tibshirani, R., & Friedman, J. (2009). Elements of Statistical Learning. (Rozdział 15 – Random Forests).
  3. Cutler, A., et al. (2007). Random Forests for Classification in Ecology. Ecology, 88(11), 2783–2792.