340 likes | 443 Views
Inteligencja Obliczeniowa Drzewa Decyzji. Wykład 23 Włodzisław Duch Uniwersytet Mikołaja Kopernika. Odkrywanie wiedzy metodami neuronowymi Stosowanie reguł Budowa systemu ekspertowego z odkrytych reguł. Co było. Drzewa decyzji Testy i konstrukcje drzew Przycinanie drzew.
E N D
Inteligencja ObliczeniowaDrzewa Decyzji. Wykład 23 Włodzisław Duch Uniwersytet Mikołaja Kopernika
Odkrywanie wiedzy metodami neuronowymi Stosowanie reguł Budowa systemu ekspertowego z odkrytych reguł Co było
Drzewa decyzji Testy i konstrukcje drzew Przycinanie drzew. CART, C 4.5, SSV Inne drzewa Co będzie
Klasy: {rakowe, zdrowe} Cechy: ciało komórki: {cienie, paski} jądra: {1, 2}; ogonki: {1, 2} DT - przykład rak zdrowy zdrowy rak
Drzewo decyzji: Ogólne => Szczegółowe węzeł - test atrybutu rozgałęzienie - wartość atrybutu lub podzbiór liście - przypisane do klas Ogólne własności 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.
TDIDT - Top Down Iterative Decision Tree Generyczny algorytm TDIDT function DT(E: zbiór przykładów) returnsdrzewo; T' := buduj_drzewo(E); T := obetnij_drzewo(T'); returnT; functionbuduj_drzewo(E: zbiór przyk.) returnsdrzewo; T := generuj_tests(E); t := najlepszy_test(T, E); P := podziałEindukowany przezt; ifkryterium_stopu(E, P) thenreturnliść(info(E)) else for allEjin P: tj := buduj_drzewo(Ej); returnwę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 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.
Brzytwa Ockhama Czemu preferować prostsze drzewa? • 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: • 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: 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? • 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 pruningDT => 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 => 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ł: Uproszczonereguł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 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: R. Quinlan (1993), jedno z najbardziej popularnych DT Największy zysk dla największego k Informacja zawarta w podziałach. 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:
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; else zamień W na liść. 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: 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: eij= Nio x Ngj / N Rozkład c2 dla: k=(Nio-1) x (Ngj -1) stopni swobody.
CART Classification and Regression Trees (Breiman 1984). Kryterium podziału: indeks Gini; w danym węźle pcokreś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 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 !