Las losowy (ang. Random Forest) to algorytm uczenia maszynowego, który buduje wiele drzew decyzyjnych i łączy ich głosy w jedną predykcję. Zamiast polegać na jednym drzewie — które łatwo „uczy się na pamięć” danych treningowych — bierzesz ich setki, każde nieco inne, i pytasz o zdanie cały zespół. Przy klasyfikacji wygrywa odpowiedź większości, przy regresji liczy się średnia. Dzięki temu model jest stabilniejszy i mniej podatny na overfitting niż pojedyncze drzewo.
Jak to działa
Sekret tkwi w dwóch porcjach losowości. Po pierwsze bagging (bootstrap aggregating): każde drzewo trenuje się na innej, losowo wylosowanej ze zwracaniem próbce danych. Po drugie, przy każdym podziale węzła drzewo rozważa tylko losowy podzbiór cech, a nie wszystkie naraz. Efekt: drzewa są od siebie „odklejone” i nie powielają tych samych błędów. Pojedyncze drzewo może się mylić, ale uśrednienie wielu niezależnych pomyłek zwykle daje trafniejszy wynik — to ta sama intuicja, co „mądrość tłumu”.
Las losowy świetnie radzi sobie z danymi tabelarycznymi, miesza cechy liczbowe i kategoryczne, nie wymaga skalowania i daje gratis ranking ważności cech (feature_importances_). To częsty pierwszy wybór na danych w tabelce, zanim sięgniesz po cięższe armaty.
Przykład z praktyki
W Pythonie używasz scikit-learn. Klasyfikator odpalasz dosłownie w trzech linijkach:
from sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier(n_estimators=300, random_state=42)model.fit(X_train, y_train)
Typowy scenariusz: przewidujesz churn klientów (kto odejdzie z abonamentu) na podstawie historii płatności i aktywności. Las losowy wskaże też, które cechy najmocniej wpływają na decyzję — np. że liczba logowań w ostatnim miesiącu waży więcej niż wiek konta.
Częste błędy i mity
- „Im więcej drzew, tym lepiej” — w pewnym sensie tak, ale powyżej kilkuset drzew zyskujesz głównie dłuższy czas treningu, nie celność.
n_estimators100–500 zwykle wystarcza. - Las losowy się nie przeucza — mit. Ogranicza overfitting, ale przy bardzo głębokich drzewach i zaszumionych danych nadal potrafi. Kontroluj
max_depthimin_samples_leaf. - To nie jest model „wyjaśnialny”. Dostajesz ważność cech, ale nie prześledzisz logiki jak w jednym drzewie. Setki drzew to czarna skrzynka.
- Na ogromnych zbiorach i w konkursach często przegrywa z gradient boosting (XGBoost, LightGBM).
Pojęcia powiązane
Drzewo decyzyjne, bagging, gradient boosting (XGBoost, LightGBM), overfitting, ensemble learning, feature importance, scikit-learn.