Random Forest jest jednym z najbardziej popularnych i najpotężniejszych algorytmów uczenia maszynowego. Jest to rodzaj algorytmu zespołowego uczenia maszynowego zwanego Bootstrap Aggregation lub bagging.

W tym wpisie odkryjesz algorytm “Bagging ensemble” i tym samym algorytm “Random Forest” do modelowania predykcyjnego. Po przeczytaniu tego postu dowiesz się o nim:

Metoda paska startowego do szacowania wielkości statystycznych z próbek.

Algorytm agregacji bootstrapów do tworzenia wielu różnych modeli z jednego zbioru danych szkoleniowych.

Algorytm Random Forest, który tworzy mały tweak do Bagging i prowadzi do naprawdę potężnego klasyfikatora.

Ten post został napisany dla programistów i nie zakłada żadnego tła w statystyce czy matematyce. Skupia się na tym, jak działa algorytm i jak go używać do przewidywania problemów z modelowaniem.

Jeśli masz jakieś pytania, zostaw komentarz, a ja postaram się na niego odpowiedzieć.

Dowiedz się jak działają algorytmy uczenia maszynowego, w tym kNN, drzewa decyzyjne, naiwne zatoki, SVM, zespoły i wiele innych w mojej nowej książce, z 22 samouczkami i przykładami w Excelu.

Zacznijmy.

Metoda Bootstrap

Zanim dotrzemy do Baggingu, sprawdźmy szybko kluczową technikę posadowienia zwaną bootstrapem.

Pasek startowy może być potężną statystyczną procedurą szacowania ilości z próby wiedzy. Często najłatwiej jest określić, czy dana liczba może być statystyką opisową, jak średnia lub typowe odchylenie.

Załóżmy, że mamy próbę 100 wartości (x) i chcielibyśmy uzyskać szacunkową średnią z próby.

Średnią możemy wyliczyć bezpośrednio z próbki jako:

średnia(x) = 1/100 * suma(x)

Wiemy, że nasza próbka jest niewielka, a nasz środek ma w niej błąd. Poprawimy oszacowanie naszego średniego za pomocą procedury bootstrap:

Stworzymy wiele (np. 1000) losowych podpróbek naszego zbioru danych z wymianą (co oznacza, że będziemy wielokrotnie wybierać równoważną wartość).

Obliczymy średnią z każdej podpróby.

Obliczyć typową dla wszystkich naszych zgromadzonych środków i wykorzystać ją jako naszą szacunkową średnią dla informacji.

Na przykład, powiedzmy, że użyliśmy 3 podpróby i otrzymaliśmy wartości średnie 2.3, 4.5 i 3.3. Przyjmując typowe wartości, możemy przyjąć, że szacunkowa średnia z informacji wynosi 3,367.

Proces ten często nie pozwala na oszacowanie innych wielkości, jak wariancja, a nawet wielkości wykorzystywanych w algorytmach uczenia maszynowego, jak współczynniki wyuczone.

Agregacja pasków startowych (Bagging)

Bootstrap Aggregation (lub w skrócie Bagging), może być prostą i naprawdę potężną metodą zespołową.

Metoda zespołowa może być techniką, która łączy w sobie przewidywania z wielu algorytmów uczenia maszynowego, tworząc bardziej dokładne przewidywania niż model osobowy.

Agregacja pasków startowych może być ogólną procedurą, która nie zmniejszy wariancji dla tego algorytmu, który ma wysoką wariancję. Algorytm, który ma wysoką wariancję to drzewa decyzyjne, takie jak drzewa klasyfikacji i regresji (CART).

Drzewa decyzyjne są wrażliwe na dokładne dane, na których są szkolone. Jeśli dane o treningu są modyfikowane (np. drzewo jest trenowane na podzbiorze danych o treningu), drzewo decyzyjne, które powstało w wyniku treningu, jest często zupełnie inne, a kolejne przewidywania są często zupełnie inne.

Bagging polega na zastosowaniu procedury Bootstrap do algorytmu uczenia maszynowego o dużej zmienności, zazwyczaj drzew decyzyjnych.

Załóżmy, że mamy przykładowy zbiór danych z 1000 przypadków (x) i że używamy algorytmu CART. Bagowanie algorytmu CART będzie działać w następujący sposób.

Stworzyć wiele (np. 100) losowych podpróbek naszego zbioru danych z zamiennikami.

Wyszkolić model CART na każdej próbce.

Podając zbiór danych z zamiennikami, obliczyć typową prognozę z każdego modelu.

Na przykład, gdybyśmy mieli 5 spakowanych drzew decyzyjnych, które tworzyły kolejne klasy przewidywań dla próbki wejściowej: niebieską, niebieską, czerwoną, niebieską i czerwoną, moglibyśmy wziąć do ręki najczęściej spotykane klasy i przewidywać niebieskie.

Kiedy pakujemy w worki drzewa decyzyjne, mniej zależy nam na tym, aby poszczególne drzewa nie pasowały do danych szkoleniowych. Z tego powodu, a także ze względu na efektywność, poszczególne drzewa decyzyjne są uprawiane głęboko (np. kilka próbek treningowych na każdym węźle liściowym drzewa) i dlatego drzewa nie są przycinane. Drzewa te charakteryzują się zarówno dużą zmiennością, jak i małą tendencyjnością. Są one ważną cechą charakterystyczną pod-modeli przy łączeniu prognoz za pomocą worków.

Jedynym parametrem przy podejmowaniu decyzji o pakowaniu w worki drzew jest liczba próbek, a tym samym ilość drzew do włączenia. Będzie to wybierane poprzez zwiększanie liczby drzew w kolejnych przebiegach, aż do momentu, w którym dokładność zacznie uniemożliwiać wykazanie poprawy (np. na krzyżowej uprzęży testowej do walidacji). Bardzo duża liczba modeli może wymagać dłuższego czasu na organizację, ale nie przerośnie danych szkoleniowych.

Podobnie jak w przypadku samych drzewek testowych, Bagging jest często używany do problemów z klasyfikacją i regresją.

Las losowy

Lasy losowe są lepszym rozwiązaniem niż pakowane drzewa decyzyjne.

Problem z takimi drzewami decyzyjnymi jak CART polega na tym, że są one chciwe. Oni wybierają który zmienna oddzielać na używać chciwego algorytm który minimalizować błąd. Jako takie, nawet z Bagging, drzewa decyzyjne mogą mieć tony strukturalnych podobieństw i sukcesywnie mają wysoką korelację w ich przewidywaniach.

Łączenie przewidywań z wielu modeli w zespołach działa lepiej, jeśli przewidywania z pod-modeli są nieskorelowane lub w najlepszym przypadku słabo skorelowane.

Las losowy zmienia algorytm uczenia pododmian w taki sposób, że wynikające z niego przewidywania ze wszystkich pododmian mają mniejszą korelację.

Jest to łatwe do dopasowania. W CART, przy wyborze punktu podziału, algorytm treningu może wydawać się przez wszystkie zmienne i wartości każdej z nich tak, aby wybrać najbardziej optymalny punkt podziału. Algorytm losowego lasu zmienia tę procedurę w taki sposób, że algorytm treningu jest ograniczony do losowo wybranej próbki cech, które mają wyglądać.

Liczba cech, które będą przeszukiwane w każdym punkcie podziału (m), musi być określona jako parametr algorytmu. Spróbujesz różnych wartości i dostroisz je za pomocą walidacji krzyżowej.

Dla klasyfikacji uczciwą wartością domyślną jest: m = sqrt(p)

Dla regresji wartość domyślna wynosi: m = p/3

Gdzie m to liczba losowo wybranych cech, które będą przeszukiwane w punkcie podziału, a p to liczba zmiennych wejściowych. Na przykład, jeśli zbiór danych miał 25 zmiennych wejściowych dla problemu z klasyfikacją, to?

m = sqrt(25)

m = 5

Szacunkowa wydajność

Dla każdej próbki bootstrapów pobranej z danych szkoleniowych, pozostaną próbki, które nie zostały dołączone. Te próbki są nazywane próbkami Out-Of-Bag lub OOB.

Wydajność każdego modelu na pominiętych próbkach po uśrednieniu może zapewnić szacunkową dokładność modeli w workach. Ta szacunkowa wydajność jest zazwyczaj nazywana szacunkową wydajnością OOB.

Te mierniki wydajności są wiarygodnym szacunkiem błędu testu i dobrze korelują z szacunkami walidacji krzyżowej.

Znaczenie zmienne

W miarę konstruowania drzew decyzyjnych Bagged, będziemy obliczać, w jakiej proporcji spada funkcja błędu dla zmiennej w każdym punkcie podziału.

W problemach z regresją może to być spadek o błąd kwadratowy sumy, a w klasyfikacji może to być wynik Gini.

Te spadki błędu są często uśredniane we wszystkich drzewach decyzyjnych i na wyjściu, aby dostarczyć oszacowanie ważności każdej zmiennej wejściowej. Im większy spadek, gdy zmienna została wybrana, tym większe jest jej znaczenie.

Te wyjścia mogą pomóc zidentyfikować podzbiory zmiennych wejściowych, które będą najbardziej lub najmniej istotne dla sprawy i zasugerować podczas możliwych eksperymentów z wyborem cech, które przeprowadzisz tam, gdzie niektóre cechy są dalekie od zbioru danych.