Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Klasyfikacja i predykcja. Odkrywaniem reguł klasyfikacji nazywamy proces znajdowania modeli (lub funkcji) klasyfikacji umożliwiających określenie klasy, do której powinien należeć wskazany obiekt.. Model klasyfikacji budowany jest w wyniku analizy zbioru danych treningowych, tj. zbioru obiektów o znanej przynależności klasowej.. Model klasyfikacji może być reprezentowany za pomocą: reguł o postaci IF_THEN, drzew decyzyjnych (klasyfikacyjnych), sieci neuronowych, innych... decyzyjne decyzyjne Klasyfikacja. Klasyfikacja danych jest procesem dwuetapowym.. W pierwszym kroku budowany jest model opisujący zadany zbiór danych (treningowy zbiór danych, np. jako tabela relacyjnej bazy danych) składający się ze zbioru obiektów (krotek) opisanych za pomocą atrybutów.. Jeden z atrybutów jest atrybutem klasyfikującym (predykcyjnym) i jego wartości określają etykiety klas, do których należą obiekty. Pozostałe to atrybuty opisowe (deskrypcyjne). Obiekty tworzące zbiór treningowy wybierane są losowo z pewnej populacji.. Ten etap klasyfikacji nazywany jest też uczeniem z nadzorem, gdyż podana jest klasyfikacja każdego obiektu (przykładem nauczania bez nadzoru jest tworzenie skupień, clustering) decyzyjne Klasyfikacja (c.d.). Utworzony model klasyfikacji reprezentowany jest w postaci: reguł klasyfikacji, drzew decyzyjnych, formuł matematycznych.. Przykład: mając bazę danych z informacjami o osobach (wiek, wykształcenie, dochód, pochodzenie społeczne) można utworzyć reguły klasyfikacyjne istotne dla biur turystycznych (tzn. reguły określające, w jakiego rodzaju wycieczkach osoby te byłyby skłonne uczestniczyć).. Podstawą utworzenia tych reguł jest analiza dotychczas znanych przypadków opisujących zachowanie się klientów. Przypadki te tworzą zbiór treningowy (uczący).. Reguły mogą być wykorzystane do klasyfikacji przyszłych przypadków, jak również do lepszego zrozumienia zawartości bazy danych. decyzyjne
Klasyfikacja (c.d.). Utworzony model jest następnie używany do klasyfikacji.. Najpierw oceniana jest dokładność modelu (klasyfikatora). W tym celu posługujemy się zbiorem testowym, który wybrany jest losowo i jest niezależny od zbioru treningowego.. Dokładność modelu na zadanym zbiorze testowym określona jest przez procentową liczbę trafnych klasyfikacji, tzn. jaki procent przypadków testowych został prawidłowo zaklasyfikowany za pomocą modelu. Dla każdego przypadku możemy porównać znaną etykietę klasy z etykietą przypisaną przez model.. Jeśli dokładność modelu została oceniona jako wystarczająca, model można użyć do klasyfikacji przyszłych przypadków (obiektów) o nieznanej etykiecie klasy. decyzyjne Klasyfikacja i predykcja. W czym predykcja różni się od klasyfikacji?. Predykcja (przewidywanie) może być rozumiana jako wykorzystanie modelu do oszacowania (obliczenia) wartości (lub przedziału wartości), jaką z dużym prawdopodobieństwem może mieć atrybut analizowanego obiektu. Wartością tego atrybutu może być w szczególności etykieta klasy.. Z tego punktu widzenia klasyfikacja i regresja są dwoma głównymi rodzajami problemów predykcyjnych; przy czym klasyfikacja jest używana do przewidzenia wartości dyskretnych lub nominalnych, a regresja do oszacowania wartości ciągłych lub uporządkowanych.. Umowa: przewidywanie etykiet klas klasyfikacja, przewidywanie wartości ciągłych (technikami regresji) predykacja. decyzyjne 6 Klasyfikacja i predykcja zastosowania Klasyfikacja i predykcja mają wiele zastosowań, na przykład: akceptacja udzielenia kredytu, diagnostyka medyczna, przewidywanie wydajności, selektywny marketing, inne decyzyjne 7 Klasyfikacja za pomocą drzew decyzyjnych. Drzewo decyzyjne jest diagramem przepływu o strukturze drzewa, gdzie każdy wierzchołek wewnętrzny oznacza testowanie atrybutu, każda krawędź reprezentuje wyjście z testu (wartość lub zbiór wartości atrybutu), a każdy liść reprezentuje klasę.. W celu sklasyfikowania nieznanego obiektu wartości jego atrybutów testowane są zgodnie z informacją zawartą w drzewie decyzyjnym.. W procesie testowania przechodzimy ścieżkę w drzewie od korzenia do jednego z liści w ten sposób określana jest klasa, do której zostanie zaklasyfikowany obiekt.. Drzewa decyzyjne mogą być łatwo przekształcone w reguły klasyfikacyjne. decyzyjne
Zbiór r treningowy danych o klientach Budowa drzewa decyzyjnego pierwszy poziom: atrybut Wiek decyzyjne 9 decyzyjne Budowa drzewa decyzyjnego drugi poziom: atrybuty Studia i OcenaKred Budowa drzewa decyzyjnego ostateczna postać decyzyjne decyzyjne
Drzewo decyzyjne inna kolejność testowania atrybutów Drzewa decyzyjne klasyfikujące dane treningowe dwa warianty decyzyjne decyzyjne Budowa drzewa decyzyjnego podstawy teorii informacji Charakterystyka zbioru treningowego S - zbiór złożony z s obiektów (zbiór treningowy), s = m liczba klas, do których klasyfikowane są obiekty; etykiety klas określone są przez atrybut "ZakupKomp", który przyjmuje dwie wartości: TAK, NIE; m = C -klasatak, C -klasanie s - liczba obiektów w C, s - liczba obiektów w C, s = 9, s = p i - prawdopodobieństwo, że losowo wybrany obiekt należy do klasy C i, < p i <, p + p = E(p, p ) - oczekiwana informacja potrzebna do klasyfikacji danego obiektu (entropia układu): E(p,...,p n ) = p *log (p ) p log (p ), I(9/, /) =.9 decyzyjne Entropia układu Niech danych będzie układ złożony z jednoelementowych klas. Entropia tego układu wyraża się wzorem: Entr(,,,,,,,) = log = i oznacza średnią ilość informacji (bitów informacji), jaka jest potrzebna, aby zadany element zaklasyfikować do jednej z tych klas. (Argumenty funkcji Entr oznaczają liczbę elementów w zbiorach tworzących układ). > > > > {} {} {} {} {} {} {6} {7} > > >6 6
> Entropia układu > > > {} {} {} {} {} {} {6} {7} > > >6 Komunikat, że obiekt należy do klasy {i} niesie w sobie (zawiera, przekazuje) bity informacji. Prawdopodobieństwo wyboru klasy {i} wynosi /. Zatem średnia ważona (entropia) całego układu, a więc średnia ilość informacji (bitów informacji) przekazywana w komunikacie, że obiekt należy do klasy {i} jest równa ilości informacji potrzebnej do zaklasyfikowania obiektu do klasy {i} wyraża się wzorem: Entr( Entropia układu Dla rozważanego przykładu utwórzmy klasy -elementowe. Wówczas: {,} {,} {,} {6,7},,,,,,, ) = log = log = Entr(,,, ) = log = log = 7 > > > Komunikat, że obiekt należy do określonej klasy niesie: log / = bity informacji. Prawdopodobieństwo wyboru każdej klasy wynosi /. Zatem entropia układu, a więc średnia ilość informacji (bitów informacji) potrzebnej do zaklasyfikowania obiektu do klasy wyraża się wzorem: Entropia układu Utwórzmy teraz klasy, które zawierają odpowiednio:, i elementów. Zauważmy, że wówczas: ilość informacji potrzebnej do zaklasyfikowania obiektu do każdej z tych klas wynosi odpowiednio: log =, log =, log / =,67 prawdopodobieństwo, że obiekt zaklasyfikowany zostanie do każdej z grup wynosi odpowiednio: /, /, / entropia tego układu (średnia ilość informacji potrzebna do zaklasyfikowania obiektu do klasy) jest więc równa: Entr (,, ) = log + log + log =, {} {, } {,,, 6, 7} 9 Entropia dla przykładowych układ adów Entropia dla trzech klas zawierających elementów Klasa Klasa Klasa Entropia,,,7 9,,9 7, 6,, 7, 6,9, 6,,, E( p, p, p ) = pi log pi (Argumentami funkcji E są prawdopodobieństwa przynależności elementów do poszczególnych zbiorów tworzących układ.) 7 6 9
Entropia podsumowanie. Entropia układu jednostkowego złożonego ze zbioru A o prawdopodobieństwie p: E(p) = log (p). Entropia układu jednostkowego złożonego ze zbioru o prawdopodobieństwie jest równa E() =. Entropia układu jednostkowego złożonego ze zbioru będącego sumą zbiorów rozłącznych o prawdopodobieństwach odpowiednio p A i p B, jest równa entropii układu jednostkowego złożonego ze zbioru o prawdopodobieństwie p A + p B : E(p A B ) = E(p A + p B ). Entropia układu złożonego z n zbiorów o prawdopodobieństwach odpowiednio p,, p n, jest średnią ważoną entropii n układów jednostkowych złożonych z każdego z tych zbiorów: E(p,,p n ) = (p E(p ) + + p n E(p n )) Analiza informacyjna miara ilości informacji s s p p I(s,s) h=log(n/s;),,,7,96,7,7,,,9,7,97,7,,,,77,796,,,,7,7,6,7, 9,,7,69,9, 6,,,6,7,9, 7, 7,,,,,, 6,,7,6,9,7 9,,,69,7,9,67,,,7,7,6,,,,77,,796,79,,,7,9,97,,,,96,7,7,69,,,,,, h = log (N/s) = log (/p) = -log (p) wysokość binarnego drzewa poszukiwań obiektu, = ilość bitów informacji potrzebna do klasyfikacji obiektu do klasy o prawdopodob. p, = ilość informacji, jaką posiadamy wiedząc, że obiekt należy do klasy o prawdop. p, I(s, s ) = średnia ważona klasyfikacji obiektu do jednej z dwóch klas (entropia układu!) Entropia: Entropia miara ilości informacji m E( p,...,pm ) = pi log. Powyższy wzór wyraża entropię układu składającego się z m rozłącznych klas (podzbiorów): C, C,..., C m o liczebnościach, odpowiednio s,, s m ; s + + s m = s.. Prawdopodobieństwo zaklasyfikowania obiektu do klasy C i wynosi p i, p i = s i /s, < p i <, i =,,..., m.. Wzór wyraża oczekiwaną ilość informacji potrzebną do zaklasyfikowania podanego obiektu do jednej z klas.. Entropia osiąga wartość maksymalną przy jednakowym rozkładzie, tj. gdy klasy są jednakowo prawdopodobne, tej samej wielkości.. Im większe zróżnicowanie układy tym mniejsza entropia. p i Ocena informacyjna ważno ności atrybutów. W zadaniach eksploracji danych, a przede wszystkim w problemach klasyfikacji istotna jest analiza istotności atrybutów (attribute relevance analysis).. W wyniku tej analiza uzyskujemy uporządkowanie zbioru atrybutów od najbardziej do najmniej istotnych z punktu widzenia klasyfikacji obiektów do zadanych klas.. Atrybut jest tym bardziej istotny (z punktu widzenia klasyfikacji obiektów) im mniejsza jest jego entropia.. Wyniki analizy istotności atrybutów mają zastosowanie do charakterystyki opisowej i dyskryminacyjnej klas obiektów, a także podczas budowy drzew decyzyjnych. decyzyjne decyzyjne
Analiza istotności atrybutów w w zadaniach klasyfikacji S zbiór obiektów podzielony na m klas C,...,C m, gdzie s i oznacza liczbę obiektów w klasie C i, i =,...,m, a s liczbę wszystkich obiektów. Niech A będzie atrybutem opisującym obiekty ze zbioru S i niech {a,..., a n ) będzie zbiorem wartości atrybutu A. Niech s i,k liczba obiektów klasy i, dla których atrybut A ma wartość a k. Wówczas wartość a k atrybutu A wyznacza układ m klas określony za pomocą wektora liczebności tych klas: (s,k,,s m,k ) Entropię tego układu nazywamy entropią wartości a k atrybutu A EntrWartAtr( A,a ) = E( p,k,..., pm,k ) = p m log k i,k gdzie p i,k oznacza prawdopodobieństwo przynależności obiektu do klasy C i, gdy wartość atrybutu A tego obiektu jest równa a k, p i,k = s,k s i,k +... + s m,k p i, k, Analiza istotności atrybutów w w zadaniach klasyfikacji Entropią atrybutu A nazywamy średnią ważoną entropii wszystkich wartości tego atrybutu EntrAtr( A) = n k= w ( A)EntrWartAtr( A,a ), a k s,k +... + s wa k ( A) = s gdzie waga entropii wartości a k atrybutu A, w ak (A), jest równa prawdopodobieństwu tego, że wartość atrybutu A dla rozważanego zbioru obiektów jest równa a k. Za najbardziej istotny uważany jest ten atrybut, którego wartość entropii EntrAtr(A) względem podziału {C,...,Cm} jest najmniejsza. m,k, k 6 Budowa drzewa decyzyjnego wybór r atrybutu pierwszego poziomu Budowa drzewa decyzyjnego wybór r atrybutu pierwszego poziomu Zbiór treningowy: Ocena atrybutu Wiek: Zbiór treningowy: Ocena atrybutu Dochód: k = <=.. > sk =,,, sk =,,,,,, k = niski średni wysoki sk =,,, sk =,,,, 6,, C = nie, C = tak E(/, 9/) = (/*log (/) + 9/*log (9/)) =.9 EntrWartAtr(Wiek,<=) = = E(/, /) = (/*log (/) + /*log (/)) =.97 EntrWartAtr(Wiek,..) = E(/, /) = =. EntrWartAtr(Wiek,>) = E(/, /) =.97 w <= (Wiek) = /, w.. (Wiek) = /, w > (Wiek) = /, EntrAtr(Wiek) = w <= (Wiek) * EntrWartAtr (Wiek,<=) + + w.. (Wiek) * EntrWartAtr(Wiek,..) + + w > (Wiek) * EntrWartAtr(Wiek,>) =,69 C = nie, C = tak E(/, 9/) = (/*log (/) + 9/*log (9/)) =.9 EntWartAtr(Dochód, niski) = E(/,/) =. EntWartAtr(Dochód, średni) = E(/6,/6) =.9 EntWartAtr(Dochód, wysoki) = E(/,/) =. w niski = /, w średni = 6/, w wysoki = /, EntrAtr(Dochód) = = w niski * EntWartAtr(Dochód, niski) + w średni * EntWartAtr(Dochód, średni) + w wysoki * EntWartAtr(Dochód, wysoki) =.9 7
Budowa drzewa decyzyjnego wybór r atrybutu pierwszego poziomu Budowa drzewa decyzyjnego wybór r atrybutu pierwszego poziomu Zbiór treningowy: Ocena atrybutu Studia: k = tak nie sk =,, sk = 6,, 7, 7, Zbiór treningowy: Ocena atrybutu OcenaKred: k = dobra znakomita sk =,, sk = 6,,, 6, EntWartAtr(Studia, tak) = E(/7,6/7) =.97 EntWartAtr(Studia, nie) = E(/7,/7) =.9 EntrWartAtr(OcenaKred,dobra) =. EntrWartAtr(OcenaKred,znakomita) =. C = nie, C = tak E(/, 9/) = (/*log (/) + 9/*log (9/)) =.9 w tak = 7/, w nie = 7/, EntrAtr(Studia) = = w tak * EntWartAtr(Studia, tak) + w nie * EntWartAtr(Studia, nie) =.7 decyzyjne 9 C = nie, C = tak E(/, 9/) = (/*log (/) + 9/*log (9/)) =.9 w dobra = /, w znakomita = 6/, EntrAtr(OcenaKred) = = w dobra * E(/, 6/) + w znakomita * E(/6, /6) =.9 Analiza istotności atrybutów podsumowanie Wiek: EntrAtr(Wiek) =,69 k = <=.. > sk =,,, sk =,,,,,, Dochód: EntrAtr(Dochód) =.9 k = niski średni wysoki sk =,,, sk =,,,, 6,, Studia: EntrAtr(Studia) =.7 k = tak nie sk =,, sk = 6,, 7, 7, OcenaKred: EntrAtr(OcenaKred) =.9 k = dobra znakomita sk =,, sk = 6,,, 6, Analiza istotności atrybutów wykazała, że z punktu widzenia klasyfikacji związanej z rozważanym zbiorem treningowym, najbardziej istotny jest atrybut Wiek. Atrybut ten powinien więc być jako pierwszy brany pod uwagę przy budowie drzewa decyzyjnego. Wiedza o wartości atrybutu Wiek najbardziej pomaga w procesie klasyfikacji. Ma on właściwość największego różnicowania obiektów z punktu widzenia rozważanego zadania klasyfikacji. Algorytm ID: Decision_tree(S, U). Wejście: S zbiór treningowy obiektów; U zbiór atrybutów o dyskretnych wartościach opisujących obiekty z S. Wyjście: Drzewo decyzyjne. Kroki:. Utwórz wierzchołek N;. if wszystkie obiekty z S należą tej samej klasy C then return liść N z etykietą C; stop;. if U jest pusty then return liść etykietowany najczęstszą klasą w S; stop;. A atrybut z U o najmniejszej entropii (największym zysku informacji); wierzchołkowi N przypisz etykietę A;. for each wartości a atrybutu A begin a) utwórz krawędź wychodzącą z N dla warunku A = a; b) niech S będzie zbiorem obiektów w zbiorze S, dla których A = a; c) końcem krawędzi jest wierzchołek zwrócony przez Decision_tree(S, U {A}) end;