ALGORYTM RANDOM FOREST



Podobne dokumenty
ALGORYTMY SZTUCZNEJ INTELIGENCJI

Testowanie modeli predykcyjnych

Drzewa decyzyjne i lasy losowe


Metody klasyfikacji danych - część 1 p.1/24

Szczegółowy program kursu Statystyka z programem Excel (30 godzin lekcyjnych zajęć)

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH

Przykład eksploracji danych o naturze statystycznej Próba 1 wartości zmiennej losowej odległość

Szczegółowy program kursu Statystyka z programem Excel (30 godzin lekcyjnych zajęć)

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

SYSTEMY UCZĄCE SIĘ WYKŁAD 3. DRZEWA DECYZYJNE. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Drzewa klasyfikacyjne Lasy losowe. Wprowadzenie

Algorytmy klasyfikacji

Inteligentna analiza danych

Projekt Sieci neuronowe

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

Indukowane Reguły Decyzyjne I. Wykład 8

Elementy modelowania matematycznego

PODYPLOMOWE STUDIA ZAAWANSOWANE METODY ANALIZY DANYCH I DATA MINING W BIZNESIE

KLASYFIKACJA. Słownik języka polskiego

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

Zagadnienie klasyfikacji (dyskryminacji)

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład I dr inż. 2015/2016

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

METODY INŻYNIERII WIEDZY

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

Mikroekonometria 6. Mikołaj Czajkowski Wiktor Budziński

Wprowadzenie. Metody bayesowskie Drzewa klasyfikacyjne i lasy losowe Sieci neuronowe SVM. Klasyfikacja. Wstęp

Wprowadzenie do uczenia maszynowego

Modelowanie glikemii w procesie insulinoterapii

Elementy statystyki wielowymiarowej

Matlab podstawy + testowanie dokładności modeli inteligencji obliczeniowej

Systemy uczące się wykład 1

Agnieszka Nowak Brzezińska Wykład III

Wprowadzenie do analizy dyskryminacyjnej

Optymalizacja ciągła

Statystyka od podstaw Janina Jóźwiak, Jarosław Podgórski

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

Analiza danych. TEMATYKA PRZEDMIOTU

Agnieszka Nowak Brzezińska Wykład III

Systemy uczące się wykład 2

Agnieszka Nowak Brzezińska

( x) Równanie regresji liniowej ma postać. By obliczyć współczynniki a i b należy posłużyć się następującymi wzorami 1 : Gdzie:

5. Model sezonowości i autoregresji zmiennej prognozowanej

Metody systemowe i decyzyjne w informatyce

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Eksploracja danych w środowisku R

Systemy uczące się Lab 4

Klasyfikacja i regresja Wstęp do środowiska Weka

Stan dotychczasowy. OCENA KLASYFIKACJI w diagnostyce. Metody 6/10/2013. Weryfikacja. Testowanie skuteczności metody uczenia Weryfikacja prosta

Rozpoznawanie obrazów

Testowanie hipotez statystycznych

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Ćwiczenia IV

Customer Attribution Models. czyli o wykorzystaniu machine learning w domu mediowym.

PODSTAWY STATYSTYCZNEGO MODELOWANIA DANYCH. Wykład 6 Drzewa klasyfikacyjne - wprowadzenie. Reguły podziału i reguły przycinania drzew.

PODSTAWY STATYSTYCZNEJ ANALIZY DANYCH. Wykład 5 Kwadratowa analiza dyskryminacyjna QDA. Metody klasyfikacji oparte na rozkładach prawdopodobieństwa.

Automatyczne wyodrębnianie reguł

Uwaga: szarych kropek po pokolorowaniu nie uwzględniaj w klasyfikowaniu kolejnych szarych.

Wprowadzenie. Data Science Uczenie się pod nadzorem

Adam Kirpsza Zastosowanie regresji logistycznej w studiach nad Unią Europejska. Anna Stankiewicz Izabela Słomska

Statystyki: miary opisujące rozkład! np. : średnia, frakcja (procent), odchylenie standardowe, wariancja, mediana itd.

Własności statystyczne regresji liniowej. Wykład 4

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Metody konstrukcji oraz symulacyjne badanie właściwości jednorodnych i niejednorodnych komitetów klasyfikatorów

Wykład 3 Hipotezy statystyczne

Sprawozdanie z zadania Modele predykcyjne (2)

Data Mining Wykład 4. Plan wykładu

Sieci neuronowe w Statistica

WYKŁAD 7. Testowanie jakości modeli klasyfikacyjnych metodyka i kryteria

Identyfikacja istotnych atrybutów za pomocą Baysowskich miar konfirmacji

Model EWD dla II etapu edukacyjnego.

Szkolenie Analiza dyskryminacyjna

Algorytmy klasyfikacji

Metody selekcji cech

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Trafność czyli określanie obszaru zastosowania testu

Konstrukcja biortogonalnych baz dyskryminacyjnych dla problemu klasyfikacji sygnałów. Wit Jakuczun

Matematyka ubezpieczeń majątkowych r.

Metody Sztucznej Inteligencji II

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

WYKŁAD 6. Reguły decyzyjne

Algorytmy zrandomizowane

parametrów strukturalnych modelu = Y zmienna objaśniana, X 1,X 2,,X k zmienne objaśniające, k zmiennych objaśniających,

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

Spacery losowe generowanie realizacji procesu losowego

Wprowadzenie do klasyfikacji

Co to są drzewa decyzji

Regresja logistyczna (LOGISTIC)

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

9. Praktyczna ocena jakości klasyfikacji

Laboratorium 6. Indukcja drzew decyzyjnych.

Transkrypt:

SKRYPT PRZYGOTOWANY NA ZAJĘCIA INDUKOWANYCH REGUŁ DECYZYJNYCH PROWADZONYCH PRZEZ PANA PAWŁA WOJTKIEWICZA ALGORYTM RANDOM FOREST Katarzyna Graboś 56397 Aleksandra Mańko 56699 2015-01-26, Warszawa

ALGORYTM RANDOM FOREST Eksploracja danych to proces odkrywania uogólnionych reguł i wiedzy zawartej w bazach danych, oparty na metodach statystycznych i technikach sztucznej inteligencji. Idea eksploracji danych polega na wykorzystaniu szybkości komputera do znajdowania ukrytych dla człowieka (z uwagi na ograniczone możliwości czasowe) prawidłowości w danych zgromadzonych w hurtowniach danych (ang. data warehouse). Istnieje wiele technik eksploracji danych, które wywodzą się z ugruntowanych dziedzin nauki takich jak statystyka i uczenie maszynowe. Jednym z najistotniejszych zagadnień z dziedziny uczenia się maszyn jest wybór metody klasyfikacji. Machine learning uczenie maszynowe Gałąź sztucznej inteligencji zajmująca się konstrukcją i analizą systemów, które mogą uczyć się na podstawie danych. Drzewa decyzyjne to graficzna metoda wspomagania procesu decyzyjnego. Algorytm drzew decyzyjnych jest również stosowany w uczeniu maszynowym do pozyskiwania wiedzy na podstawie przykładów. Koncepcja Bugging polega na budowie ekspertów dla podzbioru zadań. W tym przypadku, ze wszystkich problemów do rozwiązania losowany jest ze zwracaniem podzbiór problemów a następnie dla tego podzbioru szukany jest ekspert. W algorytmie tym z całego zbioru danych uczących losowany jest podzbiór (losowanie ze zwracaniem) i dla tego podzbioru budowany jest model predykcyjny, następnie po raz kolejny ze zwracaniem losowany jest inny podzbiór wektorów i dla niego budowany jest kolejny model. Całość powtarzana jest k krotnie a na koniec wszystkie zbudowane modele użyte są do głosowania. Drzewa decyzyjne Algorytm Random Forest Koncepcja Bugging

Algorytm Random Forest To metoda klasyfikacji (i regresji) polegająca na tworzeniu wielu drzew decyzyjnych na podstawie losowego zestawu danych. Idea tego algorytmu polega na zbudowaniu konsylium ekspertów z losowych drzew decyzyjnych, gdzie w odróżnieniu od klasycznych drzew decyzji, losowe drzewa budowane są na zasadzie, iż podzbiór analizowanych cech w węźle dobierany jest losowo. Ponadto, poszczególne drzewa z losowych lasów drzew budowane są zgodnie z koncepcją Bugging. Cechy Algorytmu Random Forest jest najlepszy jeśli chodzi o dokładność wśród pozostałych algorytmów działa skutecznie na dużych bazach danych utrzymuje dokładność w przypadku braku danych daje oszacowanie, które zmienne są istotne w klasyfikacji nie ma potrzeby przycinania drzew lasy mogą być zapisane i wykorzystane w przyszłości dla innego zbioru danych nie wymaga wiedzy eksperckiej nie jest podatny na overfitting Lasy losowe są uznawane za jedna z najlepszych metod klasyfikacji. Pojedyncze klasyfikatory lasu losowego to drzewa decyzyjne. Algorytm RandomForest bardzo dobrze nadaje się do badania próby, gdzie wektor obserwacji jest dużego wymiaru. Ich dodatkową zaletą jest możliwość użycia nauczonego lasu losowego do innych zagadnień niż tylko do klasyfikacji. Przykładowo, na podstawie drzew z lasu można wyznaczyć ranking zmiennych, a tym samym określić, które zmienne mają lepsze właściwości predykcyjne. Podczas generowania drzew zbiór wejściowy zostaje podzielony na dwa podzbiory: treningowy oraz zbiór OOB (out-of-bag), który składa się z ok. 1 3 obserwacji. Zbiór OOB służy do estymacji błędów klasyfikacji oraz istotności poszczególnych zmiennych. Błąd predykcji OOB pokazuje ile elementów ze zbioru testowego nie zostało przyporządkowanych poprawnie do ich właściwych klas. Jest on różnicą między wszystkimi elementami znajdującymi się w macierzy trafności, a elementami znajdującymi się poza przekątną macierzy.

Jak działa algorytm Random Forest? 1. Losujemy ze zwracaniem z n-elementowej próby uczącej n wektorów obserwacji. Na podstawie takiej pseudopróby stworzone zostanie drzewo. 2. W każdym węźle podział odbywa się poprzez wylosowanie bez zwracania m spośród p atrybutów, następnie w kolejnym węźle k spośród m atrybutów itd (p m k) (parametr m jest jedynym elementem algorytmu, który trzeba ustalić, wartość dająca dobre wyniki dla modeli decyzyjnych to około m = p, dla modeli regresyjnych ). 3. Proces budowania drzewa bez przycinania trwa, jeżeli to możliwe do momentu uzyskania w liściach elementów z tylko jednej klasy. Proces klasyfikacji 1. Dany wektor obserwacji jest klasyfikowany przez wszystkie drzewa, ostatecznie zaklasyfikowany do klasy, w której wystąpił najczęściej. 2. W przypadku elementów niewylosowanych z oryginalnej podpróby, każdy taki i-ty element zostaje poddany klasyfikacji przez drzewa, w których budowie nie brał udziału. Taki element zostaje następnie przyporządkowany klasie, która osiągana była najczęściej (w ten sposób zaklasyfikowane zostały wszystkie elementy z oryginalnej próby). Algorytm Random Forest wykorzystuje indeks Giniego, który służy jako podstawowe kryterium oceny jakości podziału węzła w drzewie decyzyjnym. Wzrost wartości współczynnika oznacza wzrost nierówności rozkładu. Zatem w rankingu należy wybrać klasę charakteryzującą się najniższym współczynnikiem Giniego. T oznacza zbiór zawierający n klas, a pj względną częstotliwość występowania danej klasy w zbiorze T.

START TAK Czy algorytm został przeprowadzony dla każdego drzewa? Wybierz podzbiór zmiennych m NIE Wybierz zbiór treningowy Czy została jeszcze jakaś zmienna? TAK NIE Czy został jeszcze jakiś węzeł do podziału? NIE Próbka (1) TAK Posortuj(2) Zbuduj kolejny podział Policz indeks Giniego dla każdego punktu podziału (3) Policz błąd predykcji (4) Wybierz najlepszy podział KONIEC

Przykład 1. W celu zilustrowania procesu tworzenia lasów losowych oraz sposobu posługiwania się wyżej opisanym algorytmem zaprezentujemy przykład oparty na danych Iris zapożyczonych z pakietu Weka. Postaramy się w sposób szczegółowy opisać kolejne etapy naszej analizy wraz z interpretacją otrzymanych wyników. Cały proces zostanie przeprowadzony z wykorzystaniem programu R. Pierwszym krokiem jest podzielenie zbioru danych Iris na dwa podzbiory: treningowy (zawierający 80% obserwacji) i testowy (zawierający 20% obserwacji). Tak dobrane proporcje zwiększają prawdopodobieństwo otrzymania lepszych wyników. test = iris[ c(1:10, 51:60, 101:110), ] train = iris[ c(11:50, 61:100, 111:150), ] Lasy losowe możemy wygenerować za pomocą funkcji randomforest, która znajduje się w pakiecie randomforest. Przy konstrukcji lasów losowych uzyskiwane są losowe wersje zbioru danych. Aby móc odtworzyć uzyskane wyniki należy skorzystać z funkcji set.seed() Poniżej przedstawiamy funkcje, które umożliwiają otrzymanie lasu losowego. iris.rf <- randomforest(species ~., data=train, ntree=500) print(iris.rf) Wyniki prezentują się następująco: Wartość błędu klasyfikacji dla pierwszej klasy wynosi zero, natomiast zarówno dla drugiej i trzeciej klasy 0,1. Błąd klasyfikacji dla wszystkich danych jest na poziomie 6,67%.

Aby uzyskać wgląd na proces redukcji błędu klasyfikacyjnego obliczonego dla zbioru OOB po dodaniu kolejnych drzew należy ustawić parametr do.trace. Wywołanie procesu odbywa się za pomocą funkcji: iris.rf <- randomforest(species ~., data=train, ntree=500, do.trace=50) I daje następujące rezultaty: Następnie posłużymy się procedurą plot(), która pozwali nam obserwować wpływ liczby poszczególnych modeli na wielkość błędu klasyfikacji. plot(iris.rf) W wyniku wywołania procedury otrzymujemy wykres informujący o błędzie klasyfikacji w zależności od liczby drzew.

Kolejną z zalet algorytmu randomforest jest wyznaczeni rankingu zmiennych, który bierze pod uwagę średnie zmiany indeksu Giniego. Służy to ocenie istotności poszczególnych zmiennych a tym samym określa, które zmienne mają lepsze właściwości predykcyjne. Taką informacje możemy uzyskać dzięki zastosowaniu poniższej komendy: importance(iris.rf) Generuje ona następujący wydruk. Interpretując powyższe wartości można wnioskować, że najlepszą zmienną pod względem wartości predykcyjnych jest zmienna Sepal.width (1.970850), natomiast najgorszą Petal.length (35.103479). Za pomocą funkcji varimpplot możemy uzyskać graficzne przedstawienie wcześniej otrzymanych wartości. varimpplot(iris.rf)

Kolejnym etapem jest wygenerowanie prognozy za pomocą funkcji predict dla próby testowej. iris.predict = predict(iris.rf, test) Następną komendą wywołujemy wynik. iris.predict Nieparzyste wiersze przedstawiają numer obserwacji, natomiast parzyste wartość klasy, do której dana obserwacja została przydzielona. Ostatnim etapem analizy będzie przedstawienie macierzy trafności zbudowanej ze zbioru testowego. Wywołujemy ją poleceniem: tab <- table(observed=test[,'species'], predict=iris.predict) tab Jak pokazuje poniższa tabela, klasy setosa i versicolor zostały przydzielone poprawnie, natomiast klasa virginica charakteryzowała się błędem predykcji, ponieważ jedna jej obserwacji została błędnie przyporządkowana. Naszą interpretację możemy również potwierdzić za pomocą poniższej procedury, która zwraca liczbę błędów predykcji. sum(tab)-sum(diag(tab)) W wyniku otrzymujemy 1, co oznacza, że na 30 elementów zawartych w zbiorze testowym tylko jeden został źle przyporządkowany.