Inteligencja Obliczeniowa Drzewa Decyzji. Wykład 23 Włodzisław Duch Uniwersytet Mikołaja Kopernika Co było • • • Odkrywanie wiedzy metodami neuronowymi Stosowanie reguł Budowa systemu ekspertowego z odkrytych reguł Co będzie • • • • • Drzewa decyzji Testy i konstrukcje drzew Przycinanie drzew. CART, C 4.5, SSV Inne drzewa DT - przykład Klasy: {rakowe, zdrowe} Cechy: ciało komórki: {cienie, paski} jądra: {1, 2}; ogonki: {1, 2} ra k zdrowy zdrowy ra k Trudniejszy przykład Ogólne własności Drzewo decyzji: Ogólne => Szczegółowe węzeł - test atrybutu rozgałęzienie - wartość atrybutu lub podzbiór liście - przypisane do klas Testy: podział pojedynczej cechy, lub kombinacji Attrybut={wartośći} lub Attrybut < wartośći Kryteria: maksymalizacja ilości informacji, maksymalizacja liczby poprawnie podzielonych obiektów, „czystość” węzła Przycinanie: usuń gałęzie, które zawierają zbyt mało przypadków prostsze drzewo może lepiej generalizować oceń optymalną złożoność na zbiorze walidacyjnym. Kryterium stopu: osiągnięta dokładność podziałów, zbyt wiele gałęzi. Generyczny algorytm TDIDT TDIDT - Top Down Iterative Decision Tree function DT(E: zbiór przykładów) returns drzewo; T' := buduj_drzewo(E); T := obetnij_drzewo(T'); return T; function buduj_drzewo(E: zbiór przyk.) returns drzewo; T := generuj_tests(E); t := najlepszy_test(T, E); P := podział E indukowany przez t; if kryterium_stopu(E, P) then return liść(info(E)) else for all Ej in P: tj := buduj_drzewo(Ej); return węzeł(t, {(j,tj)}; Wybór atrybutu Który atrybut powinien być najpierw? p+ i p- - proporcje w lewej i prawej gałęzi. Zbiór wektorów S Ile informacji zawiera dany podział ? Średnia l. bitów do zakodowania dowolnego wektora z S wynosi: I (S ) - p lg2 p - p- lg2 pG ( S , A) I ( S ) - S S I (S ) - SS I (S- ) Informacja dla czystych węzłów = 0; jest max dla najbardziej pomieszanych. Przykład Obliczenia ilości informacji E: E p1 , p2 ,... pn - pi lg 2 pi i q r E p, q, r E p, q r q r E , q r q r Tworzenie drzewa Tworzenie drzewa: szukanie w przestrzeni hipotez. ID3 - podział w oparciu o zysk informacyjny. Lepsze mniejsze drzewo. Dość odporne na szum. Lokalne minima. Granice decyzji Podział hierarchiczny na hiperprostokąty. Drzewa proste i skośne Granice skośne Niestabilność DT Brzytwa Ockhama Czemu preferować prostsze drzewa? 1. 2. 3. Mało prostych hipotez, więc mała szansa, że przypadkiem pasują do danych. Proste drzewa nie powinny zbytnio dopasować się do danych. Przetrenowanie modelu dla zbyt złożonych drzew, zła generalizacja. Ale: 1. Dla małych zbiorów o wielu atrybutach można tworzyć wiele prostych opisów danych. Przetrenowanie Model H jest zbytnio dopasowany do danych (overfits) gdy: Istnieje model H’ taki, że: Błąd-treningowy(H) < Błąd-treningowy(H’) Błąd-testowy(H) > Błąd-testowy(H’) Zbyt szczegółowe wnioski przy dla danej populacji przypadków treningowych. Dokładność jako funkcja liczby węzłów drzewa. Wyniki mogą być gorsze niż dla klasyfikatora większościowego! Przykład Przypadkowo dobrane 2 klasy. Niech klasa większościowa C1 ma p > 0.5 Klasyfikator większościowy robi (1-p) błędów. Przetrenowane drzewo ma: Np węzłów z klasy C1 N-Np z klasy C2. Drzewo przypisuje wektor X do klasy C1 z p i C2 z 1-p. Macierz rozrzutu: Prawd. błędu: p2 (1 - p) p p(1 - p) 2 (1 - p) 2 p(1 - p) p dla p 0.5 Np. dla p=0.75 będzie 37.5% błędów dla przetrenowanego drzewa zamiast 25% dla większościowego. Unikanie przetrenowanie Jak uniknąć przetrenowania i radzić sobie z szumem? 1. 2. 3. 1. 2. 3. Zakończ rozwijanie węzła jeśli jest zbyt mało danych by wiarygodnie dokonać podziału. Zakończ jeśli czystość węzłów (dominacja jednej klasy) jest większa od zadanego progu - forward pruning DT => drzewo prawd. klas. Utwórz drzewo a potem je przytnij (backward pruning) Przycinaj korzystając z wyników dla kroswalidacji lub dla zbioru walidacyjnego. Korzystaj z MDL (Minimum Description Length): Min Rozmiar(Drzewa) + Rozmiar(Drzewa(Błędów)) Oceniaj podziały zaglądając poziom (lub więcej) w głąb. DT dla raka piersi DT => reguły Zamień DT na reguły i uprość: łatwo ocenić, które reguły można usunąć i optymalizować pozostałe. 1R 1R: najprostsze drzewo (Holte 1993), niezłe rezultaty. Jeden poziom, atrybuty nominalne. Algorytm: Dla każdego atrybutu A dla każdej wartości atrybutu Ai: policz częstości występowania klas znajdź klasę C występującą najczęściej utwórz regułę: IF Ai THEN C Oblicz dokładność tej reguły. Wybierz reguły o największej dokładności. Wartość brakująca ? traktowana jest jak każda inna. Przykład - grać czy nie grać? 1R cd Jak traktować ciągłe wartości numeryczne? Podziel obszary na interwały i traktuje je jak nominalne. Dla każdego atrybutu A porządkuj przypadki zgodnie z wartościami tego atrybutu ustal granice przedziałów dla wartości, przy których zmienia się klasa mająca większość. Minimalizuje to liczbę błędów w algorytmie 1R. Przykład: temperatura i jej korelacja z decyzją gracza: By uniknąć szumu można wprowadzić minimalną liczbę danych/interwał: Uproszczone reguły ID 3 ID3: Interactive dichotomizer version 3, pierwotnie CLS (Concept Learning System), R. Quinlan (1986) Tylko do atrybutów nominalnych (nieuporządkowanych). Dla atrybutów rzeczywistych: konieczna dyskretyzacja. Ocena podziałów - za pomocą zysku informacji, Gain(D,A) Podział węzła na kilka podgałęzi, dla różnych wartości A Preferencje: wszystkie hipotezy możliwe, ale te dla drzew o dużym zysku informacyjnym w pobliżu korzenia preferowane - lokalne minima. Brakowało przycinania i dyskretyzacji. Rozwinięcie ID3 => drzewo C4.5 i C5 C 4.5 R. Quinlan (1993), jedno z najbardziej popularnych DT Typowy algorytm TDIDT Testy: A=? dla nominalnych, A<t, dla t=(Ai+ Ai+1)/2 (wystarczy sprawdzić tylko te wartości, dla których zmienia się klasa) Ocena podziałów - za pomocą zysku informacji, Gain(D,A) Dla testu atrybutu A o k wynikach: k Di i 1 D G ( D, A) I ( D) - k Split ( D, A) - i 1 I Di Największy zysk dla największego k Di lg 2 Informacja zawarta w podziałach. D D Di GR ( D, A) G( D, A) / Split (D, A) Końcowe kryterium C4.5. NewID Algorytm: dane przykłady E, atrybuty A i klasy c=1..C Lista bieżących przykładów D = E w korzeniu drzewa Jeśli D ma czyste liście (przykłady z pojedynczej klasy) to zatrzymaj. Dla każdego węzła i jeszcze nie użytych atrybutów powtarzaj: jeśli dostępne atrybuty nie mają określonych wartości utwórz węzeł typu Konflikt else: oblicz maxj Gain(Aj,c); utwórz węzły potomne dzieląc Dk na podzbiory Końcowe drzewo jest zbytnio dopasowane. Drzewo do regresji: wybierz podział tak, by wariancja wewnątrz klas po podziale była jak najmniejsza: min v Var C( X ) X Dv NewID cd. Brakujące wartości ? i wartości obojętne * Jeśli niektóre A=? dla atrybutu binarnego w danych treningowych to węzłom potomnym przypisujemy wektory z A=T i A=N zgodnie z rozkładem a priori lub oceną Laplace’a: N(T) = (N(c,A=T)+1)/(N(c)+N(A)); N(A)=2, l. wartości A Dla testu ocena l. wszystkich wektorów, a nie tylko w klasie c Wartości * są powielane. Przycinanie: Ocena na zbiorze walidacyjnym, próg R (zwykle R=10): Jeśli poddrzewo TW poprawia o R% dokładność klasyfikacji węzła W to schodź niżej; Var C ( X ) else zamień W na liść. min v X Dv NewID używa podzbiorów, atrybutów porządkowych, w. ciągłych. NewID regresja. Drzewo do regresji: klasy ciągłe C(X) Wybierz podział tak, by wariancja wewnątrz klas po podziale była jak najmniejsza: min v Var C( X ) X Dv Kryterium stopu: nie rozwijaj węzła jeśli s(Dk) < ks(E). CHAID CHi-squared Automatic Interaction Detection, jest w SPSS. Kryterium podziału atrybutu A jest test c2 Hipoteza: jeśli test A<A0 (lub A=A0) jest skorelowany z podziałem na klasę C i pozostałe to test c2 da małą wartość. Przykład: podział gatunków. Atrybut = dł. ogona. Tabela kontyngencji: Oczekiwane: Gatunek Długi Krótki Brak Suma eij= Nio x Ngj / N N. ptaki n11 n21 n31 Ng1 Rozkład c2 dla: N. gady n12 n22 n32 Ng2 n ij N. ssaki n13 n23 n33 Ng3 N. ryby n14 n24 n34 Ng4 Suma N1o N2o N2o N - eij / eij 2 ij p c 2 | k erf k , c k=(Nio-1) x (Ngj -1) stopni swobody. CART Classification and Regression Trees (Breiman 1984). Kryterium podziału: indeks Gini; w danym węźle pc określa procent wektorów z klasy c; czystość węzła można zmierzyć za pomocą: C C cd c 1 Gini pc pd 1 - pc2 Mi 1 - max pc c Kryterium stopu: MDL, złożoność drzewa + informacja w liściach Size(Tree) I (l ) lleaf SSV Kryterium separowalności par danych z różnych klas. Oddziel maksymalnie dużo par z różnych klas. Jeśli różne podziały dają to samo minimalizuj l. podziałów wewnątrz klasy x D : f ( x) s , f ciągłe LS s, f , D x D : f ( x) s , f dyskretne RS s, f , D D - LS s, f , D Kryterium: SSV ( s ) 2 LS s, f , D Dc RS s, f , D cC - min LS s, f , D Dc , RS s, f , D Dc cC D - Dc Proste kryterium, różne metody obcinania drzewa, dobre wyniki. SSV - przykład Drzewo dla chorób tarczycy. Atrybut TT4: czerwone - l. błędów; zielone - l. par prawidłowo podzielonych; niebieskie - l. podzielonych par tej samej klasy (druga cześć kryterium). Ocena i wyniki DT: szybkie i proste. Zalety: Zwykle bardzo dobre wyniki w porównaniu z innymi klasyfikatorami. Łatwe w użyciu, prawie nie mają parametrów do ustawiania. Dane nominalne lub numeryczne. Zastosowania: klasyfikacja i regresja. Prawie wszystkie pakiety Data Mining mają drzewa decyzji. Problemy z DT: mało danych, duża liczba ciągłych cech; niższe partie drzewa mają b. mało danych, przypadkowe podziały; nie wszystkie koncepcje dają się dobrze ująć za pomocą DT, np. „większość jest za”. Idee Wiele usprawnień. Drzewa wieloczynnikowe: skośne granice decyzji; drzewa sieci neuronowych; rekursywny podział za pomocą LDA lub FDA Kryteria podziału: informacja w pobliżu korzenia, dokładność w pobliżu liści. przycinanie na podstawie reguł - działa również przy korzeniu; Komitety drzew: wielokrotne uczenie na randomizowanych danych (boosting) uczenie z różnymi parametrami obcinania Drzewa rozmyte Koniec wykładu 23 Dobranoc !