Inteligencja Obliczeniowa Drzewa Decyzji Wykad 23 Wodzisaw Duch
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} rak zdrowy rak
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 - 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: Informacja dla czystych węzłów = 0; jest max dla najbardziej pomieszanych.
Przykład Obliczenia ilości informacji E:
Tworzenie drzewa: szukanie w przestrzeni hipotez. ID 3 - 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 C 1 ma p > 0. 5 Klasyfikator większościowy robi (1 -p) błędów. Przetrenowane drzewo ma: Np węzłów z klasy C 1 N-Np z klasy C 2. Drzewo przypisuje wektor X do klasy C 1 z p i C 2 z 1 -p. Macierz rozrzutu: Prawd. błędu: 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. 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.
1 R 1 R: 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ć?
1 R 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 1 R. Przykład: temperatura i jej korelacja z decyzją gracza: By uniknąć szumu można wprowadzić minimalną liczbę danych/interwał: Uproszczone reguły
ID 3: 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 ID 3 => drzewo C 4. 5 i C 5
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: Największy zysk dla największego k Informacja zawarta w podziałach. Końcowe kryterium C 4. 5.
New. ID 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:
New. ID 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; else zamień W na liść. New. ID używa podzbiorów, atrybutów porządkowych, w. ciągłych.
New. ID regresja. Drzewo do regresji: klasy ciągłe C(X) Wybierz podział tak, by wariancja wewnątrz klas po podziale była jak najmniejsza: 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 c 2 Hipoteza: jeśli test A<A 0 (lub A=A 0) jest skorelowany z podziałem na klasę C i pozostałe to test c 2 da małą wartość. Przykład: podział gatunków. Atrybut = dł. ogona. Tabela kontyngencji: Gatunek Długi Krótki Brak Suma Oczekiwane: eij= Nio x Ngj / N N. ptaki n 11 n 21 n 31 Ng 1 Rozkład c 2 dla: N. gady n 12 n 22 n 32 Ng 2 N. ssaki n 13 n 23 n 33 Ng 3 N. ryby n 14 n 24 n 34 Ng 4 Suma N 1 o N 2 o N 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ą: Kryterium stopu: MDL, złożoność drzewa + informacja w liściach
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 Kryterium: Proste kryterium, różne metody obcinania drzewa, dobre wyniki.
SSV - przykład Drzewo dla chorób tarczycy. Atrybut TT 4: 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 !
- Slides: 34