Drzewa decyzyjne marcin.mazurek@wat.edu.pl 2006 Klasyfikacja Czynność podziaÅ‚u zbioru na podzbiory nazwane klasami. PodziaÅ‚em zbioru X nazywa siÄ™ każdy zupeÅ‚ny i rozÅ‚Ä…czny ukÅ‚ad podzbiorów tego zbioru. W wyniku klasyfikacji okreÅ›lamy nieznanÄ… wartość pewnego atrybutu obiektu, przyjmujÄ…cego skoÅ„czonÄ… liczbÄ™ wartoÅ›ci. Drzewo decyzyjne Drzewo decyzyjne jest to drzewo, w którym: wÄ™zÅ‚y nie bÄ™dÄ…ce liśćmi odpowiadajÄ… atrybutom gaÅ‚Ä™zie wychodzÄ…ce z takiego wÄ™zÅ‚a odpowiadajÄ… wartoÅ›ciom tego atrybutu. liÅ›cie odpowiadajÄ… wartoÅ›ciom zmiennej decyzyjnej (atrybutu klasyfikujÄ…cego) Zasady konstrukcji drzewa decyzyjnego 1. Punktem wyjÅ›cia jest korzeÅ„ drzewa, któremu odpowiada ciÄ…g uczÄ…cy T, w którym znajdujÄ… siÄ™ obserwacje, z których każda opisane jest atrybutami i zaklasyfikowana jest do jednej z klas na podstawie pewnego wyróżnionego atrybutu (zmiennej klasyfikujÄ…cej, decyzyjnej). 2. Konstrukcja drzewa opiera siÄ™ na nastÄ™pujÄ…cej procedurze powtarzanej rekurencyjnie dla każdego wÄ™zÅ‚a poczÄ…wszy od korzenia: " CiÄ…g danych uczÄ…cych T zawierajÄ…cy przynajmniej jeden element, przy czym wszystkie elementy należą do tej samej klasy Cj. Drzewo decyzyjne dla T jest liÅ›ciem wskazujÄ…cym na kategoriÄ™ Cj. " CiÄ…g uczÄ…cy T nie zawiera żadnych elementów podobnie jak w punkcie poprzednim, drzewo dla T jest liÅ›ciem jednak zwiÄ…zany jest z klasÄ… wyznaczonÄ… na podstawie poprzednika " T zawiera elementy należące do różnych klas. PodziaÅ‚ T na takie podzbiory, by wszystkie elementy w ramach podzbioru należaÅ‚y do tej samej klasy (podzbiory powinny być możliwie jednorodne). W oparciu o pojedynczy wybrany atrybut, przeprowadzany jest test, który powoduje podziaÅ‚ na rozÅ‚Ä…czne podzbiory. Drzewo decyzyjne dla T jest wÄ™zÅ‚em zawierajÄ…cym test i jednÄ… gaÅ‚Ä…z dla każdego wyniku testu. 3. Po zakoÅ„czeniu procedury generowania wÄ™złów drzewa, może opcjonalnie nastÄ…pić przycinanie drzewa (zastÄ…pienie caÅ‚ego poddrzewa pojedynczym liÅ›ciem). Algorytmy budowy drzew Elementy algorytmów budowania drzewa decyzyjnego: kryterium wyboru atrybutu używanego jako test w wÄ™zle drzewa wyznaczenie wartoÅ›ci atrybutów dla gaÅ‚Ä™zi wychodzÄ…cych z wÄ™zÅ‚a (rzÄ…d drzewa) PrzykÅ‚adowe algorytmy ID3 (Quinlan) C4.5 (Quinlan) rozszerzenie ID3 o brakujÄ…ce wartoÅ›ci, atrybuty ciÄ…gÅ‚e, obcinanie drzewa) CART (Classification And Regression Trees) drzewo binarne. CHAID (Chi-squared Automatic Interaction Detector, 1980), Wybór atrybutu testowego dla wÄ™zÅ‚a T zbiór uczÄ…cy, w którym każda obserwacja zaklasyfikowana jest wedÅ‚ug wartoÅ›ci atrybutu C do jednej z k klas {C1, C2 ... Ck } Entropia zbioru S: k freq (Ci ,T ) freq (Ci ,T ) Info (T ) = - log " 2 T T i=1 T1, T2...Tn - rozÅ‚Ä…czne podzbiory zbioru T, utworzone na podstawie pewnego testu t. Test jest oparty o wartoÅ›ci atrybutu X. Entropia zbioru przykÅ‚adów ze wzglÄ™du na wynik r testu t jest definiowana jako ważona entropia dla poszczególnych wyników testu: n Tr Info (T ) = Å" Info (Ti ) , x " T r =1 Przyrost informacji wynikajÄ…cy z zastosowania testu opartego na wartoÅ›ciach atrybutu X do zbioru przykÅ‚adów: Gain(X) = Info(T) - Infox(T) Jako podstawÄ™ podziaÅ‚u zbioru obserwacji w wÄ™zle wybieramy ten atrybut, dla którego Gain(X) jest maksymalne. Inne kryteria wyboru testu Kryterium przyrostu informacji - tendencja do nieuzasadnionego preferowania testów o wielu możliwych wynikach. Współczynnik przyrostu informacji: n Ti Ti Split _ Info(T ) = log2 " T T i=1 Wartość mierzy równomierność, z jakÄ… test t dzieli zbiór uczÄ…cy na podzbiory. Jest ona duża jeÅ›li rozmiary podzbiorów wyznaczonych przez różne wyniki testu sÄ… zbliżone i maleje przy wyraznej przewadze niektórych podzbiorów nad innymi. Gain(X ) Gain _ ratio(X ) = Split _ Info(X ) Algorytm Id3 PodziaÅ‚ atrybuty ciÄ…gÅ‚e Zbiór wartoÅ›ci, które przyjmuje atrybut sortujemy {v1, v2,& vk} Rozważamy wszystkie (k-1) potencjalnych punktów podziaÅ‚u: {v1, v2,& vi} {vi+1, vi+2,& vk} Wybieramy tÄ… wartość podziaÅ‚u Z, dla którego kryterium przyrostu informacji jest najwiÄ™ksze. GaÅ‚Ä™zie opisane sÄ… nie pojedynczymi wartoÅ›ciami atrybutu, lecz podzbiorami wartoÅ›ci, wyznaczonymi przez punkt podziaÅ‚u Z. PrzykÅ‚ad Zbudować drzewo decyzyjne dla wyznaczania wartoÅ›ci atrybutu C w oparciu o wartoÅ›ci atrybutów A1, A2. CiÄ…g uczÄ…cy: A1 A2 C Y 1 C2 Y 2 C1 N 2 C2 N 2 C2 N 2 C1 A1 A2 C A1 A2 C A1 A2 C A1 A2 C A1 A2 C 2 2 3 3 2 3 ëÅ‚ Y 1 C2 Y 1 C2 Y 1 C2 Y 1 C2 Info(T) = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ = - Å"(-1,32) - Å"(-0,74) = 0,97 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ 5 5 5 5 5 5 Y 2 C1 Y 2 C1 Y 2 C1 Y 2 C1 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 2 3 InfoA1(T) = Å" Info(TA1='Y ') + Info(TA1='N ') N 2 C1 N 2 C1 N 2 C1 N 2 C1 5 5 N = 5 1 1 1 1 ëÅ‚ C1 2 (40%) Info(TA1='Y ') = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ =1 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ C2 3 (60%) 2 2 2 2 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ 2 2 1 1 2 1 ëÅ‚ Info(TA1='N ') = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ = - Å"(-0,59) - (-1,59) = 0,91 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ 3 3 3 3 3 3 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ 2 3 InfoA1(T) = Å"1+ Å"0,91 = 0,94 5 5 Gain(A1) = 0,97 - 0,94 = 0,03 1 4 InfoA2(T) = Å" Info(TA2=1) + Info(TA2=2) 5 5 1 1 1 1 ëÅ‚ Info(TA2=2) = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ =1 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ 2 2 2 2 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ Info(TA2=1) = 0 1 4 InfoA2(T) = Å"0 + Å"1 = 0,8 5 5 Gain(A2) = 0,97 - 0,8 = 0,18 PodziaÅ‚ nastÄ™puje ze wzglÄ™du na A2, gdyż Gain(A2) > Gain(A1) A1 A2 C A1 A2 C A1 A2 C A1 A2 C A1 A2 C Y 1 C2 Y 1 C2 Y 1 C2 Y 1 C2 Y 2 C1 Y 2 C1 Y 2 C1 Y 2 C1 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C1 N 2 C1 N 2 C1 N 2 C1 N = 5 C1 2 (40%) C2 3 (60%) A2 A2=2 A2=1 A1 A2 C A1 A2 C Y 2 C1 Y 1 C2 N 2 C2 N 2 C2 N 2 C1 N = 4 N = 1 C1 2 (50%) C1 0 (0%) C2 2 (50%) C2 1 (100%) A1 A2 C 1 1 1 1 ëÅ‚ Info(T ) = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ =1 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ Y 2 C1 2 2 2 2 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ N 2 C2 1 3 N 2 C2 InfoA1(T ) = Å" Info(TA1='Y ') + Info(TA1='N ') 4 4 N 2 C1 Info(TA1='Y ') = 0 2 2 1 1 2 1 ëÅ‚ Info(TA1='N ') = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ = - Å"(-0,59) - (-1,59) = 0,91 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ 3 3 3 3 3 3 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ 3 InfoA1(T ) = 0 + Å"0,91 = 0,68 4 Gain(A1) = 1- 0,68 = 0,32 4 InfoA2(T ) = Å" Info(TA2=2) + 0Å" Info(TA2=2) 4 1 1 1 1 ëÅ‚ Info(TA2=2) = -ëÅ‚ log2 öÅ‚ - log2 öÅ‚ =1 ìÅ‚ ÷Å‚ ìÅ‚ ÷Å‚ 2 2 2 2 íÅ‚ Å‚Å‚ íÅ‚ Å‚Å‚ InfoA2(T ) =1 Gain(A2) = 1-1 = 0 PodziaÅ‚ nastÄ™puje ze wzglÄ™du na A1, gdyż Gain(A1) > Gain(A2) A1 A2 C A1 A2 C A1 A2 C A1 A2 C A1 A2 C Y 1 C2 Y 1 C2 Y 1 C2 Y 1 C2 Y 2 C1 Y 2 C1 Y 2 C1 Y 2 C1 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C2 N 2 C1 N 2 C1 N 2 C1 N 2 C1 N = 5 C1 2 (40%) C2 3 (60%) A2 A2=2 A2=1 A1 A2 C A1 A2 C Y 2 C1 Y 1 C2 N 2 C2 N 2 C2 N 2 C1 N = 4 N = 1 C1 2 (50%) C1 0 (0%) C2 2 (50%) C2 1 (100%) A1 A1=Y A1=N A1 A2 C A1 A2 C Y 2 C1 N 2 C2 N 2 C2 N 2 C1 N = 1 N = 3 C1 1 (100%) C1 1 (33%) C2 0 (0%) C2 2 (67%) Szacowanie bÅ‚Ä™dów klasyfikacji PrzedziaÅ‚ ufnoÅ›ci o poziomie ufnoÅ›ci 1-p dla parametru p rozkÅ‚adu dwumianowego: N liczba prób, p prawdopodobieÅ„stwo sukcesu w pojedynczej próbie. P nie jest znana, do jej oszacowania na podstawie eksperymentu Yp estymator liczba sukcesów do liczby wykonanych prób, PrzedziaÅ‚ ufnoÅ›ci dla estymatora: Klasyfikowanie przykÅ‚adów ma cechy próby Bernoullliego: sukcesem jest pomyÅ‚ka w klasyfikacji. Przycinanie drzewa (prunning) Obcinanie polega na zastÄ…pieniu poddrzewa liÅ›ciem, którym przypisuje siÄ™ etykietÄ™ kategorii najczęściej wystÄ™pujÄ…cej wÅ›ród zwiÄ…zanych z nim przykÅ‚adów. Nadmierne dopasowanie do danych trenujÄ…cych (overfitted) duży bÅ‚Ä…d dla danych spoza ciÄ…gu uczÄ…cego Zbudowane drzewo ma zbyt dużą wysokość (niedopuszczalna zÅ‚ożoność procedury klasyfikujÄ…cej) PoczÄ…wszy od doÅ‚u drzewa, dla każdego poddrzewa nie bÄ™dÄ…cego liÅ›ciem: Obcinamy, jeżeli zastÄ…pienie poddrzewa liÅ›ciem z przypisanÄ… kategoriÄ… reprezentowanÄ… przez potomka o najwiÄ™kszej licznoÅ›ci zmniejsza bÅ‚Ä…d. Modyfikacja bÅ‚Ä™dów dla rodziców. Estymacja bÅ‚Ä™du klasyfikacji: Szacowanie na podstawie bÅ‚Ä™du próbki na oddzielnym zbiorze przycinania, zÅ‚ożonym z przykÅ‚adów spoza zbioru trenujÄ…cego. Szacowanie na podstawie bÅ‚Ä™du próbki na zbiorze trenujÄ…cym. Zadanie Na podstawie zbioru danych treningowych ( ciÄ…gu uczÄ…cego) Znalezć wartość podziaÅ‚u dla atrybutu A Znalezć wartość podziaÅ‚u dla atrybutu B Zbudować drzewo decyzyjne Jaki jest proporcja bÅ‚Ä™dnych klasyfikacji dla ciÄ…gu testowego ? Literatura PaweÅ‚ Cichosz Systemy uczÄ…ce siÄ™ WNT 2000 Hand David, Mannila Heikki, Smyth Padhraic Eksploracja danych , WNT 2005