Wstęp. Cechy: Spis treści

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

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

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

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

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

WYKŁAD 11 Uczenie maszynowe drzewa decyzyjne

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

8. Drzewa decyzyjne, bagging, boosting i lasy losowe

Drzewa decyzyjne i lasy losowe

SZTUCZNA INTELIGENCJA

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

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

ALGORYTM RANDOM FOREST

Algorytmy klasyfikacji

Co to są drzewa decyzji

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

Klasyfikator. ˆp(k x) = 1 K. I(ρ(x,x i ) ρ(x,x (K) ))I(y i =k),k =1,...,L,

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

ALGORYTMY I STRUKTURY DANYCH

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Wysokość drzewa Głębokość węzła

Wprowadzenie do analizy korelacji i regresji

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

ALGORYTMY I STRUKTURY DANYCH

Złożoność i zagadnienia implementacyjne. Wybierz najlepszy atrybut i ustaw jako test w korzeniu. Stwórz gałąź dla każdej wartości atrybutu.

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Pattern Classification

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Drzewa klasyfikacyjne Lasy losowe. Wprowadzenie

Klasyfikacja LDA + walidacja

FUNKCJA LINIOWA - WYKRES

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

Elementy modelowania matematycznego

Metody Sztucznej Inteligencji II

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Automatyczne wyodrębnianie reguł

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Algorytmy ewolucyjne (3)

Wykrywanie anomalii w zbiorze danych o dużym wymiarze

Wprowadzenie do klasyfikacji

Drzewa decyzyjne. Inteligentne Obliczenia. Wydział Mechatroniki Politechniki Warszawskiej. Anna Sztyber

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

Korzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne)

Wprowadzenie do uczenia maszynowego

Statystyka w pracy badawczej nauczyciela Wykład 4: Analiza współzależności. dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl


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

Drzewa Decyzyjne, cz.2

Analiza danych. TEMATYKA PRZEDMIOTU

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Drzewa klasyfikacyjne algorytm podstawowy

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Algorytm selekcji Hoare a. Łukasz Miemus

Agnieszka Nowak Brzezińska

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Analiza głównych składowych- redukcja wymiaru, wykł. 12

Funkcja kwadratowa. f(x) = ax 2 + bx + c,

Klasyfikacja. Indeks Gini Zysk informacyjny. Eksploracja danych. Klasyfikacja wykład 2

Regresja wielokrotna. PDF created with FinePrint pdffactory Pro trial version

TESTOWANIE HIPOTEZ STATYSTYCZNYCH Hipotezą statystyczną nazywamy, najogólniej mówiąc, pewną wypowiedź na temat rozkładu interesującej nas cechy.

Algorytmy i struktury danych. Wykład 4

Wykład 6. Drzewa poszukiwań binarnych (BST)

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Optymalizacja ciągła

Uczenie się maszyn. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

dr inż. Jarosław Forenc

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

Wykład 4: Wnioskowanie statystyczne. Podstawowe informacje oraz implementacja przykładowego testu w programie STATISTICA

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Indukcja drzew decyzyjnych

Algorytmy, które estymują wprost rozkłady czy też mapowania z nazywamy algorytmami dyskryminacyjnymi.

Nierówność Krafta-McMillana, Kodowanie Huffmana

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Analiza Danych Sprawozdanie regresja Marek Lewandowski Inf 59817

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Metody probabilistyczne klasyfikatory bayesowskie

Zadania ze statystyki, cz.6

CLUSTERING. Metody grupowania danych

Kompresja bezstratna. Entropia. Kod Huffmana

Podstawy Informatyki. Metody dostępu do danych

ED Laboratorium 3. Drzewa decyzyjne

KLASYFIKACJA. Słownik języka polskiego

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

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

Metody Kompilacji Wykład 3

8. Neuron z ciągłą funkcją aktywacji.

Testowanie hipotez statystycznych

Analiza algorytmów zadania podstawowe

9. BADANIE PRZEBIEGU ZMIENNOŚCI FUNKCJI

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Transkrypt:

Spis treści 1 Wstęp 2 Cechy: 3 Jak można wyobrażać sobie drzewo decyzyjne 3.1 Przykład z decyzją o spacerze 4 Podział przestrzeni cech 5 Jak uczyć drzewo? 5.1 Zarys algorytmu 5.2 Jak wybrać najlepszą cechę? 5.2.1 Krótkie przypomnienie z teorii informacji 5.2.1.1 Entropia 5.2.1.2 Informacja wzajemna (Mutual information) 5.3 Uczenie drzewa z wartościami, które nie są 0/1 5.3.1 Wiele wartości dyskretnych 5.3.2 Problem parzystości 5.3.3 Uczenie z wielowartościowymi cechami 5.4 Uczenie z brakującymi wartościami 5.5 Problem przeuczenia/ nadmiernego dopasowania 5.6 Przycinanie drzew 5.7 Rule Post pruning 6 Skalowanie Wstęp Drzewa decyzyjne to popularne narzędzia do data mining nadają się szczególnie dobrze do klasyfikacji, ale można je też przystosować do problemów regresji. My skupimy się na ich zastosowaniach w klasyfikacji (podjęcia decyzji). Cechy: łatwe do zrozumienia generują wyjście, które jest łatwo interpretować dość łatwe w użyciu -> niezbyt dużo parametrów do dopasowywania zanim uda się z nich wycisnąć coś użytecznego dobrze skalowalne są algorytmem typu white box - można łatwo wizualizować wiedzę, której wyuczył się algorytm mogą działać zarówno z danymi numerycznymi/ciągłymi jak i kategorycznymi/dyskretnymi algorytmy są typu konstrukcyjnego poszukiwania - drzewa rosną dopasowując się do danych najczęściej uczone są wsadowo (batch mode)

Jak można wyobrażać sobie drzewo decyzyjne składa się z węzłów w danym węźle testowana jest wartość jednej cechy z przykładu uczącego węzeł ma rozgałęzienia zależne od wyniku testu Przykład z decyzją o spacerze Załóżmy, że chdzimy na spacer w zależności od pogody. Zobaczmy jak może wyglądać drzewo opisujące podejmowanie decyzji o spacerze. Drzewo takie budujemy w oparciu o zastaw wcześniejszych obserwacji różnych parametrów (cech) i podjętych decyzji. Innymi słowy mamy zbiór uczący. cechy (Zachmurzenie{słonecznie, pochmurno, pada}, temperatura, wilgotność, wiatr), np. temperatura nie musi być istotna nie wszystkie cechy muszą być wykorzystane w drzewie decyzyjnym, może to wynikać z tego, że cechy są skorelowane/redundantne albo po prostu okazać się nieistotne dla problemu jednym z ważnych pytań, które tu się pojawiają jest to w jakiej kolejność wybierać cechy -> intuicja: od najbardziej informatywnych, tych które najszybciej prowadzą do decyzji jeśli cechy są ciągłe to można wprowadzić próg -> np. wilgotność (próg =75%), wiatr(próg 20km/h)

Podział przestrzeni cech W drzewach decyzyjnych granice między klasami mają postać hiperpowierzchni równoległych do osi cech -> ciężko jest nauczyć separacji klas, które na płaszczyźnie są separowane pochyłą prostą mając dużo danych można taką prostą aproksymować wieloma schodkami (przykład z podziałem przestrzeni 2D na prostokąty ) w rzeczywistych zastosowaniach, gdy mamy wielowymiarowe cechy a dane są dość rzadkie, zwykle da się poprowadzić hiperpowierzchnie Czy można wyuczyć drzewo dowolnej funkcji logicznej? tak bo funkcje logiczne można reprezentować za pomocą tablic prawdy (matryc logicznych) A B Y = A or B 0 0 0 0 1 1 1 0 1 1 1 1 Jak uczyć drzewo? Zarys algorytmu potrzebne jest kryterium S, które powie jak bardzo istotna jest dana cecha c zaczynamy od korzenia i pełnego zbioru danych obliczamy na razie załóżmy, że cecha c jest logiczna: 0 lub 1, jeśli wartość wybranej cechy jest 0 to idziemy na lewo (i zostaje nam tylko pewien podzbiór danych) w przeciwnym razie (jeśli 1) to idziemy na prawo (i też pozostaje nam podzbiór - pozostałą część) w tym miejscu mówimy sobie, że ten podzbiór, który nam pozostał to cały zbiór, i że znowu szukamy korzenia poddrzewa -> rekurencja rekurencyjnie podążamy tak długo aż: zostaje nam podzbiór, który należy tylko do jednej klasy nie mamy już cech, którymi można by zróżnicować przykłady W pseudokodzie wygląda to tak: D- dane treningowe HodujDrzewo(D) if ( y=0 dla wszystkich elseif ( y=1 dla wszystkich ) return nowyliść(0) ) return nowyliść(1)

else wybierz najlepsze S_0 = wszystkie dla których S_1 = wszystkie dla których return nowywęzeł(, HodujDrzewo( ), HodujDrzewo( )) Jak wybrać najlepszą cechę? wybrać tą cechę, która wzięta pod uwagę sama daje najmniejszy błąd przewidywania na zbiorze uczącym (taka cecha, że jeśli podzielimy wg. niej to mamy najmniejszą sumę błędów w lewej i prawej gałęzi)-> w niektórych sytuacjach to nie jest optymalne postępowanie x1 x2 x3 y 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 Podział wzg. X1 (jeśli x1=0 to 1, jeśli x1=1 to 0) dałby łącznie 1+1 =2 błędy Podział wzg. X2 (jeśli x2=0 to 1, jeśli x2=1 to 0) dałby łącznie 2+2 = 4 błędy Podział wzg. X3 (jeśli x2=0 to 1, jeśli x2=1 to 0) dałby łącznie 2+2 = 4 błędy Podział wzg. ilości błędów może nie być optymalny, NP-zupełny problem aby znaleźć najmniejsze drzewo dla konkretnych danych- > trzeba posługiwać się heurystykami warto skorzystać z miar dostarczanych przez teorię informacji Krótkie przypomnienie z teorii informacji Mamy monetę, która ma nierówne prawdopodobieństwa: P(V=0) = 0.2 P(V=1) =0.8 (V - zmienna z rozkładu Bernouliego) Jak bardzo się zdziwimy, dowiadując się, że zmienna V ma jakąś konkretną wartość? bardziej zdziwieni będziemy widząc wartość mniej prawdopodobną jeśli wynik zawsze byłby 1 to jaka powinna być wartość funkcji mierzącej nasze zdziwienie? (0) jeśli otrzymalibyśmy wynik niemożliwy, to nasze zdziwienie powinno być nieskończone

Te warunki spełnia: Entropia Entropia to średnie zdziwienie (wartość oczekiwana zdziwienia) Entropia może być miarą niepewności Dla zmiennej z rozkładu Bernouliego entropia wygląda tak: https://www.wolframalpha.com/input/?i=plot+-p*log2(p)+-+(1-p)*log2(1-p),+p+from+0+to+1 Ważne jest to, że kształt wykresu entropii od P jest gładką funkcją wypukłą i ma gdzieś maksimum (inna funkcja o podobnych własnościach to np GINI - używana przez statystyków:, gdzie k to klasa) Informacja wzajemna (Mutual information) Informacja wzajemna pomiędzy dwiema zmiennymi losowymi to redukcja entropii jednej z nich (A) kiedy poznamy drugą (B): Innymi mierzy ona nam redukcję niepewności o przynależności do klasy jeśli znamy jedną z cech. informacja wzajemna jest dobrą miarą do wskazania, którą z cech należy użyć w danym kroku konstrukcji drzewa, bo użycie tej cechy, która ma największa informacje wzajemną z klasami najbardziej zredukuje naszą niepewność. można łatwo na obrazku pokazać że funkcja o takim kształcie jak entropia (wykres Entropia(P) ) - ze względu na jej wypukły kształt podział zbioru na dwie części zawsze obniża średnią entropię. Uczenie drzewa z wartościami, które nie są 0/1 Wiele wartości dyskretnych można wykonać podział zamiast na dwa liście to na tyle ile jest wartości można po kolei przetestować podział względem każdej z wartości po kolei grupując wartości

na mniejsze i większe niż pewna wartość dla wartości ciągłych -> wybór progu można oprzeć na przetestowaniu jako możliwego progu każdej z obserwacji w zbiorze uczącym. Problem parzystości rozróżnienie między tym co można reprezentować, a tym co można nauczyć konkretnym algorytmem funkcja parzystości = jak wiele bitów jest 1? czy to jest liczba parzysta czy nie? np. dla 6-cio bitowych wektorów: [0 1 0 1 1 0] -> nieparzysty ; [0 1 0 1 1 1] -> parzysty algorytmy drzewiaste nieźle radzą sobie jeśli przestrzeń cech posiada duże obszary należące do danej klasy -> wtedy podziały kolejnymi płaszczyznami są efektywne problemem są odwzorowania wymagające bardzo dużo podziałów gdyby mieć właściwą reprezentację danych zadanie z parzystością jest trywialne Uczenie z wielowartościowymi cechami kiepskie są cechy o takich wartościach, że są unikalne dla pojedynczych przykładów w zbiorze uczącym (np. NIP) -> nie ma wtedy generalizacji Taka cecha niesie ze sobą sama w sobie bardzo dużo informacji o przykładzie, ale podział zbiory względem tej klasy niekoniecznie musi dawać wiele informacji Uczenie z brakującymi wartościami nie zawsze jest tak dobrze, że znamy wartości wszystkich cech dla wszystkich przykładów w ciągu uczącym, (ale dla wszystkich znamy ich klasy). Załóżmy że w przykładzie i-tym brakuje wartości dla cechy A. W węźle n-tym drzewa trzeba testować wartość A: dla brakującej cechy można wymusić jakąś wartość np. najbardziej prawdopodobną w całym zbiorze danych nieco lepiej jest wymusić wartość najbardziej prawdopodobną dla klasy do której należy przykład i-ty w pewnym sensie przy dojściu do takiego niepewnego węzła, dla którego brakuje nam danych możemy rozmnożyć ten przykład proporcjonalnie do częstości występowania różnych wartości brakującej cechy w danej klasie. Tzn. załóżmy, że A przyjmuje wartości z prawdopodobieństwem. W dół drzewa wysyłamy frakcje tego przykładu wynoszące w czasie klasyfikacji po dojściu do liści, patrzymy jak dużo mamy głosów na daną klasę. Problem przeuczenia/ nadmiernego dopasowania Nadmierne dopasowanie mamy wtedy gdy dopasowana przez nas hipoteza h dobrze pasuje do danych treningowych ale ma złą generalizację, tzn. można by było wymyślić lepszą hipotezę h, która może na naszym zbiorze treningowym jest porównywalna z h ale na pełnej przestrzeni cech h jest lepsza. diagnostyka -> musimy podzielić zbiór uczący na treningowy i testowy i patrzeć jak zachowują

się miary jakości (np. dokładność ) wraz ze wzrostem skomplikowania drzewa można też sprawdzać czy dołożenie podziału najlepszej cechy faktycznie zmienia rozkład klas co tu znaczy rozkład klas? - w przypadku binarnym czy po podziale w podzbiorze lewym i prawym proporcja pomiędzy klasą 0 i klasą 1 jest istotnie różna do tej proporcji przed podziałem. Na skutek podziałów dążymy do tego żeby np. z lewej wytworzyć same 0 a z prawej same 1)(pre-puning) tak jak w innych technikach wzrost skomplikowania hipotezy prowadzi do coraz lepszego dopasowania na zbiorze treningowym, ale powyżej pewnego progu na zbiorze testowym dopasowanie zaczyna się pogarszać. Przycinanie drzew post-prune: wyucz drzewo na zbiorze treningowym. Korzystając ze zbioru testowego znajdź te węzły, których usunięcie (wraz ze wszystkimi dalszymi gałęziami) najmniej popsuje wynik(np. dokładność), postępuj tak długo jak długo miara jakość na zbiorze testowym się poprawia (wycinamy gałęzie stanowiące dopasowanie do szczegółów zbioru treningowego) wprowadzenie czynnika każącego za stopień skomplikowania drzewa do funkcji mierzącej poprawę dopasowania (regularyzacja) Rule Post pruning zamiast wycinać gałęzie po prostu, są one zamieniane w zestaw zasad zasady to zwinięte warunki logiczne. tzn drzewo ma w każdym węźle formułkę if A<\theta then left, zasada to zwinięcie tych wszystkich węzłów prowadzących do jednego liścia w jeden warunek logiczny połączony and np. if A<\theta_1 & B> theta_2 & C<theta_3 then klasa =0 mamy tyle zasad ile liści można potem usuwać te których usunięcie powoduje wzrost dokładności na zbiorze testowym zasady można ułożyć w kolejności od największej do najmniejszej dokładności i wzg. przekrycia tzn. jak wiele przypadków z ciągu uczącego dana reguła obejmuje Skalowanie algorytmy wymagające losowego dostępu do danych-> dane powinny mieścić się w pamięci algorytmy wymagające sekwencyjnego dostępu do danych, po każdym przejściu przez dane aktualizujemy model: dane mogą byś zapisane na dysku (SPRINT, SLIQ) algorytmy działające na strumieniu danych. Założenie jest takie, że algorytm może skorzystać z danych tylko raz (VFDT - very fast decision tree).