Strona główna Uczenie Maszynowe Klasyfikator lasu losowego

🌲 Klasyfikator lasu losowego

Zobacz, jak bagging i losowy dobór cech zamieniają słabe drzewa decyzyjne w mocny zespół. Porównaj pojedyncze przeuczone drzewo z lasem 50 drzew, z granicą decyzyjną i błędem OOB na żywo.

Uczenie Maszynowe2DZaawansowany60 FPS
random-forest ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Ta symulacja trenuje w Twojej przeglądarce prawdziwy klasyfikator lasu losowego (random forest): zespół do 100 drzew decyzyjnych, z których każde jest wyhodowane na własnej próbie bootstrapowej (losowanie ze zwracaniem ze zbioru danych) i dzieli węzły na podstawie losowego podzbioru cech — domyślnie √p z nich, zgodnie z oryginalnym algorytmem Breimana. Każde drzewo zachłannie wybiera podział, który maksymalizuje redukcję domieszki, mierzoną wskaźnikiem Giniego lub entropią, aż do maksymalnej głębokości. Punkty pominięte w próbie bootstrapowej danego drzewa tworzą jego zbiór out-of-bag (OOB), co pozwala lasowi oszacować własny błąd generalizacji bez osobnego zbioru testowego — to prawdziwa implementacja algorytmu, a nie gotowa animacja.

🔬 Co pokazuje

Dwuwymiarowy problem klasyfikacji binarnej lub wieloklasowej (Moons, Circles, Blobs lub XOR) z żywą granicą decyzyjną zabarwioną według uśrednionych prawdopodobieństw klas w lesie. Pięć pojedynczych drzew jest wyświetlanych jako małe miniatury obok całego zespołu, dzięki czemu widać, jak każde pojedyncze drzewo przeucza się na własnej próbie bootstrapowej, podczas gdy zagregowane głosowanie wygładza te błędy w jedną wspólną granicę. Pasek ważności cech dla każdego z dwóch wymiarów wejściowych jest obliczany na podstawie łącznej redukcji domieszki, jaką dana cecha wnosi w każdym podziale każdego drzewa.

🎮 Jak korzystać

Wybierz kształt zbioru danych i poziom szumu, a następnie ustaw liczbę drzew Trees (1–100), maksymalną głębokość Max depth (1–12), Min samples split, liczbę cech na podział Features per split (1, √p lub wszystkie) oraz kryterium podziału Criterion (Gini lub entropia). Naciśnij Train Forest, aby wylosować próby bootstrapowe i wyhodować wszystkie drzewa; pasek postępu i miniatury poszczególnych drzew aktualizują się w trakcie treningu. Wypróbuj ustawienie Single tree, aby zobaczyć jedno głębokie, przeuczone drzewo, a następnie porównaj je z Small forest lub Large forest, by zaobserwować, jak granica stabilizuje się wraz ze wzrostem liczby głosujących drzew. Kliknij lewym przyciskiem myszy na płótnie, aby dodać punkt klasy 0, prawym — dla klasy 1, i przetrenuj model ponownie, aby go uwzględnić.

💡 Czy wiesz, że?

Leo Breiman sformalizował algorytm lasu losowego w 2001 roku, łącząc bagging (agregację bootstrapową) z losowym doborem cech przy każdym podziale — dwa źródła losowości, które dekorelują drzewa, dzięki czemu ich błędy częściowo się znoszą przy uśrednianiu. Ponieważ w każdej próbie bootstrapowej pomijanych jest około 37% danych (1/e w granicy dużej próby), te punkty out-of-bag dają lasowi wbudowaną, nieobciążoną estymatę błędu — dokładnie to, co pokazuje statystyka błędu OOB w tej symulacji.

Najczęściej zadawane pytania

Czym jest las losowy i czym różni się od pojedynczego drzewa decyzyjnego?

Las losowy to zespół wielu drzew decyzyjnych, których prognozy są łączone przez uśrednianie (dla prawdopodobieństw) lub głosowanie większościowe (dla klas). Pojedyncze drzewo decyzyjne, zwłaszcza głębokie, ma tendencję do przeuczania się na danych treningowych i jest wrażliwe na niewielkie zmiany w nich. Trenując każde drzewo na innej próbie bootstrapowej i pozwalając mu uwzględniać jedynie losowy podzbiór cech przy każdym podziale, las buduje drzewa, które popełniają różne błędy; uśrednianie tych prognoz eliminuje znaczną część indywidualnego przeuczenia, dając gładszą i bardziej wiarygodną granicę decyzyjną niż jakiekolwiek pojedyncze drzewo w zespole.

Czym jest agregacja bootstrapowa (bagging) i jak jest tu wykorzystywana?

Agregacja bootstrapowa oznacza tworzenie nowego zbioru treningowego dla każdego drzewa poprzez losowanie ze zwracaniem z oryginalnego zbioru danych, dzięki czemu próba bootstrapowa ma ten sam rozmiar co oryginał, ale zawiera duplikaty i pominięcia. W tej symulacji każde drzewo otrzymuje własną próbę bootstrapową, wygenerowaną przez generator liczb pseudolosowych z ziarnem przed wyhodowaniem drzewa — dokładnie tak, jak w oryginalnej procedurze baggingu wprowadzonej przez Leo Breimana w 1996 roku i później rozszerzonej do lasów losowych w 2001 roku.

Jak symulacja wybiera, według której cechy i progu dokonać podziału?

W każdym węźle drzewo najpierw ogranicza się do losowego podzbioru dwóch dostępnych cech, zgodnie z ustawieniem Features per split (1, √p ≈ 1 dla problemu z dwiema cechami lub wszystkie). Dla każdej kandydującej cechy sprawdza każdy punkt środkowy między sąsiednimi posortowanymi wartościami jako próg i oblicza redukcję domieszki — wskaźnik Giniego lub entropię węzła nadrzędnego pomniejszone o ważoną domieszkę dwóch węzłów potomnych. Wybierany jest podział o największej redukcji domieszki, a proces powtarza się rekurencyjnie, aż węzeł stanie się czysty, osiągnie Max depth lub spadnie poniżej Min samples split.

Czym różni się wskaźnik Giniego od entropii i czy wybór między nimi ma znaczenie?

Oba wskaźniki mierzą, jak bardzo wymieszane są klasy w węźle: wskaźnik Giniego to jeden minus suma kwadratów udziałów klas, a entropia to suma −p·log₂(p) po wszystkich klasach. Oba wynoszą zero dla czystego węzła i osiągają maksimum, gdy klasy są rozłożone równomiernie. Wybór jednego z nich jako Criterion w tej symulacji zmienia, który kandydujący podział zostanie oceniony jako najlepszy w danym węźle, ale w praktyce oba kryteria zwykle dają bardzo podobne drzewa — Gini liczy się nieco szybciej, a entropia jest nieco bardziej wrażliwa na równowagę klas.

Co mówi błąd out-of-bag (OOB) i dlaczego jest ważny?

Ponieważ próba bootstrapowa każdego drzewa pomija mniej więcej jedną trzecią punktów danych, te pominięte punkty pełnią rolę darmowego zbioru walidacyjnego dla danego drzewa. Symulacja zbiera dla każdego punktu danych głosy wyłącznie tych drzew, które nie widziały go podczas treningu, i porównuje głosowanie większościowe z prawdziwą etykietą, aby obliczyć błąd OOB pokazywany w panelu Stats. Daje to rzetelne oszacowanie tego, jak las poradziłby sobie na nieznanych danych, bez konieczności wydzielania osobnego zbioru testowego — to kluczowa praktyczna zaleta algorytmu lasu losowego.

Podobne symulacje