Metody klasyfikacji danych - część 1 Inteligentne Usługi Informacyjne Jerzy Dembski Metody klasyfikacji danych - część 1 p.1/24
Plan wykładu - Zadanie klasyfikacji danych - Przeglad problemów klasyfikacji - Przeglad metod klasyfikacji - Metody uczenia klasyfikatorów - Uczenie a uogólnianie - Selekcja cech obiektów Metody klasyfikacji danych - część 1 p.2/24
Klasyfikacja punktów na płaszczyźnie o o o o o o Metody klasyfikacji danych - część 1 p.3/24
Klasyfikacja punktów na płaszczyźnie - granica decyzji o o o o o o Metody klasyfikacji danych - część 1 p.4/24
Klasyfikacja punktów na płaszczyźnie - problem XOR o o 1 2 klasa 0 0 0 0 1 1 1 0 1 1 1 0 Metody klasyfikacji danych - część 1 p.5/24
Klasyfikacja punktów na płaszczyźnie - problem XOR o o Metody klasyfikacji danych - część 1 p.6/24
Przegląd problemów klasyfikacji Klasyfikacja punktów na płaszczyźnie dwuwymiarowej Klasyfikacja rekordów bazodanowych o wartościach dyskretnych (przypisywanie soczewek kontaktowych (lenses), klasyfikacja samochodów (car) Klasyfikacja tekstów (treść, opinia, autorstwo) Detekcja i rozpoznawanie obrazów graficznych (twarze, znaki pisane, znaki drogowe, itd.) Klasyfikacja dźwięków (rozpoznawanie utworów muzycznych, rozpoznawanie mowy) Metody klasyfikacji danych - część 1 p.7/24
Podstawowe pojęcia Funkcja klasyfikacji f() przypisuje numer klasy każdemu wektorowi obserwacji. Funkcję f() można uzyskać droga heurystyczna, wykorzystujac wiedzę eksperta lub metoda uczenia klasyfikatora na podstawie zbioru przykładów uczacych. Klasyfikatorem jest algorytm przypisujacy numer klasy każdemu wektorowi obserwacji, reprezentujacy funkcję f(). Zadanie klasyfikacyjne polega na szukaniu funkcji klasyfikacji na podstawie wektorów obserwacji. Elementami zbioru przykładów z, sa pary złożone z wektora obserwacji charakteryzujacego obiekt (obrazu, wektora cech, wektora atrybutów) i oraz klasy (kategorii) do której dany obiekt jest przypisany d i : z = {( 1,d 1 ),( 2,d 2 )...( K,d K )}, i X R N, d i { C 1,C 2,...,C LC }, gdzie C 1,C 2,...,C LC sa etykietami klas, L C jest liczba klas obiektów. Poprawność klasyfikacji przykładów testowych dla danego klasyfikatora jest ilorazem liczby obrazów testowych poprawnie sklasyfikowanych przez dany klasyfikator i liczby wszystkich obrazów testowych. Metody klasyfikacji danych - część 1 p.8/24
Metody testowania klasyfikatorów pół na pół - połowa przykładów służy do uczenia klasyfikatora, połowa do testu (K u = K/2), cross validation najpierw pierwsza połowa do uczenia, druga do testu, a następnie na odwrót, wyniki uśrednione dla obu prób, 10 fold validation cały zbiór przykładów dzielony jest na 10 podzbiorów po K u = K/10 przykładów. Wyniki uśredniane sa po dziesięciu próbach. W każdej próbie jeden z podzbiorów służy do testu a pozostałych 9 do uczenia klasyfikatora, leave-one-out uczenie klasyfikatora odbywa się na podstawie Ku = K 1 przykładów natomiast testowanie na jednym przykładzie. Wyniki uśredniane sa po K epizodach (dla każdego przykładu do testu). Metody klasyfikacji danych - część 1 p.9/24
Przegląd metod klasyfikacji Klasyfikator większościowy (trywialny) Klasyfikator najbliższego sasiada (NS) Klasyfikator najbliższego centrum (NC) Klasyfikator bayesowski (KB) Wektory dyskryminacyjne Fishera (WDF) Drzewa decyzyjne (DD) AdaBoost (AB) Metoda wektorów wspierajacych (SVM) Sztuczne sieci neuronowe (SNN) Głębokie uczenie - Deep Learning (DL) Metody klasyfikacji danych - część 1 p.10/24
Drzewa decyzyjne - problem doboru soczewek indeks wartości zmiennej opis zmiennej/klasy 1 2 3 1 wiek pacjenta młody pre-presbyopia presbyopia 2 rodzaj wady bliskowzroczność dalekowzroczność 3 astygmatyzm nie tak 4 produkcja łez zredukowana w normie klasa typ soczewek brak miękkie twarde Metody klasyfikacji danych - część 1 p.11/24
Drzewa decyzyjne - problem doboru soczewek Lp 1 2 3 4 klasa 1 1 1 2 1 1 2 1 1 2 2 3 3 1 2 1 1 1 4 1 2 1 2 2 5 2 1 1 1 1 6 2 1 2 1 1 7 2 2 1 1 1 8 2 2 1 2 2 9 2 2 2 2 1 10 3 1 1 1 1 11 3 2 1 1 1 12 3 2 2 1 1 Metody klasyfikacji danych - część 1 p.12/24
Drzewa decyzyjne - algorytm tworzący węzeł function twórz_węzeł(lista_zmiennych, zbiór_przykładów) if wszystkie przykłady ze zbioru sa tej samej klasy C then return liść_klasy_c; else znajdź zmienna m o maksymalnym zysku informacyjnym; for i = 1 to liczba_wartości_zmiennej_ m podzbiór_przykl wybierz przykłady, dla których m = i; lista_zmiennych lista_zmiennych - { m }; drzewo.gałaź_i twórz_węzeł(lista_zmiennych, podzbiór_przykl); endfor return drzewo; endif Metody klasyfikacji danych - część 1 p.13/24
Drzewa decyzyjne - początkowa entropia Poczatkowa entropia zbioru przykładów z jest obliczana jako entropia rozkładu klas obiektów: E(z) = L C i=1 P(d = C i )log 2 P(d = C i ), gdzie d jest numerem klasy przykładu. W przypadku nieznajomości prawdopodobieństw przynależności obrazu do każdej z klas P(d = C i ), gdzie C i numer i-tej klasy, prawdopodobieństwa można zastapić częstościami: E(z) = L C ( Ki i=1 K ) log 2 ( Ki K ), Dla danych do klasyfikacji soczewek entropia poczatkowa wynosi: E(z) = 9 ( ) 9 12 log 2 2 ( ) 2 12 12 log 2 12 1 ( ) 1 12 log 2 12 = 1,0409. Metody klasyfikacji danych - część 1 p.14/24
Drzewa decyzyjne - zysk informacyjny Różnica pomiędzy entropia rozkładu klas a średnia entropia rozkładu klas dla podzbiorów przykładów ważona względem prawdopodobieństwa wystapienia poszczególnych wartości zmiennej i (liczności podzbiorów) stanowi tzw. zysk informacyjny zwiazany z wyborem zmiennej i do podziału zbioru przykładów: Zysk(z, i ) = E(z) v K( i = v) E(z i = v), K gdzie K( i = v) jest liczba przykładów, dla których zmienna i przyjmuje wartość v, natomiast E(z i = v) jest entropia rozkładu klas dla podzbioru przykładów ze zbioru z, dla których wartość zmiennej i wynosi v. Metody klasyfikacji danych - część 1 p.15/24
Drzewa decyzyjne - zysk informacyjny Dla danych do klasyfikacji soczewek zysk informacyjny dla zmiennej 1 oblicza się w następujacy sposób: Zysk(z, 1 ) = E(z) v K( i = v) E(z 1 = v) = K = E(z) K( i = 1) E(z 1 = 1) K( i = 2) E(z 1 = 2) K K K( i = 3) E(z 1 = 3) = K = 1,0409 4 [ 2 ( ) 2 12 4 log 2 1 ( ) 1 4 4 log 2 1 ( )] 1 4 4 log 2 4 [ 5 4 ( ) 4 12 5 log 2 1 ( )] 1 5 5 log 2 3 [ 3 ( )] 3 5 12 3 log 2 = 3 = 0, 2401. Dla zmiennych 2, 3 i 4 wynosi odpowiednio 0,2366; 0,2366 oraz 0,5409. Metody klasyfikacji danych - część 1 p.16/24
Drzewa decyzyjne - podział zbioru przykładów 4 4 = 1 4 = 2 Lp 1 2 3 klasa 1 1 1 2 1 3 1 2 1 1 5 2 1 1 1 6 2 1 2 1 7 2 2 1 1 10 3 1 1 1 11 3 2 1 1 12 3 2 2 1 Lp 1 2 3 klasa 2 1 1 2 3 4 1 2 1 2 8 2 2 1 2 9 2 2 2 1 Metody klasyfikacji danych - część 1 p.17/24
Kompletne drzewo oraz zestaw reguł 4 4 = 1 4 = 2 klasa 1 3 3 = 1 3 = 2 klasa 2 1 1 = 1 1 = 2 klasa 3 klasa 1 jeśli produkcja łez jest zredukowana to soczewki nie sa polecane jeśli produkcja łez jest w normie i brak astygmatyzmu to soczewki miękkie jeśli produkcja łez jest w normie i jest astygmatyzm i wiek młody to soczewki twarde jeśli produkcja łez jest w normie i jest astygmatyzm i wiek pre-presbyopia to soczewki nie sa polecane Metody klasyfikacji danych - część 1 p.18/24
Ciągłe wartości zmiennych - metody postępowania Dyskretyzacja zmiennych podział dziedziny wartości każdej ze zmiennych ciagłych na pewna liczbę podprzedziałów tak, by można było zastosować dowolny algorytm budowy dla wartości dyskretnych np. ID3, Zastosowanie specjalizowanych algorytmów budowy drzew np. CART. Metody klasyfikacji danych - część 1 p.19/24
CART: Tworzenie węzła w przypadku ciągłych wartości zmiennych function twórz_węzeł(zbiór_przykładów) if wszystkie przykłady ze zbioru sa tej samej klasy C then return liść_klasy_c; else for i = 1 to liczba zmiennych sortuj przykłady względem wartości zmiennej i ; ustal wartości graniczne gr 1,gr 2,...,gr K 1 pomiędzy każda para sasiednich przykładów na liście posortowanej, gdzie K jest liczba przykładów wchodzacych do węzła; endfor znajdź zmienna m wraz z granica podziału gr k o maksymalnym zysku informacyjnym; podzbiór_przykl_1 wybierz przykłady, dla których m gr k ; drzewo.lewa_gałaź twórz_węzeł(podzbiór_przykl_1); podzbiór_przykl_2 wybierz przykłady, dla których m > gr k ; drzewo.prawa_gałaź twórz_węzeł(podzbiór_przykl_2); return drzewo; endif Metody klasyfikacji danych - część 1 p.20/24
Przykładowe drzewo dla problemu o ciągłych wartościach zmiennych 16 14 12 nie 2 >3,5 tak 2 10 8 6 4 2 0 0 5 10 15 1 klasa 1 klasa 2 nie klasa 1 klasa 2 2 >13,5 nie klasa 1 1 >7,5 nie 1 >4,5 nie tak 1 >9,5 tak klasa 2 klasa 1 tak 2 >10 2 >7 nie tak nie tak tak klasa 2 klasa 2 klasa 1 Metody klasyfikacji danych - część 1 p.21/24
Uczenie a uogólnianie (generalizacja) b³¹d b³¹d b³¹d uogólniania b³¹d uogólniania b³¹d uczenia b³¹d uczenia liczba przyk³adów ucz¹cych przy ustalonej z³o onoœci aproksymatora z³o onoœæ optymalna z³o onoœæ aproksymatora przy ustalonej liczbie przyk³adów ucz¹cych Metody klasyfikacji danych - część 1 p.22/24
Wykres błędu klasyfikacji dla problemu car 0.35 0.3 b³¹d uczenia b³¹d testu (walidacji) 0.25 b³¹d 0.2 0.15 0.1 0.05 0 0 20 40 60 80 100 liczba wêz³ow drzewa Metody klasyfikacji danych - część 1 p.23/24
Drzewa decyzyjne: metody poprawy uogólniania Przycinanie heurystyczne np. na stała głębokość lub w zależności od liczby przykładów dochodzacych do węzła nieterminalnego. Gdy liczba ta jest poniżej progu, węzeł jest zamieniany na liść klasy najliczniej reprezentowanej przez przykłady, które do niego dochodza. Przycinanie w oparciu o zbiór przykładów do walidacji: węzeł jest zamieniany na liść lub na jeden z węzłów potomnych, gdy pozwala zmniejszyć bład walidacji. Wada tego rozwiazania jest konieczność zmniejszenia zbioru przykładów do budowy drzewa. Komitet klasyfikatorów - drzew zbudowanych na losowych podzbiorach przykładów do uczenia (random forests). Metody klasyfikacji danych - część 1 p.24/24