Klasyfikacja i regresja z zastosowaniem algorytmu RandomForest

autor: Michał Bieroński

album: 218324

Agenda

  1. Wprowadzenie
    1. Drzewa decyzyjne
    2. Zespoły klasyfikatorów
  2. Losowy las
    1. Proces budowy lasu
    2. Metody usprawniające działanie
  3. Regresja
  4. Zastosowania
  5. Porównanie z innymi metodami
  6. Przykład
  7. Zalety i wady

Drzewa decyzyjne

Zespoły klasyfikatorów

Losowe lasy

+

=

+

Budowa drzew

Chest Pain
Good Blood Circ. Blocked Arteries Weight
Heart Disease
No No No 125 No
Yes Yes Yes 180 Yes
Yes Yes No 210 No
Yes No Yes 167 Yes

Oryginalny dataset

Chest Pain
Good Blood Circ. Blocked Arteries Weight Heart Disease
Yes Yes Yes 180 Yes
No No No 125 No
Yes No Yes 167 Yes
Yes No Yes 167 Yes

Bootstrapped dataset

1. Bootstrapping

Budowa drzew

Chest Pain
Good Blood Circ. Blocked Arteries Weight Heart Disease
Yes Yes Yes 180 Yes
No No No 125 No
Yes No Yes 167 Yes
Yes No Yes 167 Yes

Bootstrapped dataset

2. Random subset

W skrócie: na każdym poziomie rozpatrujemy tylko losowe podzbiory niewykorzystanych cech.

Budowa losowego lasu

  1. Powtarzaj kroki 1 i 2, aż do uzyskania n drzew.
  2. Agregacja decyzji - głosowanie większościowe

Remark:

Bootstrapping

+

Decission aggregating

=

Bagging

Budowa losowego lasu

Chest Pain
Good Blood Circ. Blocked Arteries Weight
Heart Disease
No No No 125 No
Yes Yes Yes 180 Yes
Yes Yes No 210 No
Yes No Yes 167 Yes

Oryginalny dataset

Out-Of-Bag Dataset

Co dalej?

Jak go wykorzystać?...

Budowa losowego lasu

Out-Of-Bag Dataset

  • Czy maksymalna liczba losowo rozpatrywanych cech rzeczywiście była dobra?
  • Jak dobrać odpowiednią wartość?

Problemy

  • Wykorzystajmy Out-Of-Bag Dataset do walidacji!

Rozwiązanie

Wróćmy do metody random subset...

Budowa losowego lasu

Out-Of-Bag Dataset c.d.

  1. Dla każdego z drzew zbudowanych bez obiektów z tego zbioru sprawdź jaka klasa zostanie przypisana (walidacja)
  2. Dokonaj agregacji decyzji
  3. Sprawdź czy dokonano poprawnej klasyfikacji i oblicz "Out-Of-Bag Error"

"Out-Of-Bag Error"

(proporcja niepoprawnych klasyfikacji do wszystkich)

Budowa losowego lasu

Out-Of-Bag Error

Jak wykorzystać tę informację?

Można lepiej dobrać parametr ograniczenia do metody random subset.

  • Zazwyczaj sprawdzana jest okolica
  • Zbuduj las w oparciu o nową wartość parametru
  • Powtórz proces dla k parametrów
  • Wybierz ten o największej dokładności
\sqrt{N}
N\sqrt{N}

N - liczba cech

Regresja dla drzew decyzyjnych

CART - classification & regression tree

Budowa drzewa

*MSE - tutaj błąd śr. kw. odległości wartości atrybutów od wartości średniej w danym podziale

Regresja dla drzew decyzyjnych

Dla każdego regionu wartością regresji jest średnia obiektów do niego przynależących.

Regresja dla losowego lasu

  • Trenujemy N drzew (używając metod baggingu, random subset itd.)
  • Agregujemy wartości zwracane przez drzewa za pomocą średniej

Zastosowania

  • Bankowość
    • identyfikowanie lojalnych klientów
    • wykrywanie oszustw
  • Medycyna
    • zatwierdzanie leków
    • identyfikacja chorób
  • Giełda
    • przewidywanie wzrostów bądź spadków
  • E-commerce
    • część silnika rekomendacyjnego (identyfikacja likelihoodu, że klientowi będzie podobał się rekomendowany produkt)
  • Computer Vision
    • Microsoft Kinect (identyfikacja części ciała)
  • Inne
    • Teledetekcja
    • Czytanie z ruchu warg
    • Klasyfikacja mowy

Porównanie z innymi metodami (klasyfikacja)

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, n_features=4,
                            n_informative=2, n_redundant=0,
                            random_state=0, shuffle=False)

clf = RandomForestClassifier(n_estimators=10, 
                             criterion='entropy', 
                             max_features='sqrt',
                             max_depth=4,
                             n_jobs=-1)
clf.fit(X, y)

print(clf.predict([[0, 0, 0, 0]]))
>>> [1]

Jak używać (Python)

Zalety

  • Zdolne zarówno do klasyfikacji i regresji
  • Potrafią obsłużyć i zachować dokładność dla brakujących danych
  • Zapobiegają przeuczeniu
  • Radzą sobie z dużymi zbiorami danych o dużej wymiarowości

Wady

  • Z regresją nie radzą sobie tak dobrze jak z klasyfikacją
  • Ciężko kontrolować model

Źródła

Random forests

By bierus

Random forests

  • 339