Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych PRACA DYPLOMOWA MAGISTERSKA MATEMATYKA DRZEWA KLASYFIKACYJNE ICH BUDOWA, PROBLEMY ZŁOŻONOŚCI I SKALOWALNOŚCI Autor: Mariusz Gromada Promotor: Prof. dr hab. Jacek Koronacki WARSZAWA, STYCZEŃ 2006 ...................... Podpis promotora ...................... Podpis dyplomanta Spis treści Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Analiza dyskryminacyjna . . . . . . . . . . . . . . . . 1.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . 1.2. Problem skal pomiarowych . . . . . . . . . . . . . . 1.3. Model klasyfikacyjny . . . . . . . . . . . . . . . . . . 1.3.1. Zbiór przykładów i pojęcie atrybutu . . . . . 1.3.2. Rodzina obserwacji . . . . . . . . . . . . . . . 1.3.3. Warstwa przykładu i przestrzeń obiektów . . 1.3.4. Warstwa klasy i pojęcie docelowe . . . . . . . 1.3.5. Rozkłady a priori i a posteriori . . . . . . . . 1.3.6. Przestrzeń ucząca . . . . . . . . . . . . . . . 1.3.7. Reguła dyskryminacyjna i przestrzeń hipotez 1.3.8. Odległość w przestrzeni hipotez . . . . . . . . 1.3.9. Problem dyskryminacyjny . . . . . . . . . . . 1.4. Reguła Bayesa . . . . . . . . . . . . . . . . . . . . . 1.4.1. Klasyfikator bayesowski . . . . . . . . . . . . 1.4.2. Optymalność reguły bayesowskiej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 7 7 8 9 11 12 13 14 15 16 17 17 17 2. Drzewa klasyfikacyjne . . . . . . . . . . . . . 2.1. Wprowadzenie . . . . . . . . . . . . . . . . 2.2. Struktura drzewa . . . . . . . . . . . . . . . 2.3. Drzewo jako hipoteza . . . . . . . . . . . . . 2.4. Metody konstrukcji drzew . . . . . . . . . . 2.4.1. Konstrukcja testów . . . . . . . . . . 2.4.2. Kryteria jakości podziałów . . . . . 2.4.3. Kryterium stopu i reguła decyzyjna 2.4.4. Zstępująca konstrukcja drzewa . . . 2.5. Problem nadmiernego dopasowania . . . . . 2.5.1. Schemat przycinania . . . . . . . . . 2.5.2. Przycinanie MDL . . . . . . . . . . . 2.6. Zalety i ograniczenia drzew klasyfikacyjnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 23 24 24 26 29 30 30 30 31 34 3. Klasyfikator SLIQ . . . . . . 3.1. Wprowadzenie . . . . . . 3.2. Struktury danych . . . . . 3.3. Sortowanie wstępne . . . . 3.4. Pozioma strategia wzrostu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 36 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . SPIS TREŚCI 4. Klasyfikator SPRINT . . . . 4.1. Wprowadzenie . . . . . . 4.2. Metoda podstawowa . . . 4.3. Metoda zrównoleglona . . 4.4. Porównanie klasyfikatorów SPIS TREŚCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPRINT i SLIQ 5. Implementacja klasyfikatora SLIQ . 5.1. Wprowadzenie . . . . . . . . . . . 5.2. Środowisko uruchomieniowe . . . . 5.3. Analiza wyników . . . . . . . . . . 5.3.1. Skalowalność SLIQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 41 41 43 44 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 45 45 47 i miara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 54 55 56 57 B. Teoria grafów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1. Grafy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2. Drzewa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 60 4 . . . . . . . . . . . . . . . A. Topologia, prawdopodobieństwo A.1. Przestrzeń topologiczna . . . . A.2. σ-ciało i σ-ciało zbiorów Borela A.3. Miara i miara probabilistyczna A.4. Funkcje mierzalne . . . . . . . . . . . . . . . . . Wstęp Temat pracy dotyczy problemu dyskryminacji oraz budowy drzew klasyfikacyjnych w kontekście ich przydatności do rozwiązywania zadań o dużym wymiarze prób losowych i/lub dużym wymiarze wektora obserwacji, w których podstawowego znaczenia nabiera złożoność obliczeniowa drzewa. Radzenie sobie z dużymi zbiorami danych wymaga konstrukcji specjalnych technik sortowania danych w trakcie budowy drzewa, kodowania, organizacji wzrostu i przycinania drzewa. Wymaga także zrównoleglenia obliczeń. Przedmiotem pracy jest sformułowanie modelu analizy dyskryminacyjnej oraz analiza możliwych rozwiązań podanych zagadnień, wraz z implementacją jednego z nich. Autorskim wkładem do pracy są rozdziały 1, 2 oraz 5. W pierwszym rozdziale omawiam problem dyskryminacji pod nadzorem, nazywanej analizą dyskryminacyjną. Autorskim wkładem jest wprowadzenie formalnego modelu klasyfikacyjnego osadzonego w przestrzeni probabilistycznej wraz z twierdzeniami o numerach: 1.3.1, 1.3.2, 1.4.1. Rozdział drugi poświęcony jest budowie drzew klasyfikacyjnych. Szczególną uwagę zwracam na problem złożoności i skalowalności. Autorskim wkładem jest wprowadzenie formalnej definicji drzewa klasyfikacyjnego w oparciu o podstawy teorii grafów oraz o model klasyfikacyjny przedstawiony w rozdziale pierwszym. Podaję oraz dowodzę twierdzenia: 2.4.1 i 2.3.1. Dodatkowo omawiam nowatorską technikę przycinania drzew wykorzystującą zasadę minimalnej długości kodu, MDL (M. Mehta, J. Rissanen, R. Agrawal, 1995). W rozdziale trzecim i czwartym skupiam się na przedstawieniu indukcji drzew decyzyjnych metodą SLLIQ (M. Mehta, R. Agrawal, J. Rissanen, 1996) oraz SPRINT (J.C. Shafer, R. Agrawal, M. Mehta, 1996). Rozdział piąty prezentuje implementację klasyfikatora SLIQ wraz z implementacją przycinania drzew metodą MDL. Implementację przeprowadziłem we współpracy z Instytutem Podstaw Informatyki Polskiej Akademii Nauk w ramach rozwoju pakietu „dmLab”. Tekst rozdziału zawiera również analizę złożoności czasowej i skalowalności implementacji. Pracę kończą dodatki A i B, w których zebrałem podstawowe pojęcia wykorzystane w tekście z topologii, teorii miary, probabilistyki oraz teorii grafów. 5 Rozdział 1 Analiza dyskryminacyjna 1.1. Wprowadzenie Postęp informatyzacji życia codziennego umożliwił przechowywanie i przetwarzanie olbrzymich ilości danych1 oraz odkrywanie ukrytych w nich zależności2 . Nowoczesnych metod analizy danych dostarcza współczesna statystyka matematyczna. Szczególnie praktycznie znaczenie mają metody klasyfikacyjne. Klasyfikacja jest dziś bardzo szeroko wykorzystywana przez świat nauki, biznesu, przemysłu oraz medycyny. Klasyfikacja (w skrócie) polega na poszukiwaniu najlepszego możliwego rozdzielenia obserwacji z różnych populacji. Wyróżnia się dwie metody klasyfikacji. Pierwsza z nich to klasyfikacja bez nadzoru, nazywana analizą skupień. Druga, wykorzystująca próby uczące, określana jest mianem klasyfikacji pod nadzorem lub też analizą dyskryminacyjną. W poniższej pracy ograniczamy się do przypadku drugiego. Próbę uczącą stanowić może każdy zbiór obserwacji ze znanym podziałem na populacje (klasy). Dyskryminacja poszukuje najlepszej reguły klasyfikacyjnej, która każdej nowej obserwacji (z nieznaną przynależnością do populacji) przypisze pewną klasę. W dalszej części pracy konstruujemy precyzyjny model klasyfikacyjny, wyróżniając w nim rodzinę reguł najefektywniejszych. 1.2. Problem skal pomiarowych W teorii pomiaru rozróżnia się 4 podstawowe skale pomiaru, wprowadzone przez Stevensa (1959), uporządkowane od najsłabszej do najmocniejszej: nominalna, porządkowa (rangowa), przedziałowa (interwałowa), ilorazowa (stosunkowa). Podstawowe własności skal pomiaru przedstawia tabela 1.1. Przyrządy, dokonujące pomiarów w praktyce, posiadają skończoną dokładność. Wykorzystując to spostrzeżenie, konstrukcję modelu klasyfikacyjnego ograniczyliśmy do rozpatrywania przeliczalnych przestrzeni możliwych wartości pomiarów. 1 Przechowywanie, dostarczenie i przetwarzanie danych opisuje tematyka hurtowni danych (ang. Data Warehousing). 2 Odkrywaniem zależności w zbiorach danych zajmuje się tematyka eksploracji danych (ang. Data Mining). 6 Analiza dyskryminacyjna Typ skali 1.3 Model klasyfikacyjny Dopuszczalne relacje Dopuszczalne operacje arytmetyczne równości, różno ści zliczanie zdarzeń (liczba relacji równości, różności) Porządkowa powyższe oraz większości i mniejszości zliczanie zdarzeń (liczba relacji równości, różności, większości, mniejszości) Przedziałowa powyższe oraz równości różnic i przedziałów powyższe oraz dodawanie i odejmowanie Ilorazowa powyższe oraz równości ilorazów powyższe oraz mnożenie i dzielenie Nominalna Tabela 1.1: Podstawowe własności skal pomiarowych 1.3. Model klasyfikacyjny Model, jako ogólne (teoretyczne) odzwierciedlenie różnych aspektów rzeczywistości, jest strukturą opartą o pewien system założeń (aksjomatów), pojęć i relacji między nimi. Mianem własności modelu określamy każdą logiczną (najczęściej sprawdzalną empirycznie) konsekwencję sformułowanych wcześniej aksjomatów. Poniżej przedstawiamy konstrukcję modelu klasyfikacyjnego, który umieszcza klasyfikację z próbą uczącą w szeroko rozumianej probabilistyce. Wykorzystując przestrzenie topologiczne, mierzalne i probabilistyczne, wprowadzamy szereg nowych definicji, zwracając przy tym uwagę na kwestie szczególnie istotne. Często odnosimy się do dodatku „A”, który w sposób podstawowy omawia materiał zapożyczony z innych działów matematyki. 1.3.1. Zbiór przykładów i pojęcie atrybutu Niech {Xk }, k = 1, . . . , p będzie dowolną rodziną niepustych zbiorów. Definicja 1.3.1 Zbiór: X := X1 × X2 × . . . × Xp (1.1) nazywamy zbiorem przykładów. Każdy element zbioru X nazywamy krótko przykładem. Z każdym zbiorem Xk wiążemy funkcję: Ak : X → X k gdzie X 3 x = (x1 , x2 , . . . , xp ) 7→ xk ∈ Xk (1.2) Innymi słowy ∀ x ∈ X, ∀ k ∈ {1, . . . , p} mamy Ak (x) = xk , oraz Ak (X) = Xk Definicja 1.3.2 Przekształcenie Ak nazywamy k − tym atrybutem w X. Zbiór Ak (X) = Xk nazywamy zbiorem wartości atrybutu Ak . Definicja 1.3.3 Jeżeli zbiór Xk jest skończony i nieuporządkowany, to atrybut Ak nazywamy nominalnym. W przypadku przeliczalnego i uporządkowanego zbioru Xk mówimy o porządkowym atrybucie Ak . 7 1.3 Model klasyfikacyjny Analiza dyskryminacyjna Atrybut nominalny może być atrybutem porządkowym, podobnie pewnego rodzaju atrybuty porządkowe można traktować jako atrybuty nominalne. Zbliżone pojęcie atrybutu wprowadzone jest w [2]. Przykładem atrybutu nominalnego może być kolor (zielony, żółty,. . .). Atrybutem porządkowym jest np. wzrost podany w centymetrach. 1.3.2. Rodzina obserwacji Zbiór X określa wszystkie możliwe wartości ustalonego zestawu atrybutów. Każdy element x = (x1 , x2 , . . . , xp ) ∈ X, gdzie xk ∈ Xk jest wartością atrybutu Ak , nazwaliśmy przykładem. Przykład jest elementem unikalnym w X. Dalej wprowadzimy pewną rodzinę opartą na X, która pozwoli myśleć o przykładach w kategoriach rozkładów. Definicja 1.3.4 Rodziną obserwacji nazywamy każdą niepustą rodzinę przykładów X I := xi i∈I (1.3) gdzie I jest zbiorem indeksów oraz xi ∈ X dla każdego i ∈ I. X I jest rodziną elementów ze zbioru X indeksowaną zbiorem indeksów I. Pozwala to zamiast {xi } ∈ X I pisać krótko i ∈ I (myślimy o indeksie, a nie o konkretnym przykładzie z rodziny). Ponadto dla różnych i1 , i2 ∈ I może zachodzić xi1 = xi2 . Przykład należący do rodziny obserwacji nie musi być w niej unikalny (przypomnijmy, że zbiór przykładów taką własność posiada). Definicja 1.3.5 Zbiór X := [ {xi } (1.4) i∈I nazywamy zbiorem przykładów rodziny obserwacji X I . Wniosek 1.3.1 X ⊆ X. Przykład to inaczej pewien zestaw wartości atrybutów. Atrybuty w rzeczywistości służą do opisu obiektów. Różne obiekty, opisywane tym samym zestawem atrybutów, mogą być identyczne w sensie wartości atrybutów, ale to nadal różne obiekty (takie obiekty opisuje ten sam przykład). Wyobraźmy sobie dwie osoby, w wieku 30 lat, z wykształceniem wyższym, które pochodzą z Warszawy. Jeżeli przyjmiemy, że do opisu osób używamy zestawu atrybutów (wiek,wykształcenie,pochodzenie), to jeden przykład (30,wyższe,Warszawa) będzie odpowiadał dwóm różnym osobom. Rodzina obserwacji umożliwia odzwierciedlenie takiej sytuacji (w przeciwieństwie do zbioru przykładów). Definicja 1.3.6 Obiektem (indeksem obserwacji) nazywamy każdy indeks i ∈ I należący do zbioru indeksów rodziny obserwacji X I . Zbiór I nazywamy zbiorem obiektów. Podkreślmy, że każdy obiekt i ∈ I jest opisany przykładem xi ∈ X. 8 Analiza dyskryminacyjna 1.3 Model klasyfikacyjny 1.3.3. Warstwa przykładu i przestrzeń obiektów Definicja 1.3.7 Warstwą przykładu x ∈ X w zbiorze obiektów I nazywamy zbiór: Ix := i ∈ I : xi = x (1.5) Warstwa przykładu x ∈ X jest podzbiorem zbioru obiektów I opisanych tym samym przykładem x. Wniosek 1.3.2 Rodzina wszystkich warstw I X := {Ix }x∈X wyznacza podział I na niepuste parami rozłączne podzbiory. Rozważmy przestrzeń topologiczną (I, T), gdzie T dowolna topologia (def. A.1.1) w I zawierająca rodzinę I X (I X ⊆ T). Niech dalej B oznacza σ-ciało borelowskie (def. A.2.2) w przestrzeni (I, T). Definicja 1.3.8 Jeżeli P jest taką miarą probabilistyczną na (I, B), że: ∀x∈X P (Ix ) > 0 to przestrzeń probabilistyczną I := I, B, P nazywamy przestrzenią obiektów. Warstwa każdego przykładu jest zbiorem mierzalnym z niezerowym prawdopodobieństwem. Fakt ten oznacza niezerowe prawdopodobieństwo wystąpienia każdego zestawu atrybutów ze zbioru X w przestrzeni obiektów (inaczej w I każdego przykładu x ∈ X ). Powyższe założenia pozwalają wyprowadzić pewne bardzo ważne twierdzenie. Twierdzenie 1.3.1 Rodzina warstw I X w przestrzeni obiektów I jest co najwyżej przeliczalna. Formalnie: X I ¬ ℵ0 Dowód: Twierdzenie udowodnimy nie wprost zakładając, że istnieje przestrzeń obiektów I, w której zachodzi I X > ℵ0 . Rodzina I X określa podział zbioru obiektów I na niepuste parami rozłączne podzbiory. Z definicji przestrzeni obiektów wiemy, że: ∀x∈X Niech P (Ix ) > 0 1 Xn := x ∈ X | P (Ix ) > n Oczywiście ∞ [ Xn = X n=1 Zbór X jest równoliczny z rodziną I X , z założenia jest więc nieprzeliczalny. Musi zatem istnieć k ∈ N, że Xk jest nieskończony: |Xk | ­ ℵ0 . W szczególności można wybrać ciąg różnych przykładów: x1 , x2 , . . . ∈ Xk . Z definicji zbioru Xk wynika, że: ∀n∈N P (Ixn ) > 9 1 k 1.3 Model klasyfikacyjny Zauważmy, że rodzina Ixn Analiza dyskryminacyjna n∈N jest przeliczalną rodziną zbiorów parami rozłącznych. Zatem: ∞ X 1 = P (I) ­ P (Ixn ) > n=1 ∞ X 1 n=1 k =∞ Założenie okazało się nieprawdziwe, co kończy dowód. Twierdzenie 1.3.1 daje pewien obraz struktury przestrzeni obiektów. Wykazaliśmy, że zbiór przykładów rodziny X I , która wchodzi w skład przestrzeni obiektów I, może być co najwyżej przeliczalny. Oczywiście sama rodzina X I (a zatem i zbiór obiektów I) może być nieprzeliczalna. Definicja 1.3.9 Warstwą atrybutu Ak , k ∈ {1, . . . , p} dla wartości w ∈ Xk nazywamy zbiór n i Aw k := i ∈ I : Ak (x ) = w o (1.6) Warstwa Aw k reprezentuje obiekty, dla których wartość atrybutu Ak wynosi w ∈ Xk . Podkreślmy, że warstwa atrybutu może być zbiorem pustym. Zauważmy, że [ Aw k = Ix (1.7) x∈X , Ak (x)=w Wniosek 1.3.3 Korzystając z aksjomatu (T3 ) topologii o „otwartości unii dowolnej rodziny zbiorów otwartych” (def. A.1.1) stwierdzamy, że warstwa Aw k , k ∈ {1, . . . , p} atrybutu Ak dla ∈ B) w przestrzeni obiektów I. wartości w ∈ Xk jest zbiorem mierzalnym (Aw k Dzięki powyższemu możliwe jest określenie prawdopodobieństwa przyjęcia wartości w ∈ Xk przez atrybut Ak : P Ak = w := P Aw k (1.8) Definicja 1.3.10 Niech Y będzie dowolnym zbiorem. Funkcję f : I → Y , spełniającą warunek: ∀ x ∈ X ∀ i1 , i2 ∈ Ix f (i1 ) = f (i2 ) (1.9) nazywamy warstwami stałą. Warstwami stała funkcja f przyporządkowuje obiektom z tej samej warstwy dokładnie jeden element ze zbioru Y. Można powiedzieć, że f bezpośrednio działa na przykładach obiektów (jest uzależniona jedynie od zestawu atrybutów opisujących obiekt). Twierdzenie 1.3.2 Dla dowolnej funkcji h : X → R mierzalna jest funkcja: f :I→R gdzie I 3 i 7→ h(xi ) ∈ R Dowód: Należy pokazać (def. A.4.1), że: ∀a∈R {i ∈ I : f (i) < a} ∈ B Funkcja f jest warstwami stała, tzn. dla każdego x ∈ X zachodzi: ∀ i1 , i2 ∈ Ix f (i1 ) = h(xi1 ) = h(xi2 ) = f (i2 ) 10 Analiza dyskryminacyjna 1.3 Model klasyfikacyjny {i ∈ Ix : f (i) < a} = Ix ∨ {i ∈ Ix : f (i) < a} = ∅ Z definicji rodziny I X , wiemy, że [ Ix = I. Istnieje więc S ⊆ X , że: x∈X {i ∈ I : f (i) < a} = [ {i ∈ Ix : f (i) < a} = x∈X [ Ix x∈S Przypomnijmy, że I X jest rodziną zbiorów otwartych w przestrzeni obiektów (formalnie I X ⊆ T). Zatem ze zbiorów otwartych składać się musi rodzina: {Ix }x∈S ⊆ I X Unia dowolnej rodziny zbiorów otwartych jest zbiorem otwartym, zatem: {i ∈ I : f (i) < a} = [ Ix ∈ T ⊆ B x∈S Funkcja f jest więc mierzalna. Wniosek 1.3.4 Każda funkcja warstwami stała w I, o wartościach ze zbioru R liczb rzeczywistych, jest mierzalna w przestrzeni obiektów I. Powyższe twierdzenie jest prawdziwe dzięki specjalnej konstrukcji topologii T w I, która zakłada, że warstwa każdego przykładu jest zbiorem otwartym. 1.3.4. Warstwa klasy i pojęcie docelowe Niech będzie dany zbiór C = {1, . . . , g}, gdzie g ∈ N. Zbiór C nazywamy zbiorem klas (etykiet). W dalszej części każdemu obiektowi z I przypiszemy dokładnie jedną klasę z C (przydzielimy go więc do pewnej populacji). Definicja 1.3.11 Funkcję mierzalną E : I → C spełniającą warunek: E(I) = C nazywamy etykietą docelową przestrzeni obiektów I. Zwróćmy uwagę, że etykieta docelowa działa bezpośrednio na zbiorze obiektów I, klasyfikując obiekt i ∈ I do klasy E(i) ∈ C. Posiadamy jedynie „indeks” i ∈ I obiektu, oraz wartości jego atrybutów (przykład) xi ∈ X . Zauważmy, że etykieta E pośrednio działa na przykładzie xi przyporządkowanym do obiektu i (jej wartość może być uzależniona od przykładu). Ponadto możliwa jest sytuacja, gdzie różne obiekty opisane tym samym przykładem, klasyfikowane są do różnych klas lub nie. Definicja 1.3.12 Warstwą klasy k ∈ C w przestrzeni obiektów I nazywamy zbiór: I k := {i ∈ I : E(i) = k} Warstwa klasy k ∈ C jest zbiorem obiektów pochodzących z tej samej klasy k. 11 (1.10) 1.3 Model klasyfikacyjny Analiza dyskryminacyjna Definicja 1.3.13 Warunkową warstwą klasy k ∈ C (pod warunkiem, że znamy przykład x ∈ X ) w przestrzeni obiektów I, nazywamy zbiór: Ixk := I k ∩ Ix = {i ∈ Ix : E(i) = k} (1.11) Warunkowa warstwa klasy k ∈ C (pod warunkiem, że znamy przykład x ∈ X ) jest zbiorem tych obiektów, pochodzących z tej samej klasy k, które opisuje wspólny przykład x. Wniosek 1.3.5 Zbiory I k i Ixk są mierzalne, formalnie I k , Ixk ∈ B. Zachodzą ponadto równośći: [ Ix = I (1.12) Ik = I (1.13) Ixk = I k (1.14) Ixk = Ix (1.15) x∈X [ k∈C [ x∈X [ k∈C Warstwa klasy jest mierzalna ze względu na mierzalność etykiety docelowej E (def. A.4.1, tw. A.4.2, własność w3 ). Mierzalność warunkowej warstwy klasy wynika z mierzalności przecięcia dwóch zbiorów mierzalnych (def. A.2.1, tw. A.2.1, własność w4 ). Definicja 1.3.14 Każdą etykietę docelową E : I → C, dla której zachodzi: P (I k ) > 0 ∀k∈C nazywamy pojęciem docelowym w przestrzeni obiektów I. 1.3.5. Rozkłady a priori i a posteriori Zauważmy, że pojęcie docelowe wprowadza w zbiorze przykładów trzy rozkłady, zwane dalej prawdopodobieństwami a priori 3 i a posteriori 4 : Definicja 1.3.15 Rozkładami a priori wprowadzonymi przez pojęcie docelowe nazywamy: 1. πk := P (I k ) - prawdopodobieństwo klasy k, 2. p(x|k) := P (Ix |I k ) = P (Ix ∩ I k ) P (Ixk ) = - prawdopodobieństwo że x pod warunkiem, P (I k ) P (I k ) że klasa k. Definicja 1.3.16 Rozkładem a posteriori wprowadzonym przez pojęcie docelowe nazywamy prawdopodobieństwo, że ustalony przykład x pochodzi z klasy k: p(k|x) := P (I k |Ix ) = 3 4 P (I k ∩ Ix ) P (Ixk ) = P (Ix ) P (Ix ) W języku łacińskim - z założenia. W języku łacińskim - z następstwa. 12 Analiza dyskryminacyjna 1.3 Model klasyfikacyjny Stwierdzenie 1.3.1 Zachodzą równości: X πk = 1 (1.16) p(x|k) = 1 (1.17) p(k|x) = 1 (1.18) k∈C X ∀k∈C x∈X X ∀x∈X k∈C Dowód: Wykorzystując podstawowe własności miary probabilistycznej: (1.16) ! X πk = k∈C X P I k =P k∈C [ I k = P (I) = 1 k∈C (1.17) ustalmy k ∈ C X x∈X p(x|k) = X P (I k ) x x∈X P (I k ) P = P (Ixk ) P ( x∈X Ixk ) P (I k ) = = =1 P (I k ) P (I k ) P (I k ) S x∈X (1.18) analogicznie do (1.17). Stwierdzenie 1.3.2 Z twierdzenia Bayesa (A.3.4) wynika, że: πk p(x|k) p(k|x) = X πr p(x|r) (1.19) r∈C Rozkład a posteriori jest więc jednoznacznie wyznaczony przez rozkłady a priori. Jest to bardzo ważny wniosek, który w dalszej części pozwoli na konstrukcję pewnej specjalnej rodziny klasyfikatorów5 . 1.3.6. Przestrzeń ucząca Przypomnijmy, że w przestrzeni obiektów I z pojęciem docelowym E każdy obiekt i ∈ I pochodzi z klasy E(i) ∈ C. W praktyce nigdy nie znamy całej przestrzeni obiektów. Najczęściej posiadamy „skończoną” informację, która składa się z podrodziny przykładów opisujących pewne obiekty (ogólnie nieznane), wraz z listą klas, do których te obiekty przynależą. Można powiedzieć, że dane jest obcięcie pojęcia docelowego do pewnego podzbioru zbioru obiektów, co w praktycznym sensie odzwierciedla jedynie pośrednią zależność pojęcia docelowego od przykładu. Dalej skoncentrujemy się na uogólnieniu przedstawionego powyżej, intuicyjnego pojęcia, określanego mianem zbioru uczącego. Definicja 1.3.17 Niech będzie dana przestrzeń obiektów I = (I, B, P ) wraz z pojęciem do celowym E : I → C. Każdą parę S, ES gdzie S ∈ B i P (S) > 0, a ES : S → C jest funkcją daną wzorem ES := E|S (obcięcie E do S) nazywamy zbiorem uczącym w przestrzeni obiektów I. Funkcję ES nazywamy pojęciem indukowanym do zbioru S. 5 Rodzina klasyfikatorów bayesowskich przy znanych estymatorach prawdopodobieństw a priori. 13 1.3 Model klasyfikacyjny Analiza dyskryminacyjna Idea klasyfikacji opiera się na tym, aby na podstawie podanego zbioru uczącego, możliwe było uogólnienie (rozszerzenie) pojęcia indukowanego do etykiety jak najbliższej tej, która reprezentuje pojęcie docelowe. Definicja 1.3.18 Rodzinę zbiorów uczących: L(I, E) = n S, ES : S ∈ B, P (S) > 0 o (1.20) nazywamy przestrzenią uczącą w przestrzeni obiektów I z pojęciem docelowym E. W dalszych rozważaniach przestrzeń uczącą będziemy oznaczamy tylko symbolem L. 1.3.7. Reguła dyskryminacyjna i przestrzeń hipotez Wspomnieliśmy wcześniej o idei uogólnienia (rozszerzenia na podstawie zbioru uczącego) pojęcia indukowanego do etykiety jak najbliższej pojęciu docelowemu. Poniżej podamy definicję, która w naturalny sposób wprowadza takie uogólnienie. Definicja 1.3.19 Regułą dyskryminacyjną (klasyfikatorem) nazywamy każdą funkcję d : X × L → C, gdzie X × L 3 (x, S) 7→ d(x, S) ∈ C (1.21) gdzie I × L 3 (i, S) 7→ d(xi , S) ∈ C (1.22) Definicja 1.3.20 Funkcję dI : I × L → C, nazywamy przedłużeniem klasyfikatora d ze zbioru przykładów X na przestrzeń obiektów I. Reguła dyskryminacyjna działa (pod warunkiem ustalenia zbioru uczącego) na zbiorze przykładów (nie obiektów). Czyli dla dowolnego S ∈ L mamy: d( · , S) : X → C Można powiedzieć, że pod warunkiem podania zbioru uczącego S klasyfikator d klasyfikuje przykład x ∈ X do klasy d(x, S) ∈ C (mówimy wtedy, że zbiór uczący S uczy klasyfikator d). Klasyfikator d potrafi klasyfikować obiekty (działać na obiektach) poprzez swoje przedłużenie dI na przestrzeń obiektów I. Stwierdzenie 1.3.3 Dla dowolnego zbioru uczącego S ∈ L funkcja: dI ( · , S) : I → C jest funkcją mierzalną. Uzasadniając powyższe stwierdzenie, wystarczy zauważyć, że przedłużenie dI klasyfikatora d jest funkcją warstwami stałą (def. 1.3.10, tw. 1.3.2) w I (pod warunkiem ustalenia zbioru uczącego S). Definicja 1.3.21 Przestrzenią hipotez nazywamy zbiór n o H(X , C) := d( · , S) : X → C : S ∈ L, d − klasyfikator 14 (1.23) Analiza dyskryminacyjna 1.3 Model klasyfikacyjny Oznaczenie H(X , C) sugeruje utratę bezpośredniego związku pomiędzy pojęciem hipotezy a przestrzenią obiektów. W dalszej części zamiast H(X , C) pisać będziemy H Stwierdzenie 1.3.4 Zachodzi równość: H(X , C) = X C Dowód: Z definicji przestrzeni hipotez bezpośrednio wynika, że H(X , C) ⊆ X C . Aby pokazać, że X C ⊆ H(X , C) weźmy dowolną funkcję h ∈ X C . Dla każdego x ∈ X , S ∈ L określamy: d(x, S) := h(x) Oczywiście d : X × L → C jest klasyfikatorem ⇒ h ∈ H(X , C). Definicja 1.3.22 Przedłużeniem hipotezy h ∈ H na przestrzeń obiektów I nazywamy funkcję: hI : I → C, gdzie I 3 i 7→ h(xi ) ∈ C (1.24) Każda hipoteza klasyfikuje przykłady. Dla każdej hipotezy istnieje klasyfikator (wraz ze zbiorem uczącym) ją generujący. Hipoteza poprzez swoje przedłużenie na przestrzeń obiektów klasyfikuje również obiekty. Wniosek 1.3.6 Przedłużenie hI hipotezy h jest funkcją mierzalną. Powyższy wniosek wynika z twierdzenia 1.3.2. Przedłużenie hipotezy klasyfikuje obiekty opisane tym samym przykładem do wspólnej klasy (jest funkcją warstwami stałą). 1.3.8. Odległość w przestrzeni hipotez Mając zebrane wszystkie możliwe hipotezy w jednym miejscu chcielibyśmy móc ocenić ich „ jakość” (inaczej miarę błędnych klasyfikacji). W tym celu wprowadzimy odległość w przestrzeni hipotez, która pozwoli porównać dwie dowolne hipotezy. Podamy również definicję odległości hipotezy od pojęcia docelowego. Definicja 1.3.23 Niech g, h ∈ H oznacza dwie dowolne hipotezy. Różnicą hipotez g i h nazywamy zbiór: n o g \ h := i ∈ I : gI (i) 6= hI (i) (1.25) gdzie gI , hI są przedłużeniami hipotez g, h na przestrzeń obiektów I. Stwierdzenie 1.3.5 g \ h ∈ B dla dowolnych hipotez g, h ∈ H. Przedłużenie dowolnej hipotezy jest funkcją mierzalną w I. Uzasadnienie kończymy podając twierdzenia A.4.2, własność (w4 ). Definicja 1.3.24 Odległością hipotez g, h ∈ H nazywamy prawdopodobieństwo: P g\h Tak zdefiniowana odległość ma kilka naturalnych własności: 1. P h \ h = 0 dla każdej hipotezy h ∈ H 2. P g \ h = P h \ g dla dowolnych g, h ∈ H 15 1.3 Model klasyfikacyjny Analiza dyskryminacyjna 3. odległość nieprzecinających się hipotez wynosi 1. Definicja 1.3.25 Różnicą dowolnej hipotezy h ∈ H i pojęcia docelowego E nazywamy zbiór: n o E \ h := i ∈ I : E(i) 6= hI (i) (1.26) Na podstawie mierzalności funkcji E i mierzalności przedłużenia hI hipotezy h stwierdzamy, że E \ h ∈ B. Niech będzie dany przykład x ∈ X . Ix jest zbiorem obiektów opisanych przykładem x. Przedłużenie hI hipotezy h klasyfikuje wszystkie obiekty z warstwy Ix do tej h(x) samej klasy h(x). Łatwo zatem o wniosek, że warunkowa warstwa Ix nie jest obarczona błędem klasyfikacji, gdzie poza nią błąd jest z pewnością popełniany. Istotnie: n o Ixh(x) = i ∈ Ix : E(i) = h(x) Wniosek 1.3.7 Zachodzą równości: E \h=I \ [ Ixh(x) = x∈X [ Ix \ Ixh(x) x∈X Otrzymaliśmy dość klarowny obraz struktury zbioru będącego różnicą pojęcia docelowego i dowolnej hipotezy. Definicja 1.3.26 Błędem rzeczywistym hipotezy h ∈ H nazywamy prawdopodobieństwo: P E \ h) Można powiedzieć, że błąd rzeczywisty hipotezy h reprezentuje jej odległość od pojęcia docelowego. Definicja 1.3.27 Błędem indukowanym (błędem próby) hipotezy h ∈ H na zbiorze uczącym (S, ES ) ∈ L nazywamy prawdopodobieństwo warunkowe: n o P E \ h S = P i ∈ S : ES (i) 6= hI (i) 1.3.9. Problem dyskryminacyjny Wyznaczenie błędu rzeczywistego hipotezy najczęściej w praktyce nie jest możliwe (pojęcie docelowe jest na ogół nieznane). Posiadamy jedynie zbiór uczący będący podzbiorem zbioru obiektów wraz z pojęciem indukowanym do tego zbioru. Pozwala to na estymację błędu rzeczywistego hipotezy i często na dokładne wyznaczenie jej błędu indukowanego. Definicja 1.3.28 Zadanie wyboru klasyfikatora d nazywamy problemem dyskryminacyjnym w przestrzeni obiektów I ze zbiorem uczącym S. Idea klasyfikacji sprowadza się do poszukiwania hipotezy jak najbardziej zbliżonej do pojęcia docelowego. Dalej skoncentrujemy się na podaniu hipotezy minimalizującej odległość od pojęcia docelowego. P E \h −−→ h∈H 16 min (1.27) Analiza dyskryminacyjna 1.4 Reguła Bayesa 1.4. Reguła Bayesa W praktyce rozkłady a priori (wyznaczone przez pojęcie docelowe) nie są znane. Posiadamy jedynie informacje o pojęciu indukowanym do zbioru uczącego, co pozwala na estymację. Poniżej przedstawiamy klasyfikator, którego konstrukcja umożliwia wykorzystanie estymatorów prawdopodobieństw a priori. 1.4.1. Klasyfikator bayesowski Przy znanym rozkładzie a posteriori p(k|x) najbardziej naturalną jest hipoteza, która klasyfikuje przykład x do klasy k z maksymalnym prawdopodobieństwem p(k|x) (def. 1.3.16). Definicja 1.4.1 Funkcję E b : X → C daną wzorem: E b (x) := arg max p(k|x) (1.28) k nazywamy etykietą bayesowską. W przypadku istnienia kilku klas z maksymalnym prawdopodobieństwem a posteriori, etykieta bayesowska wybiera jedną z nich (dowolną). Etykieta bayesowska jest oczywiście hipotezą. Formalnie: E b ∈ H. Wniosek 1.4.1 Z maksymalizacji prawdopodobieństwa a posteriori p(k|x) wynika: ∀x∈X ∀k∈C P IxE b (x) ­ P (Ixk ) Wniosek 1.4.2 Wybór takiej klasy k, że maksymalne jest prawdopodobieństwo p(k|x), równoważny jest wyborowi takiego k, że maksymalna jest wartość wyrażenia πk p(x|k) (stw. 1.3.2). Ogólnie zachodzi: E b (x) := arg max πk p(x|k) (1.29) k Hipoteza to inaczej „nauczony klasyfikator”. W przypadku reguły bayesowskiej zbiór uczący wykorzystywany jest do estymacji rozkładów a priori (wspomnieliśmy wcześniej, że rozkłady te w praktyce nie są znane). 1.4.2. Optymalność reguły bayesowskiej Poniżej formułujemy twierdzenie, które można nazwać fundamentalnym w analizie dyskryminacyjnej. Twierdzenie 1.4.1 Etykieta bayesowska minimalizuje odległość od pojęcia docelowego. Dowód: Należy pokazać, że: ∀h∈H P (E \ h) ­ P (E \ E b ) Ustalmy więc h ∈ H. Przywołując wniosek 1.3.7 zapisujemy: E \h= [ Ix \ Ixh(x) E \ Eb = x∈X [ x∈X 17 Ix \ IxE b (x) 1.4 Reguła Bayesa Analiza dyskryminacyjna Z przeliczalności zbioru X (tw. 1.3.1) i przeliczalnej addytywności miary (def. A.3.1, własność µ3 ) otrzymujemy: P (E \ h) = X X P (Ix ) − P Ixh(x) x∈X x∈X P (E \ E b ) = X P Ix \ Ixh(x) = P Ix \ IxE b (x) = x∈X X P (Ix ) − P IxE b (x) x∈X Wniosek 1.4.1 stwierdza bezpośrednio: P Ixh(x) ¬ P IxE b (x) Zatem: P (Ix ) − P Ixh(x) ­ P (Ix ) − P IxE X x∈X P (Ix ) − P Ixh(x) X ­ b (x) P (Ix ) − P IxE b (x) x∈X Otrzymujemy więc tezę: P (E \ h) ­ P (E \ E b ) Pokazaliśmy istnienie jednoznacznie wyznaczonej „najlepszej” hipotezy (hipotezy z najmniejszym prawdopodobieństwem błędu). Jest nią etykieta bayesowska E b . Wskazaliśmy ponadto, że etykieta bayesowska może być przybliżana hipotezami bayesowskimi w zależności od jakości estymacji rozkładów a priori. 18 Rozdział 2 Drzewa klasyfikacyjne 2.1. Wprowadzenie Drzewa klasyfikacyjne (decyzyjne) pojawiły się niezależnie w nauczaniu maszynowym i w statystyce. Oparte na nich algorytmy są najczęściej wykorzystywane. Struktura drzew decyzyjnych pozwala na konstrukcję najogólniejszych reguł klasyfikacyjnych, efektywnych w implementacji i przejrzystych w logicznej konstrukcji. Na szczególną uwagę zasługuje przydatność struktur do rozwiązywania zadań o dużym wymiarze prób losowych 1 i/lub lub dużym wymiarze wektora obserwacji 2 (np.: klasyfikacja kredytobiorców, predykcja predyspozycji klienta do odejścia). Podstawową wielkością charakteryzującą „dobroć” algorytmu jest jego złożoność obliczeniowa, która pokazuje zależność pomiędzy czasem 3 działania algorytmu, a jego parametrami wejściowymi. Definiuje się również pojęcie złożoności pamięciowej, jednak istnienie nośników potrafiących pomieścić TB4 danych zmniejsza wagę tej wielkości. Skalowalność procesu to „zawieranie” się w nim harmonijnych zależności pomiędzy sposobem jego działania i zmianą warunków początkowych. Dla algorytmów jest to np. proporcjonalność czasu działania do wielkości danych wejściowych. W terminologii systemów informatycznych skalowalność definicjainiuje się jako możliwość harmonijnego rozrastania się systemu w miarę upływu czasu i zwiększania liczby jego użytkowników, bez konieczności rewolucyjnych zmian projektowych. Poniższy tekst wprowadza formalne definicje, zakładając istnienie przestrzeni obiektów I = i I I, B, P z rodziną obserwacji X = x i∈I , zbiorem przykładów X rodziny X I oraz pojęciem docelowym E : I → C, gdzie C = {1, ..., g} g ∈ N jest zbiorem etykiet klas (definicje: 1.3.4, 1.3.5, 1.3.8, 1.3.14). 2.2. Struktura drzewa W teorii grafów drzewem (def. B.2.1) nazywamy dowolny graf (def. B.1.1) spójny (def. B.1.10) i acykliczny (def. B.1.9) . Rozpatrzmy drzewo T =< V, E > o zbiorze wierzchołków 1 Najczęściej liczba obserwacji w zbiorze uczącym / testowym. Liczba atrybutów opisujących obserwacje. 3 W ogólności liczba iteracji. 4 Terabajt [TB] = 230 bajtów 2 19 2.2 Struktura drzewa Drzewa klasyfikacyjne v3 V={v1,v2,v3,v4,v5,v6} E={e1,e2,e3,e4,e5,e6} v2 e3 e2 v5 e6 v7 e4 e1 v4 e5 v1 v6 Rysunek 2.1: Graf będący drzewem V i krawędzi E. W zbiorze V wyróżniamy podzbiór wierzchołków LT ⊂ V będących liśćmi (def. B.2.2) drzewa T . Wykorzystując pojęcie stopnia wierzchołka (def. B.1.5) zapisujemy: LT := {v ∈ V : degT (v) = 1} Ustalmy wierzchołek r ∈ V drzewa T i nazwijmy go korzeniem drzewa T . Oznaczmy przez LTr zbiór: LTr := LT \ {r} (2.1) W szczególnym przypadku korzeń r może być liściem drzewa T . Zbiór LTr nie zawiera wtedy korzenia r. Definicja 2.2.1 Zbiór NrT := V \ LTr (2.2) nazywamy zbiorem węzłów drzewa T z ustalonym korzeniem r. Do zbioru węzłów drzewa T zaliczają się wszystkie wierzchołki o stopniu wyższym niż 1 oraz ustalony korzeń r ∈ V . Dla dowolnych wierzchołków u, v ∈ V drzewa T istnieje dokładnie jedna u − v droga (def. B.1.6) i jest to droga prosta (def. B.1.7, tw. B.2.1). W szczególności, dla dowolnego liścia l ∈ LTr istnieje dokładnie jedna r − l droga prosta łącząca korzeń r z liściem l. Mówimy, że r − l droga prowadzi od korzenia r, przez węzły, do liścia l. Definicja 2.2.2 Liczbę ( splitTr (n) := degT (n) − 1 jeśli n 6= r degT (n) jeśli n = r (2.3) nazywamy współczynnikiem rozgałęzienia w węźle n ∈ NrT drzewa T z ustalonym korzeniem r. 20 Drzewa klasyfikacyjne 2.2 Struktura drzewa - korzeń r - węzeł - liść 1 2 3 r Rysunek 2.2: Graf będący drzewem z wyróżnionym korzeniem Każdy węzeł n ∈ NrT posiada dokładnie degT (n) wierzchołków sąsiadujących (def. B.1.4) . W przypadku n 6= r istnieje dokładnie jeden węzeł s sąsiadujący z n, który leży na r − n drodze (od korzenia r do węzła n). Pozostałe wierzchołki sąsiadujące z n leżą na drogach od korzenia, do liścia, przechodzących przez węzeł n. Traktując rzecz obrazowo powiemy, że droga od korzenia r, przez węzeł n, prowadząc do liścia, może w węźle n rozgałęzić się na splitTr (n) sposobów (rysunek 2.2). Definicja 2.2.3 Poprzednikiem (węzłem macierzystym) wierzchołka n ∈ V różnego od korzenia r, nazywamy węzeł s sąsiadujący z n leżący na r − n drodze. Piszemy wtedy s n. Przyjmujemy, że korzeń r nie posiada poprzedników. Każdy wierzchołek różny od korzenia posiada dokładnie jeden węzeł macierzysty. Definicja 2.2.4 Następnikiem (potomkiem) węzła n ∈ NrT nazywamy każdy wierzchołek m (węzeł lub liść) sąsiadujący z n i nie będący jego poprzednikiem. Piszemy wtedy n m. Zbiór n n := m ∈ V : n m o (2.4) nazywamy zbiorem następników węzła n. Wniosek 2.2.1 Zachodzi równość |n | = splitTr (n) Definicja 2.2.5 Testem w węźle n ∈ NrT nazywamy każdą funkcję: tn : X → n gdzie X 3 x 7→ nx ∈ n (2.5) Zauważmy, że test jest funkcją przyporządkowaną do węzła, która przeprowadza przykłady na następniki tego węzła. Definicja 2.2.6 Mówimy, że test tn : X → n w węźle n ∈ NrT jest testem atrybutu Ak , k ∈ {1, . . . , p} jeżeli istnieje taka funkcja tkn : Xk → n , że: ∀x∈X tn (x) = tkn Ak (x) 21 (2.6) 2.2 Struktura drzewa Drzewa klasyfikacyjne Definicja 2.2.7 Przekształcenie: c : LTr → C gdzie LTr 3 l 7→ kl ∈ C (2.7) nazywamy etykietą liści l ∈ LTr drzewa T . Definicja 2.2.8 Drzewem klasyfikacyjnym (decyzyjnym) nazywamy każde drzewo Tr =< V, E > z korzeniem r ∈ V , rodziną testów {tn }n∈NrT oraz etykietą liści c : LTr → C. Zbiór LTr nazywamy zbiorem liści drzewa klasyfikacyjnego Tr . Zbiór NrT nazywamy zbiorem węzłów drzewa klasyfikacyjnego Tr . Definicja 2.2.9 Mówimy, że drzewo klasyfikacyjne Tr =< V, E > jest drzewem binarnym, jeżeli: ∀ n ∈ NrT |n | = 2 Drzewo klasyfikacyjne jest drzewem, które posiada dodatkową interpretację dla węzłów, gałęzi i liści: • węzły odpowiadają testom przeprowadzanym na wartościach atrybutów przykładów, węzeł drzewa, który nie ma żadnych węzłów macierzystych jest korzeniem, • gałęzie odpowiadają możliwym wynikom tych testów, • liście odpowiadają etykietom klas danego problemu dyskryminacji (w konwencji drzewo klasyfikacyjne ma więcej niż 1 liść), • drzewo „rośnie” od góry do dołu (od korzenia do liści). {1,2,3,4,5,6,7,8,9} wykształcenie średnie 0 podstawowe płeć kobieta wyższe {3,0} mężczyzna wiek ¬ 50 > 50 0 1 1 0 {1,3,7} {2,4} {5} {6,8,9} Rysunek 2.3: Przykład drzewa klasyfikacyjnego Zaobserwowane elementy próby przesuwają się wzdłuż gałęzi przez węzły. W węzłach podejmowane są decyzje o wyborze gałęzi, wzdłuż której trwa przesuwanie. W każdym węźle mamy do czynienia z podziałem elementów do niego docierających na podgrupy (względem zapisanego w nim kryterium podziału - testu). Przesuwanie trwa do momentu, gdy napotkamy liść, 22 Drzewa klasyfikacyjne 2.3 Drzewo jako hipoteza który ma etykietę którejś z klas. Rysunek 2.3 przedstawia przykład drzewa klasyfikacyjnego. Dla każdego liścia istnieje dokładnie jedna droga łącząca go z korzeniem. Zbiór wszystkich takich dróg może być przekształcony do zbioru reguł (na ogół koniunkcji pewnych warunków elementarnych), klasyfikujących przykłady w sposób identyczny jak „robi” to drzewo. Możliwa jest więc konwersja drzewa decyzyjnego do zbioru reguł. Ze względu na czytelność i pamięciową oszczędność reprezentacji nie zawsze jest to uzasadnione działanie. Konwersja wykorzystywana jest przy przycinaniu drzewa, czyli zapobieganiu nadmiernemu dopasowaniu (2.5). Przykładowa ścieżka (droga pomiędzy korzeniem i liściem) w drzewie klasyfikacyjnym została przedstawiona na rysunku 2.4 - od korzenia → przez węzły i gałęzie → do liścia. t1 t2 c5 c1 c2 c3 c6 c4 t3 c7 c8 c9 c10 Rysunek 2.4: Ścieżka w drzewie klasyfikacyjnym 2.3. Drzewo jako hipoteza Przedstawiliśmy obrazowo sposób klasyfikacji przykładów przez drzewo decyzyjne. Poniżej podamy definicję formalną funkcji klasyfikującej stowarzyszonej z drzewem klasyfikacyjnym. Niech będzie dane drzewo klasyfikacyjne Tr =< V, E > z korzeniem r, rodziną testów {tn }n∈NrT i etykietą liści c. Definicja 2.3.1 Hipotezą hT reprezentowaną drzewem klasyfikacyjnym T nazywamy przekształcenie zdefiniowane regułą rekurencyjną: 1. ustalamy x ∈ X , n0 = r 2. ni+1 := tni (x) - wykonuj działanie dopóki wynik nie będzie liściem, 3. jeżeli w k-tym kroku nk ∈ LTr (jest liściem), to zwróć etykietę liścia c(nk ) ∈ C. Twierdzenie 2.3.1 Funkcja hT jest hipotezą (def. 1.3.21) . Dowód: Z definicji 2.3.1 wynika, że hT ∈ X C , co kończy dowód na mocy stwierdzenia 1.3.4. 23 2.4 Metody konstrukcji drzew Drzewa klasyfikacyjne Wniosek 2.3.1 W drzewie klasyfikacyjnym T istnieje dokładnie jeden liść lx związany z przykładem x ∈ X określony rekursją w krokach 1 i 2 definicji 2.3.1. Błąd rzeczywisty (indukowany / próby) hipotezy reprezentowanej przez drzewo nazywać będziemy błędem rzeczywistym (indukowanym / próby) drzewa. 2.4. Metody konstrukcji drzew Pokazaliśmy, że drzewa klasyfikacyjne reprezentują hipotezy. Przypomnijmy, że hipoteza jest wynikiem uczenia się klasyfikatora (def. 1.3.19) . W praktyce najczęściej zachodzi konieczność utworzenia drzewa decyzyjnego dedykowanego do danego problemu dyskryminacyjnego. Poniżej przedstawimy podstawowe metody konstrukcji drzew reprezentujących hipotezy przybliżające pojęcia docelowe na podstawie dostępnych zbiorów uczących (def. 1.3.17) . Rozszerzymy tym samym pojęcie drzewa decyzyjnego do klasyfikatora. Naszym celem jest zbudowanie drzewa klasyfikacyjnego z możliwie małym błędem rzeczywistym i małym błędem indukowanym. W praktyce stosuje się estymację błędu rzeczywistego (pojęcie docelowe jest nieznane). Minimalizacja obu błędów jednocześnie nie jest na ogół możliwa. Często dochodzi do sytuacji, w której na rzecz mniejszego błędu rzeczywistego pozwala się na większy błąd próby. W zadaniu budowy drzewa decyzyjnego wyróżnia się cztery podstawowe składowe: 1. Rodzinę {tsn } testów określających podział w każdym węźle. 2. Zdefiniowane kryterium ϕ(tsn ) jakości podziału określone dla każdego testu tsn , w każdym węźle n. 3. Kryterium stopu budowy drzewa. 4. Konstrukcja reguły decyzyjnej (etykiety liści drzewa). 2.4.1. Konstrukcja testów Dobór odpowiedniego testu jest decyzją o kluczowym znaczeniu dla późniejszych właściwości drzewa. Test powinien zapewniać możliwie dokładną klasyfikację dostępnych przykładów. Konstrukcja testów jest wysoce uzależniona od typu testowanego atrybutu. Przedstawimy jedynie testy binarne5 zależne od wartości pojedynczych atrybutów. Użycie większej liczby atrybutów w jednym teście może prowadzić do uproszczenia drzewa. Należy zwrócić uwagę, iż proces doboru jest problemem znacznie trudniejszym i kosztowniejszym w realizacji. Złożoność obliczeniowa i skalowalność powstającego procesu klasyfikacji jest w tym przypadku priorytetem. W poniższym tekście testy będziemy traktować jako funkcje zależne jedynie od atrybutu i jego wartości. Zachodzi konieczność wprowadzenia dodatkowych oznaczeń: A : X → SA - gdzie A atrybut: A(x) - wartość atrybutu A dla przykładu x ∈ X, SA - zbiór wartości atrybutu A, 5 W praktyce najczęściej stosuje się drzewa binarne, w których każdy węzeł ma po dwóch potomków. Testy binarne to zatem testy o dwuelementowym zbiorze możliwych wyników. 24 Drzewa klasyfikacyjne 2.4 Metody konstrukcji drzew t : X → St - gdzie t test: t(x) - wartość testu t dla przykładu x ∈ X, St - zbiór wartości testu t. Testy dla atrybutów nominalnych Definicja 2.4.1 Test t : X → St nazywamy testem tożsamościowym atrybutu A : X → SA jeżeli: t(x) = A(x) ∀ x ∈ X (2.8) Jest to rodzaj testu, polegający na utożsamieniu testu z atrybutem. Oczywiście St = SA . Taki test jest bardzo wygodny przy drzewach nie będących binarnymi. Pozwala na duży współczynnik rozgałęzienia, co zmniejsza głębokość drzewa i koszt klasyfikacji. Jego mankamentem jest niska stosowalność przy atrybutach o dużej liczbie możliwych wartości. Definicja 2.4.2 Test t : X → St nazywamy testem równościowym atrybutu A : X → SA jeżeli: ( 0 jeśli A(x) = w t(x) = (2.9) 1 jeśli A(x) 6= w gdzie w ∈ SA . W tym przypadku St = {0, 1}. Wybór najlepszego testu równościowego wymaga sprawdzenia co najwyżej wszystkich wartości atrybutu A. Definicja 2.4.3 Test t : X → St nazywamy testem przynależnościowym atrybutu A : X → SA jeżeli: ( 0 jeśli A(x) ∈ W (2.10) t(x) = 1 jeśli A(x) ∈ /W gdzie W ⊂ SA . Ten rodzaj testów jest uogólnieniem testów równościowych. Zauważmy, że dobór najlepszego testu wymaga co najwyżej sprawdzenia wszystkich właściwych podzbiorów zbioru SA , co przy n możliwych wartościach atrybutu A wymaga 2n−1 − 1 porównań. Jest to zależność wykładnicza (czyli bardzo kosztowna), sugerująca konieczność zaproponowania rozsądnego sposobu wyboru rozpatrywanych zbiorów W jako podzbiorów zbioru SA . Przy tego rodzaju testach 6 jest to kwestia mająca kluczowy wpływ na dalszą skalowalność procesu klasyfikacji. Testy dla atrybutów ciągłych Przy atrybutach ciągłych można stosować testy przynależnościowe. W tym przypadku jako podzbiory W ⊂ SA bierze się pewne przedziały, gdzie dobór ich „końców” jest istotny. Mankamentem testów przynależnościowych przy ciągłych atrybutach, jest brak uwzględnienia istnienia relacji porządku w zbiorze możliwych wartości analizowanego atrybutu. Konstruuje się również testy uwzględniające istnienie owej relacji, nazywane testami nierównościowymi7 . 6 7 Testy przynależnościowe stosowane są przy konstrukcji klasyfikatora SLIQ i SPRINT Testy nierównościowe są wykorzystywane przy konstrukcji klasyfikatora SLIQ i SPRINT 25 2.4 Metody konstrukcji drzew Drzewa klasyfikacyjne Definicja 2.4.4 Test t : X → St nazywamy testem nierównościowym atrybutu A : X → SA jeżeli: ( 0 jeśli A(x) ¬ w t(x) = (2.11) 1 jeśli A(x) > w gdzie w ∈ SA . Zapisując SA = {w1 , w2 , . . . , wn } i przyjmując, że ciąg {w1 , w2 , . . . , wn } jest ciągiem uporządkowanym (posortowanym w kolejności rosnącej), możemy stwierdzić, że dowolna taka wartość w, że wi < w < wi+1 dla ustalonego i = 1, . . . , n − 1, daje jednakowy wynik testu nierównościowego (dzieli zbiór X zawsze w taki sam sposób). Zatem, aby wybrać najbardziej odpowiedni test, wystarczy przeprowadzić tylko n − 1 porównań. Zazwyczaj za punkt podziału obiera się środek przedziału [wi , wi+1 ]. Przy rozważaniu kwestii skalowalności, należy zwrócić uwagę na koszt sortowania zbioru wartości testowanego atrybutu8 . 2.4.2. Kryteria jakości podziałów Podpróba docierająca do węzła dzielona jest na części. Oczywiście nie powinien to być proces przypadkowy. Zależy nam na podziale, który daje jak najmniejszą różnorodność klas w otrzymanych częściach, tak aby różnica pomiędzy różnorodnością klas w węźle i różnorodnością klas w tych częściach, była możliwie duża. Definicja 2.4.5 Każdą funkcję φ : G ⊂ [0, 1]g → R gdzie (p1 , p2 , . . . , pg ) ∈ G ⇔ g X pk = 1 (2.12) k=1 spełniającą następujące warunki: 1. φ przyjmuje wartość maksymalną w punkcie 1 1 1 g, g,..., g ∈ G. 2. φ osiąga minimum jedynie w punktach (1, 0, 0, . . . , 0), (0, 1, 0, . . . , 0), . . . , (0, 0, 0, . . . , 1) ∈ G 3. φ(p1 , p2 , . . . , pg ) jest symetryczna ze względu na p1 , p2 , . . . , pg . nazywamy funkcją różnorodności klas. Definicja 2.4.6 Jeżeli wierzchołek m ∈ V jest następnikiem węzła n ∈ NrT to n m−następnikiem zbioru przykładów U ⊆ X i n m−następnikiem zbioru obiektów S ⊆ I nazywamy: n o (2.13) n o (2.14) Unm := x ∈ U : tn (x) = m Snm := i ∈ S : tn (xi ) = m n m−następniki reprezentują przykłady ze zbioru U i obiekty ze zbioru S klasyfikowane testem tn do następnika m węzła n. 8 Przy konstrukcji klasyfikatora SLIQ, stosuje się sortowanie wstępne (ang. pre-sorting) 26 Drzewa klasyfikacyjne 2.4 Metody konstrukcji drzew Wniosek 2.4.1 Zachodzą równości: Xnm = t−1 n (m) [ Inm = Ix x∈Xnm Twierdzenie 2.4.1 n m−następnik mierzalnego zbioru obiektów S ⊆ I jest zbiorem mierzalnym. Dowód: Należy pokazać, że zbiór Snm ∈ B dla dowolnych n, m ∈ V gdzie n m. Oznaczmy n XS := x ∈ X : Ix ⊆ S o Pisząc Ix rozważamy warstwę przykładu x (def. 1.3.7) . Zbiór XS zawiera wszystkie przykłady, których warstwa jest podzbiorem zbioru S. Niech [ Z := S \ Ix x∈XS Z założenia zbiór S ∈ B. Unia rodziny zbiorów mierzalnych jest zbiorem mierzalnym, zatem [ Ix ∈ B x∈XS Na podstawie twierdzenia A.2.1 własność w5 (różnica zbiorów mierzalnych jest zbiorem mierzalnym) stwierdzamy, że Z ∈ B. [ Ix S=Z∪ x∈XS Możliwe są dwa przypadki: 1. Z = ∅ - rozważany zbiór S jest unią podrodziny rodziny warstw I X , 2. istnieje dokładnie jeden przykład z ∈ X , że Z ⊂ Iz - zbiór Z jest mierzalnym podzbiorem warstwy pewnego przykładu. Z definicji następnika zbioru n o Snm := i ∈ S : tn (xi ) = m wynika bezpośrednio, że istnieje U ⊆ XS , że Snm = [ Ix lub Snm = Z ∪ x∈U [ Ix x∈U ⇒ Snm ∈ B Definicja 2.4.7 Jeżeli S ⊆ I jest takim mierzalnym zbiorem obiektów, że P (S) > 0, to miarę różnorodności klas w zbiorze S określamy wzorem: q(S) := φ p(1|S), p(2|S), . . . , p(g|S) (2.15) gdzie φ jest funkcją różnorodności klas, a p(k|S) prawdopodobieństwem klasy k pod warunkiem, że zaszło zdarzenie S: p(k|S) := P I k S (2.16) 27 2.4 Metody konstrukcji drzew Drzewa klasyfikacyjne Główne miary różnorodności klas W praktyce najczęściej stosuje się niżej wymienione miary różnorodności klas. Indeks Giniego i entropie wykazują większą czułość na zmiany rozkładu klas w próbie. 1. Proporcja błędnych klasyfikacji: q(S) ≡ p(S) := 1 − max p(k|S) (2.17) k 2. Indeks Giniego: q(S) ≡ G(S) := 1 − g X 2 p(k|S) (2.18) p(k|S) ln p(k|S) (2.19) k=1 3. Entropia: q(S) ≡ E(S) := − g X k=1 Rysunek 2.5 przedstawia zależność pomiędzy proporcją błędnych klasyfikacji, indeksem Giniego i entropią. Wartość funkcji entropii podzielona została przez 2 ln 2. 0.5 P(p1,p2) G(p1,p2) E(p1,p2) 0.45 0.4 0.35 phi(p1,p2) 0.3 0.25 0.2 0.15 0.1 0.05 0 0 0.2 0.4 0.6 0.8 p1*sqrt(2), p2=1-p1 1 1.2 1.4 Rysunek 2.5: Proporcja błędnych klasyfikacji, indeks Giniego i entropia Różnorodność jest tym większa im większa jest wartość miary q(S). Po dokonaniu podziału w węźle n ∈ NrT zbiór Snm reprezentuje obiekty, które przeszły z węzła n do jego następnika m ∈ n . Definicja 2.4.8 Przez miarę zmiany różnorodności klas w węźle n ∈ NrT drzewa klasyfikacyjnego Tr przy założeniu, że w węźle n znajdują się wszystkie obiekty z S, rozumie się kryterium oceny podziału w węźle n: ∆q(S|n) := q(S) − X m∈n , P (Snm )>0 28 P (Snm |S)q(Snm ) (2.20) Drzewa klasyfikacyjne 2.4 Metody konstrukcji drzew Pisząc ∆q(S|n) zakładamy istnienie testu w węźle n. W sytuacji, gdy do węzła przyporządkowany jest zbiór testów, definicja 2.4.8 umożliwia wybór podziału z największą wartością miary zmiany różnorodności klas. W tym sensie jest to podstawowe kryterium oceny testu w węźle drzewa klasyfikacyjnego. Dla drzew binarnych Breiman [3] sformułował i udowodnił następujące twierdzenie. Twierdzenie 2.4.2 (Breiman) Dla binarnego drzewa Tr i wklęsłej funkcji różnorodności klas zachodzi: (i) ∆q(S|n) ­ 0 dla dowolnego węzła n ∈ NrT oraz S ∈ B, że P (S) > 0, (ii) jeżeli n = {nL , nR } to równość w (i) zachodzi wtedy i tylko wtedy, gdy rozkłady klas w S, SnnL i SnnR są identyczne, tzn.: ∀ k ∈ {1, . . . , g} p k|S = p k|SnnL = p k|SnnR 2.4.3. Kryterium stopu i reguła decyzyjna Budowę drzewa klasyfikacyjnego rozpoczynamy od drzewa złożonego z jednego wierzchołka, do którego przyporządkowujemy zbiór uczący i zbiór dostępnych testów. W dalszych krokach konstruujemy podziały, tworząc węzły i ich następniki. Wraz ze wzrostem drzewa maleje zbiór uczący i zbiór testów docierający na kolejne jego poziomy. Poniżej przedstawiamy kilka oczywistych wytycznych, którymi należy się kierować podczas budowy drzewa. Należy zaniechać konstrukcji podziału w wierzchołku jeżeli: 1. Wystąpienie klasy k w podpróbie uczącej dostępnej w wierzchołku jest zdarzeniem z prawdopodobieństwem warunkowym 1. 2. Zastosowanie każdego dostępnego podziału daje zerową lub ujemną miarę zmiany różnorodności klas. 3. Zbiór dostępnych testów jest pusty. Gdy obiekty w wierzchołku należą do tej samej klasy, to zajdzie przypadek 1. Sytuacja 2 ma miejsce w wierzchołku, w którym zbiór dostępnych testów jest oparty o atrybuty z jednakową wartością dla wszystkich dostępnych przykładów. Warunek 3 bezpośrednio wiąże się z brakiem uzasadnienia dla więcej niż jednokrotnego użycia danego podziału w obrębie jednej scieżki. Wystąpienie przypadków 2 lub 3 może świadczyć o zajściu jednej z poniższych sytuacji: • zbiór trenujący nie jest poprawny i zawiera przekłamania, • zestaw atrybutów nie opisuje obiektów w dostatecznym stopniu i w związku z tym przestrzeń hipotez jest zbyt uboga do reprezentowania pojęcia docelowego, • przyjęty zbiór dostępnych atrybutów jest niewystarczający. Definicja 2.4.9 Jeżeli S jest podpróbą uczącą dostępną w wierzchołku n, a T zbiorem dostępnych testów, to kryterium stopu wstrzymujące konstrukcję podziału w n określamy wyrażeniem: ∃k∈C p(k|S) = 1 ∨ ∀tn ∈T ∆q(S|n) ¬ 0 ∨ T = ∅ (2.21) 29 2.5 Problem nadmiernego dopasowania Drzewa klasyfikacyjne Po wstrzymaniu konstrukcji podziału wierzchołek staje się liściem, do którego należy przyporządkować etykietę klasy. Definicja 2.4.10 Jeżeli S jest zbiorem uczącym, to etykietę daną wzorem cS := arg max p(k|S) k (2.22) nazywamy etykietą większościowej kategorii w zbiorze uczącym S. W sytuacji, gdy zbiór dostępnych obiektów jest zdarzeniem z niezerowym prawdopodobieństwem etykietę wybieramy na podstawie etykiety większościowej kategorii. Jeżeli nie istnieją wierzchołki, w których kryterium stopu uzna za zasadne utworzenie nowego podziału, to drzewo uznajemy za zbudowane. 2.4.4. Zstępująca konstrukcja drzewa Istnieje wiele algorytmów uczenia się pojęć wykorzystujących drzewa decyzyjne do reprezentacji hipotez. Każdy z nich dąży do uzyskania struktury o niewielkim rozmiarze z możliwie niewielkim błędem próbki zakładając, że błąd rzeczywisty będzie również nieznaczny. Poniżej przedstawimy część wspólną większości tych algorytmów, określaną mianem zstępującej konstrukcji drzewa. Schemat zakłada rozpoczęcie budowy drzewa od pojedynczego wierzchołka (korzenia), któremu przyporządkowuje się wszystkie elementy ze zbioru trenującego. Kolejnym krokiem jest ustalenie zasadności utworzenia podziału w węźle. W przypadku decyzji pozytywnej kreujemy wierzchołki następniki. Nowoutworzone wierzchołki traktujemy jako korzenie „nowych” drzew z przypisanymi częściami próby uczącej. Procedurę powtarzamy do uzyskania liści (wierzchołków bez podziału), dla których określamy regułę decyzyjną. Tak rozumiany schemat najwygodniej jest opisać regułą rekurencyjną. Funkcja buduj-drzewo (alg.: 2.1) skonstruuje drzewo klasyfikacyjne Tr na podstawie zbioru uczącego S oraz zbioru dostępnych testów T. 2.5. Problem nadmiernego dopasowania Nadmierne dopasowanie do danych trenujących przejawia się bardzo małym błędem klasyfikacji (często nawet zerowym) na próbie uczącej, lecz zbyt dużym błędem rzeczywistym. Prawdopodobnie drzewo takie, poprzez bardzo złożoną strukturę, odzwierciedla przypadkowe zależności występujące w zbiorze uczącym. Z powodu swej struktury, umożliwiającej reprezentację dowolnej hipotezy, drzewa klasyfikacyjne są szczególnie narażone na ten problem. Błąd rzeczywisty nadmiernie dopasowanych drzew można zmniejszyć przez ich uproszczenie nazywane przycięciem. Drzewo przycięte ma prostszą strukturę, co daje krótszy czas klasyfikacji. Oczywiście dokładność klasyfikacji zbioru uczącego się pogarsza. 2.5.1. Schemat przycinania W uproszczeniu proces przycinania polega na zastąpieniu drzewa wyjściowego jego poddrzewem. Formułując to bardziej obrazowo powiemy, że „ucina” się niektóre poddrzewa drzewa wyjściowego, zastępując je liśćmi, którym przypisuje się etykietę większościowej kategorii wśród obserwacji związanych z tym poddrzewem. Zamiast przycinać drzewo, możemy, poprzez modyfikację kryterium stopu, zapobiegać jego nadmiernemu wzrostowi. Takie postępowanie określa się przycinaniem w trakcie wzrostu. Znalezienie odpowiedniego kryterium stopu 30 Drzewa klasyfikacyjne 2.5 Problem nadmiernego dopasowania Algorytm 2.1 Schemat zstępującego konstruowania drzewa funkcja buduj-drzewo (n,S,c,T) argumenty wejściowe: n - wierzchołek, S - zbiór trenujący, c - domyślna etykieta kategorii, T - zbiór możliwych testów; zwraca: drzewo decyzyjne reprezentujące hipotezę; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. jeśli kryterium-stopu (S,T) to cn :=kategoria (S,c); zwróć liść n; koniec jeśli tn :=wybierz-test (S,T); utwórz następniki n ; cn :=kategoria (S,c); dla wszystkich m ∈ n wykonaj buduj-drzewo (m,Snm ,cn ,T \ tn ) koniec dla wywołanie: buduj-drzewo (r,S,cS ,T) okazuje się jednak trudne i częściej przycina się drzewa uprzednio zbudowane. Przycinanie odbywa się z pomocą zbioru etykietowanych przykładów, zwanego zbiorem przycinania. Pełni on ważną funkcję przy szacowaniu błędu rzeczywistego przyciętego drzewa. Wyróżnia się dwa typy zbiorów przycinania: 1. Zbiór przycinania pochodzi spoza próby uczącej - jeśli mamy dostatecznie duży zbiór uczący. 2. Zbiór przycinania równy jest próbie uczącej - jeżeli nie dysponujemy dużym zbiorem uczącym. Obecnie znanych jest wiele metod przycinania drzew. Algorytm 2.2 przedstawia funkcję opisującą część wspólną większości z nich. 2.5.2. Przycinanie MDL Ideą zasady MDL9 jest minimalizowanie sumy kosztu opisu danych przez model i kosztu opisu modelu. Jeżeli M jest modelem opisującym (kodującym) dane D, to całkowity koszt opisu definiujemy jako sumę cost(M, D) := cost(D|M ) + cost(M ) (2.23) gdzie cost(D|M ) jest kosztem opisu danych D przez model M , a cost(M ) jest kosztem opisu modelu M . W kontekście drzew decyzyjnych modelami są drzewa otrzymane z przycinania drzewa wyjściowego. Opisywane (kodowane) dane to próba ucząca. Jako funkcję kosztu opisu 9 MDL - Minimum Description Length. 31 2.5 Problem nadmiernego dopasowania Drzewa klasyfikacyjne Algorytm 2.2 Schemat przycinania drzewa klasyfikacyjnego funkcja przytnij-drzewo (Tr ,Sp ) argumenty wejściowe: Tr - drzewo klasyfikacyjne, Sp - zbiór przycinania, zwraca: przycięte drzewo; 1. 2. 3. dla wszystkich węzłów n ∈ NrT wykonaj zastąp węzeł n liściem z etykietą większościowej kategorii jeśli nie powiększy to szacowanego na podstawie Sp błędu rzeczywistego drzewa Tr ; koniec dla wywołanie: przytnij-drzewo (Tr ,Sp ) przyjmuje się najczęściej liczbę bitów wykorzystanych do jego reprezentacji. Wcześniejsze implementacje zasady MDL w przycinaniu drzew pokazały, że wynikowe drzewa były nadmiernie przycięte (Quinlan i Rivest - 1989, Wallace i Patrick - 1993). Miało to oczywiście negatywne odbicie w jakości klasyfikacji opartej na takim drzewie. Jednak już w 1995 roku Mehta, Rissanen i Agrawal zaproponowali inną implementację przycinania drzew w oparciu o zasadę MDL. Metoda umożliwiła konstrukcję małych drzew bez znacznej utraty jakości klasyfikacji. Zastosowany algorytm miał pewne ograniczenia. Ponadto w danym węźle możliwe było jedynie „odcięcie” wszystkich potomków lub żadnego. Metoda przedstawiona poniżej jest wolna od tych ograniczeń. Algorytm przycinania MDL dzieli się na dwie części: schemat kodowania, który wyznacza koszt (rozmiar) opisu danych oraz modelu, i algorytm porównywania różnych drzew przyciętych. Koszt opisu danych przez model Koszt opisu zbioru uczącego S przez drzewo T definiujemy jako sumę wszystkich błędnych klasyfikacji (klasa wyprodukowana przez drzewo jest inna od oryginalnej). Liczba błędnych klasyfikacji jest ustalana podczas fazy budowy drzewa. Nie jest więc to proces istotnie wpływający na złożoność algorytmów. Dalej liczbę błędnych klasyfikacji w węźle n oznaczamy przez err(n). Koszt opisu modelu Modelem jest drzewo zawierające podziały. Należy zatem wyznaczyć koszt opisu drzewa i koszty opisu testów zastosowanych w każdym węźle drzewa. Węzeł drzewa może posiadać potomki w liczbie: jeden, dwa, lub zero (liść). Jako koszt opisu drzewa bierzemy sumaryczną liczbę bitów, która jest zależna od struktury drzewa. Wyróżnia się trzy podejścia do opisu struktury drzewa, gdzie przez L(n) oznacza się koszt struktury węzła n. Dla węzła zezwala się na posiadanie: 32 Drzewa klasyfikacyjne 2.5 Problem nadmiernego dopasowania • typ 1 : L(n) = 1 (0 lub 2 potomków), 2 możliwości ⇒ 1 bit niezbędny do opisu, • typ 2 : L(n) = 2 (0 lub 2 potomków, potomka lewego, potomka prawego), 4 możliwości ⇒ 2 bity niezbędne do opisu), • typ 3 : L(n) = log 3 (lewy potomek, prawy potomek, lub oba), tylko dla węzłów wewnętrznych, 3 możliwości ⇒ log 3 bitów niezbędnych do opisu. Koszt opisu podziałów uzależniony jest od typu testowanego atrybutu i wyznaczany jest osobno dla atrybutów ciągłych i nominalnych. Jeżeli mamy do czynienia z testem nierównościowym postaci A(x) ¬ w, gdzie A jest atrybutem numerycznym, a w liczbą rzeczywistą, to koszt testu definiujemy jako maksymalny koszt opisu liczby w. Koszt taki powinien być wyznaczony niezależnie dla każdego testu nierównościowego wykorzystanego w drzewie. Dla testów przynależnościowych postaci A(x) ∈ W , gdzie W jest pewnym podzbiorem wartości nominalnego atrybutu A, koszt ustalamy w dwóch krokach. Najpierw wyznaczamy liczbę testów w drzewie opartych na danym atrybucie – powiedzmy nA (tę czynność wykonujemy dla każdego atrybutu nominalnego). Koszt opisu testu definiujemy dalej jako ln nA Przez Ltest (n) oznaczamy koszt opisu testu w węźle n. Algorytm przycinania MDL Algorytm przycinania MDL wyznacza koszt (rozmiar, długość) opisu w każdym węźle drzewa klasyfikacyjnego. Wartość ta służy następnie do podjęcia decyzji czy mamy w danym węźle: • utworzyć liść, • przyciąć lewy, prawy potomek lub oba, • pozostawić węzeł bez zmian. Jeżeli C(n) oznacza koszt opisu w węźle n, to kryterium przycinania przyjmuje postać: 1. Cleaf (n) := L(n) + err(n) - jeżeli n ma być liściem. 2. Cboth (n) := L(n) + Ltest (n) + C(n1 ) + C(n2 ) - jeżeli n ma posiadać 2 potomki. ← − 3. Clef t (n) := L(n) + Ltest (n) + C(n1 ) + C (n2 ) - jeżeli n ma posiadać tylko potomka lewego. ← − 4. Cright (n) := L(n) + Ltest (n) + C (n1 ) + C(n2 ) - jeżeli n ma posiadać jedynie potomka prawego. ← − ← − C (n1 ), C (n2 ) oznaczają koszt opisu wyznaczany w przypadku częściowego przycięcia (lewy lub prawy potomek zostaje przycięty). W takim wypadku obserwacje przechodzące wcześniej przez przyciętą gałąź, są teraz klasyfikowane na podstawie statystyk z węzła macierzytego ← − ← − n. C (n1 ), C (n2 ) reprezentują koszt opisu obserwacji należących do węzłów potomków przy użyciu tych wcześniejszych statystyk. Wyróżnia się strategie przycinania drzewa: 33 2.6 Zalety i ograniczenia drzew klasyfikacyjnych Drzewa klasyfikacyjne 1. Strategia pełna - wykorzystująca typ 1, czyli 1 bit dla każdego węzła. Jeżeli Cleaf (n) < Cboth (n) (opcje 1 i 2) to węzeł zamieniamy na liść. 2. Strategia częściowa - wykorzystująca typ 2, czyli dwa bity dla każdego węzła. Węzeł jest konwertowany według tej opcji (spośród 1, 2, 3, 4), która ma najmniejszy koszt opisu. 3. Strategia mieszana - przewidująca dwie fazy. Faza pierwsza to strategia pełna. Faza druga używa jedynie opcji: 2, 3 oraz 4. 2.6. Zalety i ograniczenia drzew klasyfikacyjnych Tak jak każda struktura reprezentacji, również drzewa klasyfikacyjne posiadają zalety i ograniczenia. W tym przypadku te pierwsze zdecydowanie przeważają nad drugimi. Do zalet drzew klasyfikacyjnych zaliczamy: 1. Możliwość reprezentacji dowolnej hipotezy - konstrukcja drzewa klasyfikacyjnego umożliwia reprezentację dowolnego pojęcia, którego definicję można wyrazić w zależności od atrybutów użytych do opisu przykładów. 2. Efektywność procesu klasyfikacji - stosowanie hipotezy uzyskanej w wyniku uczenia się jest bardzo efektywne. W typowych przypadkach czas jest liniowo ograniczony przez liczbę obserwacji i/lub liczbę atrybutów. 3. Efektywność dla dużych zbiorów uczących - aktualnie drzewa klasyfikacyjne wykorzystuje się najczęściej i najchętniej do rozwiązywania problemów z ogromnymi ilościami danych. 4. Czytelność reprezentacji - o ile drzewa nie są zbyt duże i złożone. Jako ograniczenia drzew klasyfikacyjnych wymienić można: 1. Ryzyko dużej złożoności drzewa - dla złożonych hipotez drzewa mogą być również bardzo złożone. Wiąże się to z tym, że zazwyczaj testy stosowane do budowy drzewa, wykorzystują tylko jeden atrybut, co implikuje utratę zależności pomiędzy atrybutami. 2. Reprezentacja alternatyw warunków - drzewo klasyfikacyjne, przez swą budowę, naturalnie narzuca stosowanie koniunkcji warunków. 3. Brak łatwej możliwości inkrementacyjnego aktualizowania - po dodaniu nowych przykładów trudno jest zaktualizować już istniejące drzewo. Istnieją oczywiście algorytmu realizujące to zadanie, jednak są dość kosztowne, a zaktualizowane drzewo ma zazwyczaj mniejszą precyzję, niż drzewo zbudowane na nowo. 34 Rozdział 3 Klasyfikator SLIQ 3.1. Wprowadzenie Większość algorytmów klasyfikujących powstała w dość odległej przeszłości, gdy jeszcze nie istniały ogromne zbiory danych trenujących. Proces uczenia projektowano bez szczególnego nacisku na czynniki wydajnościowe. Poniżej przedstawiamy metodę klasyfikacji SLIQ1 [4], wykorzystującą drzewa decyzyjne do reprezentacji hipotez. SLIQ umożliwia użycie danych opisanych atrybutami numerycznymi oraz nominalnymi. Zastosowana w nim nowatorska technika sortowania wstępnego, w połączeniu z poziomą strategią wzrostu drzewa, czyni SLIQ niezwykle efektywnym i skalowalnym narzędziem dla ogromnych prób trenujących, danych dyskowych, nie mieszczących się w pamięci operacyjnej, z dużą liczbą atrybutów i klas. SLIQ ponadto wykorzystuje przycinanie MDL. Autorami SLIQ są: Manish Mehta, Rakesh Agrawal oraz Jorma Rissanen (1996). 3.2. Struktury danych Właściwości SLIQ w dużej mierze są konsekwencją specjalnej konstrukcji struktur danych. Listy wartości atrybutów umożliwiają ograniczenie się do jednokrotnego sortowania każdego z nich. Lista klas pozwala w łatwy sposób dotrzeć do odpowiedniego węzła budowanego drzewa. Histogramy efektywnie wyznaczające miary różnorodności klas. Wszystko to składa się na dużą skalowalność całego procesu uczenia. Lista klas Lista klas jest to zbiór par <etykieta-klasy, referencja-do-liścia>. Elementów na liście klas jest dokładnie tyle ile jest obserwacji w próbie uczącej. Zakłada się, że i − ty element listy klas odpowiada i − tej obserwacji z próby uczącej (zachodzi zgodność w etykietach klas). Pole <referencja-do-liścia> zawiera odnośnik do jednego z liści, który klasyfikuje obserwacje do tej klasy. Listę klas ustawiamy początkowo dla wszystkich pozycji tak, aby wskazywała na korzeń. Lista klas powinna pomieścić się w pamięci operacyjnej. Rysunek 3.1 przedstawia przykładową strukturę listy klas. Lista wartości atrybutu 1 SLIQ - Supervised Learning in Quest (Quest - projekt badawczy IBM). 35 3.3 Sortowanie wstępne Klasyfikator SLIQ Próba ucząca (dla atrybutu A) Num. obs. Wartość atrybutu 1 2 ... n Etykieta klasy Lista wartości (dla atrybutu A) Num. obs. Wartość atrybutu Lista klas (dla próby uczącej) Referencja do listy klas Num. obs. 1 2 ... n Etykieta klasy Referencja do liścia 1 2 ... n Rysunek 3.1: Struktura danych Lista wartości atrybutu jest to zbiór par <wartości-atrybutu, referencja-do-listy-klas>. Każda wartość atrybutu na liście wartości jest jednoznacznie powiązana z jedną obserwacją z próby uczącej, w konsekwencji również z etykietą klasy. Dla danej wartości atrybutu odnajdujemy odpowiadającą jej etykietę klasy, co umożliwia przejście do listy klas. Listy wartości tworzone są niezależnie dla każdego atrybutu numerycznego i mogą być zapisywane na dysku. Rysunek 3.1 przedstawia przykładową strukturę listy wartości atrybutu. Histogramy Histogramy wykorzystywane są do określenia rozkładu częstości (proporcji) klas w węzłach. Histogram dla atrybutu numerycznego ma inną strukturę od histogramu dla atrybutu nominalnego. Do określenia jakości podziału nierównościowego wystarczy informacja ile obserwacji z danej klasy spełniło test, a ile nie. Przy wykorzystaniu testu przynależnościowego pojawia się kwestia wyboru podzbioru. W tym celu histogram przechowuje rozkład częstości klas w węzłach potomkach w podziale na wartości atrybutu. Rysunek 3.2 prezentuje strukturę histogramu dla atrybutu numerycznego i nominalnego. L R Histogram (atrybuty ciągłe / numeryczne) Klasa 1 Klasa 2 ... Klasa n [częstość] [częstość] [częstość] ... [częstość] [częstość] [częstość] ... Wartość 1 Wartość 2 ... Wartość k L R L R L R L R Histogram (atrybuty nominalne) Klasa 1 Klasa 2 ... [częstość] [częstość] ... [częstość] [częstość] ... [częstość] [częstość] ... [częstość] [częstość] ... [częstość] [częstość] ... [częstość] [częstość] ... [częstość] [częstość] ... [częstość] [częstość] ... Klasa n [częstość] [częstość] [częstość] [częstość] [częstość] [częstość] [częstość] [częstość] Rysunek 3.2: Struktura histogramów Oznaczenia L i R określają statystyki dla obserwacji, które spełniają kryterium podziału oraz dla tych, które kryterium tego nie spełniają. Niezależne histogramy przyporządkowane są do każdego liścia aktualnie budowanego drzewa. 3.3. Sortowanie wstępne Rozważmy drzewo decyzyjne przedstawione na rysunku 3.3 - dwa atrybuty (Waga, Wzrost), 10 obserwacji w próbie uczącej oraz 2 klasy (O,S). 36 Klasyfikator SLIQ 3.4 Pozioma strategia wzrostu Zbiór uczący Num. obs. 1 2 3 4 5 6 7 8 9 10 Waga Wzrost Klasa 78 92 68 105 55 80 95 182 170 175 177 165 160 188 S O S O S O S 120 48 83 185 163 186 O S S Waga<=80 Wzrost<=160 Waga>80 Wzrost>160 Wzrost<=185 O S Wzrost>185 O S Rysunek 3.3: Zbiór uczący i drzewo klasyfikacyjne Do utworzenia drzewa decyzyjnego, potrzebujemy wyznaczenia wielu najlepszych podziałów (względem zadanych testów). Dla atrybutów ciągłych wiąże się to najczęściej z potrzebą sortowania danych, które dotarły do danego węzła. Takie podejście ma jednak bardzo negatywne konsekwencje ze względu na otrzymywaną skalowalność procesu klasyfikacji. Pierwsza technika zastosowana w klasyfikacji metodą SLIQ, pozwala rozwiązać problem. Nazywamy ją sortowaniem wstępnym (ang. pre-sorting). Schemat sortowania wstępnego zakłada konieczność sortowania danych tylko raz dla każdego atrybutu (sortowanie odbywa się na poziomie korzenia). Rysunek 3.4 przedstawia powstałe dwie wstępnie posortowane listy wartości oraz wspólną listę klas. Zwróćmy uwagę, że referencje do liścia są ustawione na N1 - czyli korzeń. Zbiór uczący Po sortowaniu wstępnym Lista wartości atrybut Lista wartości atrybut Wzrost Indeks listy klas Indeks listy klas Klasa Liść 160 163 165 170 175 177 182 185 186 188 6 9 5 2 3 4 1 8 10 7 1 2 3 4 5 6 7 8 9 10 S O S O S O S O S S N1 N1 N1 N1 N1 N1 N1 N1 N1 N1 Num. obs. Waga Wzrost Klasa Waga Indeks listy klas 1 2 3 4 5 6 7 8 9 10 78 92 68 105 55 80 95 120 48 83 182 170 175 177 165 160 188 185 163 186 S O S O S O S O S S 48 55 68 78 80 83 92 95 105 120 9 5 3 1 6 10 2 7 4 8 Lista klas Rysunek 3.4: Dane przed i po sortowaniu wstępnym 3.4. Pozioma strategia wzrostu Metoda SLIQ wykorzystuje poziomą strategią wzrostu drzewa (ang. breadth-first). Wcześniej omówiliśmy techniki zstępujące (ang. depth-first), rekurencyjnie budujące drzewo, kierując się początkowo ku „dołowi”. SLIQ w pierwszej kolejności tworzy cały poziom, poruszając się niejako w szerz, wyznaczając podziały dla wszystkich liści bieżącego drzewa. Lista wartości każdego atrybutu przeszukiwana jest jednokrotnie. Dla atrybutów ciągłych in37 3.4 Pozioma strategia wzrostu Klasyfikator SLIQ Algorytm 3.1 Wyznaczenie podziałów SLIQ funkcja SLIQ-wyznacz-podziały zwraca: najlepsze podziały na danym poziomie drzewa; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 12. 13. 14. 15. 16. dla każdego atrybutu A wykonaj rozważ listę wartości atrybutu A; dla każdej wartości v z listy wartości atrybutu A wykonaj znajdź odpowiadającą pozycję na liście klas; przejdź do odpowiadającej klasy i dalej do liścia (powiedzmy l); zaktualizuj histogram w liściu l; jeśli A jest atrybutem ciągłym to wyznacz indeks Giniego dla testu (A ¬ v) w liściu l; koniec jeśli jeśli A jest atrybutem nominalnym to dla każdego liścia drzewa znajdź podzbiór zbioru wartości A z najlepszym podziałem (w oparciu o Indeks Giniego); koniec dla koniec jeśli koniec dla koniec dla deks Giniego wyznacza się na bieżąco. Przy atrybutach nominalnych dopiero po zakończeniu skanowania listy jego wartości. Następnie wybierany jest podzbiór zbioru wartości atrybutu, dający najlepszy podział. Do wyznaczenia najlepszego podziału we wszystkich liściach wystarczy przejść jednokrotnie każdą listę wartości atrybutu. Do podziałów opartych na atrybutach nominalnych, SLIQ wykorzystuje testy przynależnościowe. Wiemy już, że wyznaczenie wszystkich podzbiorów zbioru wartości atrybutu nominalnego, może być bardzo kosztowne. Do rozwiązania tego problemu użyto w SLIQ podejścia mieszanego. Dla małych zbiorów wartości (o małej liczności, mniejszej niż ustalony próg) wyznacza się wszystkie niezbędne podzbiory. Za ograniczenie górne liczności takiego zbioru przyjmuje się liczbę 10 (210 - podzbiorów można wyznaczyć w miarę szybko). W przypadku dużych zbiorów stosuje się algorytm zachłanny. Algorytm zachłanny rozpoczyna od pustego podzbioru. W kolejnych krokach do tego podzbioru dodawane są elementy, które dają najlepszy podział. Proces ten trwa aż do momentu, kiedy nie obserwujemy już poprawy otrzymanych podziałów. Rysunek 3.5 przedstawia metodę przejścia z listy wartości, poprzez listę klas, do liścia. Istotną kwestią jest aktualizacja statystyk w histogramach. Utworzenie potomków i aktualizacja listy klas Po wybraniu testu SLIQ tworzy potomki rozważanego węzła. Kolejnym krokiem jest aktualizacja listy klas tak, aby odzwierciedlała bieżącą status drzewa. Rysunek 3.6 prezentuje przykład realizacji wyżej opisanego zadania. Podział oraz następująca po nim aktualizacja listy klas, powtarzają się do momentu, gdy do każdego liścia w powstałym drzewie docierają 38 Klasyfikator SLIQ 3.4 Pozioma strategia wzrostu N1 Waga<=80 Lista wartości atrybut Wzrost Indeks listy klas 160 163 165 6 9 5 170 175 177 4 182 185 186 188 1 8 10 7 Lista klas N2 Indeks listy klas Klasa Liść 1 2 3 S O S N2 N3 N2 2 4 O N3 3 5 S N2 6 O N2 7 8 9 10 S O S S N3 N3 N2 N3 1 2 Waga>80 N3 Krok 0: Histogram początkowy N3 N2 L R O S O S 0 0 0 0 1 4 3 2 Krok 1: Wyznacz podział: Wzrost <=160 Zaktualizuj histogram N2 L R N3 O S O S 1 0 0 0 0 4 3 2 Krok 2: Wyznacz podział: Wzrost <=163 Zaktualizuj histogram N2 L R N3 O S O S 1 1 0 0 0 3 3 2 Rysunek 3.5: Przebieg algorytmu SLIQ obserwacje tylko z jednej klasy. Należy zwrócić uwagę na fakt, że niektóre liście mogą osiągnąć ten stan wcześniej. W takim przypadku nie ma więc sensu stosowania dla nich kolejnych podziałów. 39 3.4 Pozioma strategia wzrostu Klasyfikator SLIQ Algorytm 3.2 Aktualizacja listy klas funkcja SLIQ-zaktualizuj-listę-klas zwraca: zaktualizowaną listę klas; 1. 2. 3. 4. 5. 6. 7. 8. 9. dla każdego atrybutu A użytego w podziale wykonaj rozważ listę wartości atrybutu A; dla każdej wartości v z listy wartości atrybutu A wykonaj znajdź odpowiadającą pozycję na liście klas (powiedzmy e); znajdź nową klasę c dla v po zastosowaniu testu w węźle e; zaktualizuj etykietę klasy z e na c; zaktualizuj referencję do liścia w e na liść odpowiadający c; koniec dla koniec dla N1 Lista wartości atrybut Waga<=80 Waga>80 N2 N3 Lista klas Wzrost Indeks listy klas Indeks listy klas Klasa Liść 160 163 165 170 175 177 182 185 186 188 6 9 5 2 3 4 1 8 10 7 1 2 3 4 5 6 7 8 9 10 S O S O S O S O S S N2 N3 N2 N3 N2 N2->N4 N3 N3 N2->N5 N3 Wzrost<=160 Wzrost<=185 Wzrost>160 N4 Rysunek 3.6: Aktualizacja listy klas 40 N5 N6 Wzrost>185 N7 Rozdział 4 Klasyfikator SPRINT 4.1. Wprowadzenie Przedstawiony w rozdziale 3 algorytm SLIQ zachowuje własność skalowalności przy założeniu, że lista klas rozważanego zbioru trenującego mieści się w pamięci operacyjnej komputera. Przypomnijmy, że rozmiar listy klas zależy jedynie od liczby przykładów w zbiorze uczącym. Tak skonstruowany element globalny, posiadający ograniczenie na rozmiar, jest zarazem największym mankamentem algorytmu. Poniżej omówimy klasyfikator o nazwie SPRINT[5]1 (J.C. Shafer, R. Agrawal, M. Mehta, 1996), uwolniony od tego ograniczenia, w dużej mierze podobny do metody SLIQ. SPRINT wykorzystuje bardzo podobne struktury danych do tych zaprojektowanych dla SLIQ. SPRINT nie definiuje listy klas. W konsekwencji otrzymano brak elementów globalnych, umożliwiając łatwe i efektywne zrównoleglenie implementacji. Przez pojęcie równoległej implementacji rozumiemy jednoczesne działanie algorytmu na wielu procesorach (CPU). Każdy procesor pracuje nad częścią danych w niezależny od reszty sposób. Celem jest uzyskanie jednego spójnego modelu. 4.2. Metoda podstawowa Algorytm SPRINT działa w dwóch fazach: wzrostu drzewa binarnego oraz jego przycinania. Faza wzrostu jest tym, co różni SPRINT od metody SLIQ. Drzewo SPRINT przycinane jest metodą opartą o zasadę MDL, która została omówiona w sekcji 2.5.2 niniejszej pracy. SPRINT wykorzystuje technikę depth-first zstępującej konstrukcji drzewa (2.4.4). Przypomnijmy, że drzewo SLIQ budowane jest w oparciu o poziomą strategię wzrostu (breath-first). Jako, że schemat zstępującej konstrukcji drzewa został bardzo szczegółowo opisany algorytmem 2.4.4, skoncentrujemy się jedynie na strukturach danych, pozwalających w łatwy sposób wybrać najlepszy podział. Lista wartości atrybutu SPRINT, podobnie jak SLIQ, dla każdego atrybutu tworzy listę jego wartości. Jest to zbiór trójek postaci: <wartość-atrybutu, etykieta-klasy, referencja-do-przykładu>. Początkowa każda lista wartości atrybutu, powiązana z korzeniem drzewa, zawiera dokładnie taką sama liczbę elementów co zbiór trenujący. Kolejnym krokiem jest sortowanie wstępne list atrybutów numerycznych, analogiczne do użytego w SLIQ (nie ma konieczności ponownego sortowania list 1 Scalable Parallelizable Induction of Decision Trees 41 4.2 Metoda podstawowa Klasyfikator SPRINT w trakcie fazy wzrostu drzewa). Listy atrybutów, w przypadku znacznych rozmiarów, mogą być przetrzymywane na dysku komputera. W SLIQ lista wartości atrybutu jest elementem globalnym algorytmu. SPRINT do każdego wierzchołka przyporządkowuje nową listę wartości atrybutu, otrzymywaną z podziału już istniejącej w węźle macierzystym. Proces podziału dokonuje się w trakcie zstępującego wzrostu poczynając od korzenia. Przykładowe listy wartości atrybutów po sortowaniu wstępnym zaprezentowane sa na rysunku 4.1. Rysunek 4.2 przedstawia podział list wraz z dokonaniem podziału przykładów węźle. Zbiór uczący Po sortowaniu wstępnym Lista wartości atrybutu Num. obs. 1 2 3 4 5 6 7 8 9 10 Waga Wzrost Klasa Waga Klasa 78 92 68 105 55 80 95 120 48 83 182 170 175 177 165 160 188 185 163 186 S O S O S O S O S S 48 55 68 78 80 83 92 95 105 120 S S S S O S O S O O Num. obs. 9 5 3 1 6 10 2 7 4 8 Lista wartości atrybutu Wzrost Klasa 160 163 165 170 175 177 182 185 186 188 O S S O S O S O S S Num. obs. 6 9 5 2 3 4 1 8 10 7 Rysunek 4.1: Listy wartości atrybutów po sortowaniu wstępnym w algorytmie SPRINT Histogramy Kryterium oceny jakości podziałów wykorzystane w SPRINT oparte jest na indeksie Giniego (2.18). Jest to kolejne podobieństwo do metody SLIQ. Również struktury danych umożliwiające efektywne określenie wartości miary Giniego nie uległy zmianie w stosunku do SLIQ. SPRINT używa identycznych histogramów jak te opisane w sekcji 3.2. Wybór najlepszego podziału SPRINT, w odróżnieniu od SLIQ, dokonuje aktualizacji histogramów dla każdego węzła z osobna (w SLIQ, podczas jednokrotnego przejścia przez listy atrybutów, dochodzi do aktualizacji histogramów w każdym węźle aktualnie procesowanego poziomu drzewa). W przypadku testowania atrybutu numerycznego, do określenia najlepszego punktu podziału, wystarczy jednokrotnie rozważyć dostępną listę jego wartości. Dla atrybutów nominalnych SPRINT stosuje procedurę hybrydową (mieszaną). Przypomnijmy, że obie metody konstrukcję podziałów opierają na: testach nierównościowych (def. 2.4.4) w przypadku atrybutów numerycznych oraz testach przynależnościowych (def. 2.4.3) gdy rozważane są atrybuty nominalne. Zastosowanie najlepszego z możliwych testów polega na utworzeniu potomków, oraz odpowiednim podziale dostępnych przykładów i list wartości atrybutów. Do efektywnego podziału list wykorzystuje się tablicę haszującą utworzoną na podstawie <referencji-do-przykładu> listy testowanego atrybutu. Rysunek 4.3 prezentuje tablicę haszująca utworzoną na podstawie podziału W aga ¬ 80. W przypadku, gdy tablica haszująca nie mieści się w pamięci operacyjnej komputera, podział dokonywany jest w więcej niż jednym kroku. 42 Klasyfikator SPRINT 4.3 Metoda zrównoleglona Listy atrybutów w węźle N1 Waga Klasa 48 55 68 78 80 83 92 95 105 120 S S S S O S O S O O Num. obs. 9 5 3 1 6 10 2 7 4 8 Listy atrybutów w węźle N2 Waga Klasa 48 55 68 78 80 S S S S O Wzrost Klasa 160 163 165 175 182 O S S S S Num. obs. 9 5 3 1 6 Wzrost Klasa 160 163 165 170 175 177 182 185 186 188 O S S O S O S O S S Num. obs. 6 9 5 2 3 4 1 8 10 7 Listy atrybutów w węźle N3 N1 Waga<=80 Waga>80 N2 N3 Num. obs. 6 9 5 3 1 Waga Klasa 83 92 95 105 120 S O S O O Wzrost Klasa 170 177 185 186 188 O O O S S Num. obs. 10 2 7 4 8 Num. obs. 2 4 8 10 7 Rysunek 4.2: Podział list wartości atrybutów podczas fazy wzrostu drzewa SPRINT 4.3. Metoda zrównoleglona Klasyfikator SPRINT w wersji zrównoleglonej jest zaprojektowany tak, aby proces uczenia mógł przebiegać efektywnie przy jednoczesnym wykorzystaniu wielu jednostek obliczeniowych. Skupimy się jedynie na fazie wzrostu drzewa, gdyż przycinanie drzewa metodą MDL jest zadaniem obliczeniowo mało kosztownym i może być wykonane z użyciem jednego procesora. Głównym założeniem jakiejkolwiek równoległej implementacji jest posiadanie środowiska, gdzie każdy z N procesorów posiada prywatną pamięć operacyjną oraz prywatną pamięć zaalokowaną na dyskach. Procesory połączone są w sieć komunikacyjną i mogą komunikować się jedynie przez wysyłanie komunikatów. Analogicznie do podstawowej metody w zrównoleglonej fazie budowy drzewa podstawowym problemem jest konstrukcja i przeprowadzenie najlepszego podziału. Równie istotną kwestią jest rozmieszczenie (podział) danych oraz obliczeń. Podział danych oraz obliczeń Główne struktury danych w klasyfikatorze SPRINT to: lista wartości atrybutu i histogramy tworzone na podstawie próby uczącej. Efektywny podział danych oraz obliczeń osiągany jest przez podział próby uczącej na N możliwie równolicznych części. W kolejnym kroku każdy z N procesorów otrzymuje porcję danych, na podstawie której wyznacza własne listy wartości 43 4.4 Porównanie klasyfikatorów SPRINT i SLIQ Test atrybutu: Waga <=80 (listy atrybutów w węźle N1) Waga Klasa 48 55 68 78 80 83 92 95 105 120 S S S S O S O S O O Num. obs. 9 5 3 1 6 10 2 7 4 8 Klasyfikator SPRINT Potomek: Wzrost Klasa 160 163 165 170 175 177 182 185 186 188 O S S O S O S O S S L R Num. obs. 6 9 5 2 3 4 1 8 10 7 Tablica haszująca Num. obs. 1 2 3 4 5 6 7 8 9 10 Potomek L R L R L L R R L R Rysunek 4.3: Przykład tablicy haszującej atrybutu. Następnie listy wartości dla atrybutów numerycznych są sortowane i dzielone na nowo tak, aby każdy z procesorów pracował nad „przylegającymi” do siebie wartościami. Taka procedura ma na celu uniknięcie sytuacji, gdzie jeden z procesów pracuje przykładowo nad wartościami {1, 5, 10}, a drugi przeprowadza obliczenia dla {3, 7, 12}. Po prawidłowym przeprowadzeniu sortowania wraz z podziałem w wyniku powinniśmy otrzymać: {1, 3, 5} oraz {7, 10, 12}. Wybór najlepszego podziału Wybór najlepszego podziału w zrównoleglonej wersji SPRINT jest przeprowadzony w sposób bardzo podobny do metody podstawowej. Każdy z procesorów pracuję nad własną porcją danych prowadząc niezależne od innych obliczenia na przypisanych do niego strukturach danych. Dokonanie podziału wymaga dodatkowej komunikacji (wymiany danych) pomiędzy wszystkimi procesorami. Nie ma konieczności wykonania żadnych dodatkowych zadań. SPRINT w swych założeniach został projektowany do przeprowadzania zrónoleglonych obliczeń. 4.4. Porównanie klasyfikatorów SPRINT i SLIQ Algorytmy SPRINT i SLIQ budują identyczne drzewa decyzyjne, prowadząc do jednakowych hipotez. Jest to konsekwencją zastosowania tego samego kryterium oceny jakości podziału oraz identycznej metody przycinania drzewa binarnego. Na uwagę zasługuje różnica w strategii wzrostu drzewa, SLIQ wykorzystuje poziomą, SPRINT stosuje technikę zstępującą. SPRINT nie posiada elementów globalnych, stając się odpornym na rozmiar zbioru trenującego oraz umożliwiając łatwe zrównoleglenie działania. Tym samym SPRINT rozwiązuje dwa największe mankamenty metody SLIQ, tworząc szybkie, skalowalne i bardzo dokładne narzędzie służące eksploracji danych. 44 Rozdział 5 Implementacja klasyfikatora SLIQ 5.1. Wprowadzenie Implementacja klasyfikatora SLIQ została przeprowadzona we współpracy z Instytutem Podstaw Informatyki Polskiej Akademii Nauk1 w ramach rozwoju pakietu „dmLab”. Jest to implementacja wykonana przez autora niniejszej pracy w oparciu o zawarty we wspomnianym pakiecie schemat reprezentacji danych trenujących / testowych. Celem implementacji było wykazanie użyteczności klasyfikatora SLIQ w rozwiązywaniu problemów, gdzie złożoność obliczeniowa i skalowalność procesu uczenia jest szczególnie istotna. 5.2. Środowisko uruchomieniowe Algorytm SLIQ (analogicznie do całości pakietu dmLab) został zaimplementowany w języku JAVA2 . Do pakietu dmLab dodano ponad 2000 linii kodu, który zawiera: 1. dmLab.classifier - abstrakcyjną implementację klasyfikatora, 2. dmLab.classifier.tree - abstrakcyjną implementację reprezentacji drzewa, 3. dmLab.classifier.tree.treePruning - abstrakcyjną implementację metody przycinania drzewa, 4. dmLab.classifier.tree.sliqClassifier - implementację algorytmu SLIQ, 5. dmLab.classifier.tree.treePruning.mdlTreePruning - implementację przycinania drzewa metodą MDL. Uruchomienie pakietu wymaga zainstalowania środowiska Java Runtime Environment. Wykorzystanie języka JAVA zapewnia niezależność implementacji od architektury oraz platformy / systemu operacyjnego. 5.3. Analiza wyników Dane źródłowe wykorzystane w testach niemal w całości utworzono sztucznie, wykorzystując prosty generator. Jedynie w przykładzie 5.3.1 dane zawierają prawdziwe relacje, względem poniższej definicji z atrybutem „play” jako zmienną grupującą: 1 2 http://www.ipipan.waw.pl http://www.java.sun.com 45 5.3 Analiza wyników Implementacja klasyfikatora SLIQ #@relation weather attributes { outlook nominal temperature numeric humidity numeric windy nominal play nominal decision(all) } events { ... } Przykład 5.3.1 prezentuje wynik działania klasyfikatora SLIQ z pakietu dmLab. W pierwszej części widzimy macierz błędu wraz z precyzją nieprzyciętego drzewa SLIQ. Następnie (sekcja „Tree info”) odnajdujemy informacje o liczbie węzłów i liści w drzewie, jego wysokości, oraz czasach budowy i/lub przycinania. W kolejnym kroku system informuje o przeprowadzonym przycinaniu. Sekcja „Tree structure” prezentuje strukturę przyciętego drzewa SLIQ. Sekcja „Tree info” aktualizuje liczbowe wskaźniki dla przyciętego drzewa. Na końcu odnajdujemy jakość ostatecznej klasyfikacji. Przykład 5.3.1 Drzewo SLIQ zbudowane na próbie uczącej o liczności 2029. attributes: 5 events: 2029 Confusion Matrix no yes other no 723 1 0 System Answer yes other 0 0 1305 0 0 0 Accuracy : 0.9995071 ------------- Tree info ------------Nodes number .............. : 48 Leafs number .............. : 49 Tree height ............... : 10 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 0.071 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 0.071 ================================================== MDL Pruning... Done! ================= Tree structure ================= Root: outlook \in {overcast} | L: [leaf] -> play = yes | R: humidity <= 84.0 | | L: temperature <= 65.0 | | | L: [leaf] -> play = no | | | R: [leaf] -> play = yes | | R: temperature <= 70.0 | | | L: [leaf] -> play = yes | | | R: [leaf] -> play = no ------------- Tree info ------------Nodes number .............. : 4 Leafs number .............. : 5 Tree height ............... : 3 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 0.071 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 0.071 46 Implementacja klasyfikatora SLIQ 5.3 Analiza wyników ================================================== Testing... Done! Confusion Matrix System Answer no yes other no 1412 34 0 yes 10 2602 0 other 0 0 0 Accuracy : 0.9891572 Podsumowując przykład 5.3.1 powiemy, że przycinając drzewo drastycznie zmniejszyliśmy jego złożoność (liczba węzłów i liści) nie tracąc jakości klasyfikacji (spadek o 1%). Wynik ten bardzo dobrze obrazuje istotę przycinania drzew. 5.3.1. Skalowalność SLIQ Skalowalność klasyfikacji metodą SLIQ zbadaliśmy poprzez analizę wpływu wzrostu liczności próby uczącej i wzrostu liczby atrybutów na czas uczenia. Tabela 5.1 prezentuje podsumowanie eksperymentu dla wzrostu liczności próby. Tabela 5.1 w analogiczny sposób przedstawia analizę dla wzrostu liczby atrybutów w próbie uczące. Wykresy 5.1, 5.2 utworzono na podstawie danych z tabel 5.1 i 5.2. Szczegóły eksperymentu prezentują przykłady 5.3.2 i 5.3.3. Wniosek 5.3.1 Analiza wykresów 5.1 i 5.2 wskazuje na liniowy charakter zależności czasu uczenia od liczności próby oraz liczby atrybutów ją opisujących. Liczność Faza budowy Liczba węzłów Liczba liści Głębokość drzewa Precyzja Czas budowy Faza przycinania Liczba węzłów Liczba liści Głębokość drzewa Precyzja Czas przycinania Uproszczenie drzewa Łączny czas 1 000 2 000 5 000 10 000 20 000 50 000 100 000 537 538 16 100,0% 0,16 1 088 1 089 18 100,0% 0,44 2 558 2 559 22 100,0% 0,94 5 557 5 558 27 100,0% 2,08 9 798 9 799 41 100,0% 7,66 24 421 24 422 41 100,0% 25,05 55 532 55 533 52 100,0% 47,68 231 232 14 82,8% 0,01 57,0% 0,17 344 345 18 79,4% 0,01 68,4% 0,45 584 585 21 76,1% 0,02 77,2% 0,96 92 93 16 63,0% 0,02 98,3% 2,10 874 875 33 69,0% 0,06 91,1% 7,72 590 591 36 63,9% 0,15 97,6% 25,20 541 542 28 61,6% 0,23 99,0% 47,91 Tabela 5.1: Skalowalność SLIQ względem liczność próby uczącej Przykład 5.3.2 Szczegóły analizy wpływu wzrostu liczność próby uczącej na czas uczenia. attributes: 11 events: 1000 attributes: 11 events: 2000 Confusion Matrix System Answer C3 C5 C4 C1 C2 C3 202 0 0 0 0 C5 0 193 0 0 0 C4 0 0 202 0 0 C1 0 0 0 196 0 C2 0 0 0 0 207 other 0 0 0 0 Confusion Matrix System Answer C5 C1 C3 C4 C2 C5 396 0 0 0 0 C1 0 392 0 0 0 C3 0 0 397 0 0 C4 0 0 0 402 0 C2 0 0 0 0 413 other 0 0 0 0 other 0 0 0 0 0 0 0 47 other 0 0 0 0 0 0 0 5.3 Analiza wyników Implementacja klasyfikatora SLIQ 50 45 40 35 t [s] 30 25 20 15 10 5 0 0 10000 20000 30000 40000 50000 n [obs] 60000 70000 80000 90000 100000 Rysunek 5.1: Skalowalność SLIQ względem liczność próby uczącej Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 537 Leafs number .............. : 538 Tree height ............... : 16 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 0.161 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 0.161 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 231 Leafs number .............. : 232 Tree height ............... : 14 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 0.161 Tree pruning time [s] ..... : 0.01 Total training time [s] ... : 0.171 ================================================== Testing... Done! Confusion Matrix System Answer C3 C5 C4 C1 C2 other C3 348 24 11 12 9 0 C5 22 341 9 11 3 0 C4 29 30 321 15 9 0 C1 26 34 6 322 4 0 C2 27 37 7 19 324 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 1088 Leafs number .............. : 1089 Tree height ............... : 18 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 0.441 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 0.441 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 344 Leafs number .............. : 345 Tree height ............... : 18 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 0.441 Tree pruning time [s] ..... : 0.01 Total training time [s] ... : 0.451 ================================================== Testing... Done! Confusion Matrix System Answer C5 C1 C3 C4 C2 other C5 656 32 27 32 45 0 C1 48 614 25 46 51 0 C3 41 42 601 51 59 0 C4 56 42 22 640 44 0 C2 44 41 43 32 666 0 other 0 0 0 0 0 0 Accuracy : 0.828 ================================================== attributes: 11 events: 5000 Accuracy : 0.79425 ================================================== attributes: 11 events: 10000 48 Implementacja klasyfikatora SLIQ Liczba atrybutów Faza budowy Liczba węzłów Liczba liści Głębokość drzewa Precyzja Czas budowy Faza przycinania Liczba węzłów Liczba liści Głębokość drzewa Precyzja Czas przycinania Uproszczenie drzewa Łączny czas 5.3 Analiza wyników 10 20 50 100 200 2 801 2 801 23 100,0% 0,95 1 949 1 950 22 100,0% 2,81 1 651 1 652 20 100,0% 5,55 1 459 1 460 19 100,0% 13,88 1 384 1 385 20 100,0% 22,06 296 297 19 69,2% 0,01 89,4% 0,96 341 342 18 74,1% 0,01 82,5% 2,82 303 304 20 73,7% 0,00 81,6% 5,55 397 398 19 78,2% 0,01 72,8% 13,89 319 320 18 75,8% 0,01 77,0% 22,07 Tabela 5.2: Skalowalność SLIQ względem liczby w próbie uczącej Confusion Matrix System Answer C3 C1 C4 C2 C5 other C3 1046 0 0 0 0 0 C1 0 994 0 0 0 0 C4 0 0 918 0 0 0 C2 0 0 0 994 0 0 C5 0 0 0 0 1048 0 other 0 0 0 0 0 0 Confusion Matrix System Answer C3 C2 C4 C1 C5 other C3 1994 0 0 0 0 0 C2 0 2012 0 0 0 0 C4 0 0 1945 0 0 0 C1 0 1 0 2040 0 0 C5 0 0 0 0 2008 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 2558 Leafs number .............. : 2559 Tree height ............... : 22 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 0.941 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 0.941 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 584 Leafs number .............. : 585 Tree height ............... : 21 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 0.941 Tree pruning time [s] ..... : 0.02 Total training time [s] ... : 0.96099997 ================================================== Testing... Done! Confusion Matrix System Answer C3 C1 C4 C2 C5 other C3 1656 87 155 117 77 0 C1 153 1529 151 66 89 0 C4 135 104 1408 87 102 0 C2 153 103 181 1456 95 0 C5 127 113 181 114 1561 0 other 0 0 0 0 0 0 Accuracy : 0.9999 ------------- Tree info ------------Nodes number .............. : 5557 Leafs number .............. : 5558 Tree height ............... : 27 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 2.083 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 2.083 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 92 Leafs number .............. : 93 Tree height ............... : 16 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 2.083 Tree pruning time [s] ..... : 0.02 Total training time [s] ... : 2.103 ================================================== Testing... Done! Confusion Matrix System Answer C3 C2 C4 C1 C5 other C3 2541 184 515 219 529 0 C2 384 2315 453 271 601 0 C4 389 172 2548 229 552 0 C1 425 174 503 2461 519 0 C5 342 202 497 244 2731 0 other 0 0 0 0 0 0 Accuracy : 0.761 ================================================== Accuracy : 0.6298 ================================================== 49 5.3 Analiza wyników Implementacja klasyfikatora SLIQ 25 20 t [s] 15 10 5 0 0 20 40 60 80 100 n [attr] 120 140 160 180 200 Rysunek 5.2: Skalowalność SLIQ względem liczby atrybutów w próbie uczącej attributes: 11 events: 20000 attributes: 11 events: 50000 Confusion Matrix System Answer C1 C2 C4 C3 C5 other C1 4056 0 0 0 0 0 C2 0 4097 0 0 0 0 C4 0 0 4018 0 0 0 C3 0 0 0 3960 0 0 C5 0 0 0 0 3869 0 other 0 0 0 0 0 0 Confusion Matrix System Answer C1 C4 C3 C2 C5 other C1 9964 0 0 0 0 0 C4 0 9926 0 0 0 0 C3 0 0 9904 0 0 0 C2 0 0 0 10134 0 0 C5 0 0 0 0 10072 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 9798 Leafs number .............. : 9799 Tree height ............... : 41 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 7.661 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 7.661 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 874 Leafs number .............. : 875 Tree height ............... : 33 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 7.661 Tree pruning time [s] ..... : 0.061 Total training time [s] ... : 7.7219996 ================================================== Testing... Done! Confusion Matrix System Answer Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 24421 Leafs number .............. : 24422 Tree height ............... : 41 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 25.046 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 25.046 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 590 Leafs number .............. : 591 Tree height ............... : 36 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 25.046 Tree pruning time [s] ..... : 0.151 Total training time [s] ... : 25.196999 ================================================== Testing... Done! Confusion Matrix System Answer 50 Implementacja klasyfikatora SLIQ 5.3 Analiza wyników C1 C2 C4 C3 C5 other C1 5835 595 542 461 679 0 C2 747 5620 565 521 741 0 C4 747 597 5413 526 753 0 C3 724 616 614 5285 681 0 C5 728 581 539 452 5438 0 other 0 0 0 0 0 0 C1 C4 C1 12439 C4 1540 C3 1495 C2 1571 C5 1521 other 0 C3 C2 2069 13052 2069 2082 2166 0 0 C5 other 1629 2201 1568 2156 12523 2196 1570 13414 1700 2250 0 0 0 Accuracy : 0.689775 ================================================== attributes: 11 events: 100000 Accuracy : 0.63935 ================================================== attributes: 11 events: 200000 Confusion Matrix System Answer C5 C4 C2 C1 C3 other C5 19884 0 0 0 0 0 C4 0 19965 0 0 0 0 C2 0 0 20065 0 0 0 C1 0 0 0 20064 0 0 C3 0 0 0 0 20022 0 other 0 0 0 0 0 0 Confusion Matrix System Answer C4 C1 C2 C5 C3 other C4 39947 0 0 0 0 0 C1 0 39983 0 0 0 0 C2 0 0 40044 0 0 0 C5 0 0 0 40041 0 0 C3 0 0 0 0 39985 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 55532 Leafs number .............. : 55533 Tree height ............... : 52 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 47.679 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 47.679 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 541 Leafs number .............. : 542 Tree height ............... : 28 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 47.679 Tree pruning time [s] ..... : 0.23 Total training time [s] ... : 47.909 ================================================== Testing... Done! Confusion Matrix System Answer C5 C4 C2 C1 C3 other C5 30226 2180 3202 3254 906 0 C4 9581 22917 3224 3303 905 0 C2 9514 2217 24149 3381 869 0 C1 9432 2303 3056 24418 919 0 C3 9753 2243 3046 3434 21568 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 94988 Leafs number .............. : 94989 Tree height ............... : 74 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 195.541 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 195.541 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 947 Leafs number .............. : 948 Tree height ............... : 53 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 195.541 Tree pruning time [s] ..... : 0.932 Total training time [s] ... : 196.473 ================================================== Testing... Done! Confusion Matrix System Answer C4 C1 C2 C5 C3 other C4 51075 4791 6419 7827 9782 0 C1 9088 46473 6348 8099 9958 0 C2 9281 4642 48320 7897 9948 0 C5 8945 4646 6561 49953 9977 0 C3 9222 4645 6258 8054 51791 0 other 0 0 0 0 0 0 Accuracy : 0.61639 Accuracy : 0.61903 1590 1536 1525 1631 12507 0 0 0 0 0 Przykład 5.3.3 Szczegóły analizy wpływu wzrostu liczby atrybutów próbie uczącej na czas uczenia. attributes: 11 events: 5000 attributes: 21 events: 5000 Confusion Matrix System Answer C1 C3 C2 C4 C5 other C1 991 0 0 0 0 0 C3 0 979 0 0 0 0 C2 0 0 1043 0 0 0 C4 0 0 0 937 0 0 C5 0 0 0 0 1050 0 Confusion Matrix System Answer C4 C3 C2 C5 C1 other C4 951 0 0 0 0 0 C3 0 1063 0 0 0 0 C2 0 0 1012 0 0 0 C5 0 0 0 968 0 0 C1 0 0 0 0 1006 0 51 5.3 Analiza wyników other 0 0 0 0 Implementacja klasyfikatora SLIQ 0 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 2801 Leafs number .............. : 2802 Tree height ............... : 23 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 0.952 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 0.952 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 296 Leafs number .............. : 297 Tree height ............... : 19 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 0.952 Tree pruning time [s] ..... : 0.01 Total training time [s] ... : 0.962 ================================================== Testing... Done! Confusion Matrix System Answer C1 C3 C2 C4 C5 other C1 1386 147 126 62 261 0 C3 162 1376 122 64 234 0 C2 164 184 1444 49 245 0 C4 142 156 155 1190 231 0 C5 161 177 155 87 1520 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 1949 Leafs number .............. : 1950 Tree height ............... : 22 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 2.814 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 2.814 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 341 Leafs number .............. : 342 Tree height ............... : 18 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 2.814 Tree pruning time [s] ..... : 0.01 Total training time [s] ... : 2.824 ================================================== Testing... Done! Confusion Matrix System Answer C4 C3 C2 C5 C1 other C4 1394 116 155 144 93 0 C3 134 1551 166 172 103 0 C2 137 115 1533 153 86 0 C5 111 114 137 1469 105 0 C1 127 89 168 169 1459 0 other 0 0 0 0 0 0 Accuracy : 0.6916 ================================================== attributes: 51 events: 5000 Accuracy : 0.7406 ================================================== attributes: 101 events: 5000 Confusion Matrix System Answer C4 C1 C3 C5 C2 other C4 1008 0 0 0 0 0 C1 0 990 0 0 0 0 C3 0 0 1030 0 0 0 C5 0 0 0 956 0 0 C2 0 0 0 0 1016 0 other 0 0 0 0 0 0 Confusion Matrix System Answer C1 C4 C3 C2 C5 C1 1054 0 0 0 C4 0 982 0 0 0 C3 0 0 1018 0 C2 0 0 0 992 0 C5 0 0 0 0 954 other 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 1651 Leafs number .............. : 1652 Tree height ............... : 20 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 5.548 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 5.548 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 303 Leafs number .............. : 304 Tree height ............... : 20 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 5.548 Tree pruning time [s] ..... : 0.0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 1459 Leafs number .............. : 1460 Tree height ............... : 19 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 13.88 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 13.88 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 397 Leafs number .............. : 398 Tree height ............... : 19 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 13.88 Tree pruning time [s] ..... : 0.01 52 other 0 0 0 0 0 0 0 0 0 Implementacja klasyfikatora SLIQ 5.3 Analiza wyników Total training time [s] ... : 5.548 ================================================== Testing... Done! Confusion Matrix System Answer C4 C1 C3 C5 C2 other C4 1464 145 134 129 144 0 C1 133 1508 99 116 124 0 C3 136 153 1521 126 124 0 C5 143 131 110 1395 133 0 C2 106 169 114 160 1483 0 other 0 0 0 0 0 0 Total training time [s] ... : 13.89 ================================================== Testing... Done! Confusion Matrix System Answer C1 C4 C3 C2 C5 other C1 1721 120 93 98 76 0 C4 156 1573 70 106 59 0 C3 172 144 1544 108 68 0 C2 185 94 101 1534 70 0 C5 140 121 86 118 1443 0 other 0 0 0 0 0 0 Accuracy : 0.7371 ================================================== attributes: 201 events: 5000 Accuracy : 0.7815 ================================================== attributes: 301 events: 5000 Confusion Matrix System Answer C4 C2 C1 C5 C3 other C4 1020 0 0 0 0 0 C2 0 993 0 0 0 0 C1 0 0 973 0 0 0 C5 0 0 0 1004 0 0 C3 0 0 0 0 1010 0 other 0 0 0 0 0 0 Confusion Matrix System Answer C1 C3 C4 C5 C2 C1 999 0 0 0 0 C3 0 1024 0 0 C4 0 0 995 0 0 C5 0 0 0 998 0 C2 0 0 0 0 984 other 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 1384 Leafs number .............. : 1385 Tree height ............... : 20 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 22.062 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 22.062 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 319 Leafs number .............. : 320 Tree height ............... : 18 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 22.062 Tree pruning time [s] ..... : 0.01 Total training time [s] ... : 22.072 ================================================== Testing... Done! Confusion Matrix System Answer C4 C2 C1 C5 C3 other C4 1484 143 133 154 126 0 C2 100 1527 93 143 123 0 C1 94 123 1486 129 114 0 C5 84 166 83 1567 108 0 C3 100 173 80 152 1515 0 other 0 0 0 0 0 0 Accuracy : 1.0 ------------- Tree info ------------Nodes number .............. : 1339 Leafs number .............. : 1340 Tree height ............... : 21 Tree built ................ : true Tree pruned ............... : false Tree building time [s] .... : 40.398 Tree pruning time [s] ..... : 0.0 Total training time [s] ... : 40.398 ================================================== MDL Pruning... Done! ------------- Tree info ------------Nodes number .............. : 127 Leafs number .............. : 128 Tree height ............... : 16 Tree built ................ : true Tree pruned ............... : true Tree building time [s] .... : 40.398 Tree pruning time [s] ..... : 0.01 Total training time [s] ... : 40.407997 ================================================== Testing... Done! Confusion Matrix System Answer C1 C3 C4 C5 C2 other C1 1421 178 74 201 124 0 C3 162 1483 66 170 167 0 C4 171 189 1286 187 157 0 C5 140 173 68 1455 160 0 C2 140 157 83 191 1397 0 other 0 0 0 0 0 0 Accuracy : 0.7579 Accuracy : 0.7042 53 other 0 0 0 0 0 0 0 0 Dodatek A Topologia, prawdopodobieństwo i miara A.1. Przestrzeń topologiczna Niech Ω będzie dowolnym niepustym zbiorem. Definicja A.1.1 Rodzinę T podzbiorów zbioru Ω nazywamy topologią w zbiorze Ω jeżeli spełnione są następujące warunki: (T1 ) ∅ ∈ T, Ω ∈ T. (T2 ) U ∈ T ∧ V ∈ T ⇒ U ∩ V ∈ T , (T3 ) ∀ s ∈ S Us ∈ T ⇒ [ Us ∈ T dla dowolnego zbioru S. s∈S Topologia jest uogólnieniem1 pojęcia zbioru otwartego. Elementy rodziny T nazywamy zbiorami otwartymi w Ω, a parę (Ω, T) nazywamy przestrzenią topologiczną. Zauważmy, że topologia jest rodziną zamkniętą na skończony iloczyn, oraz dowolną sumę zbiorów. Przykład A.1.1 W zbiorze Ω wyróżnia się dwie skrajne topologie: • {∅, Ω} - topologia minimalna, • 2Ω - topologia dyskretna. Przykład A.1.2 Zakładając, że Ω 6= ∅ i ω ∈ Ω można podać dwa kolejne przykłady topologii w Ω: • {∅} ∪ {U ⊆ Ω : ω ∈ U } • {∅} ∪ {U ⊆ Ω : ω ∈ / U} Twierdzenie A.1.1 Niech (Ω, T) będzie przestrzenią topologiczną, a S ustalonym podzbiorem zbioru Ω. Rodzina TS podzbiorów zbioru S określona następująco: TS := S ∩ G : G ∈ T jest topologią w S. Wniosek A.1.1 W każdym podzbiorze przestrzeni topologicznej można wprowadzić topologię. Topologię TS w S nazywamy topologią indukowaną przez topologię T w Ω. 1 wykracza znacznie poza pojęcie otwartości zbioru w przestrzeniach metrycznych 54 A.2 σ-ciało i σ-ciało zbiorów Borela Topologia, prawdopodobieństwo i miara A.2. σ-ciało i σ-ciało zbiorów Borela Definicja A.2.1 Rodzinę F podzbiorów zbioru Ω nazywamy σ-ciałem podzbiorów zbioru Ω (σ-ciałem w Ω) jeżeli: (σ1 ) ∅ ∈ F, (σ2 ) A ∈ F ⇒ Ω \ A ∈ F , (σ3 ) Ai ∈ F dla i = 1, 2, . . . ⇒ [ ∞ Ai ∈ F . i=1 Wniosek A.2.1 Przeliczalnie addytywne ciało zbiorów jest σ-ciałem. Przykład A.2.1 Rodziny {∅, Ω}, 2Ω są σ-ciałami podzbiorów zbioru Ω. Każde σ-ciało zbiorów jest zamknięte ze względu na dopełnienie zbioru i przeliczalną sumę zbiorów. Dalej przekonamy się, że σ-ciała posiadają znacznie więcej własności. Twierdzenie A.2.1 Jeżeli F jest σ-ciałem podzbiorów zbioru Ω, to: (w1 ) Ω ∈ F, (w2 ) Ai ∈ F dla i = 1, 2, . . . , n ⇒ [ n Ai ∈ F , i=1 (w3 ) Ai ∈ F dla i = 1, 2, . . . ⇒ \ ∞ Ai ∈ F , i=1 (w4 ) Ai ∈ F dla i = 1, 2, . . . , n ⇒ \ n Ai ∈ F , i=1 (w5 ) A ∈ F ∧ B ∈ F ⇒ A \ B ∈ F , (w6 ) jeżeli {Fα }α∈I jest rodziną σ-ciał w zbiorze Ω, to przecięcie \ Fα jest σ-ciałem w Ω. α∈I Twierdzenie A.2.2 Dla każdej rodziny R podzbiorów zbioru Ω istnieje dokładnie jedno σciało F0 w Ω takie, że: 1. R ⊆ F0 , 2. F0 ⊆ F dla każdego σ-ciała F w Ω. F0 jest najmniejszym σ-ciałem w Ω zawierającym rodzinę R, nazywamy je σ-ciałem generowanym przez rodzinę R. Definicja A.2.2 Jeżeli (Ω, T) jest przestrzenią topologiczną z topologią T, to σ-ciałem borelowskim w przestrzeni (Ω, T) nazywamy σ-ciało generowane przez topologię T. Definicja A.2.3 Przestrzenią mierzalną nazywamy parę (Ω, F), gdzie Ω dowolny zbiór, a F σ-ciało w Ω. 55 A.3 Miara i miara probabilistyczna Topologia, prawdopodobieństwo i miara A.3. Miara i miara probabilistyczna (Ω, F) - przestrzeń mierzalna. Definicja A.3.1 Funkcję µ : F → R̃ nazywamy miarą, jeżeli spełnione są następujące warunki: (µ1 ) ∀ A ∈ Ω, µ(A)­0 (µ2 ) µ(∅) = 0 (µ3 ) µ jest przeliczalnie addytywną funkcją zbioru, tj. dla każdego ciągu zbiorów Ai ∈ F (i = 1, 2, . . .) Ai ∩ Aj = ∅ [ ∞ i 6= ⇒ dla µ Ai = ∞ X ! µ(Ai ) i=1 i=1 Mówimy, że zbiory należące do σ-ciała F są µ-mierzalne (lub krótko - mierzalne). Miara jest uogólnieniem pojęć takich jak długość, pole powierzchni, objętość zbioru2 . Trzy aksjomaty podane w definicji A.3.1 implikują kilka kolejnych bardzo ważnych własności miary. Twierdzenie A.3.1 Niech (Ω, F) będzie przestrzenią mierzalną, a µ miarą określoną na σciele F. Wtedy dla dowolnych Ai ∈ F (i = 1, 2, . . . , n) i A, B ∈ F zachodzi: (w1 ) Ai ∩ Aj = ∅ i 6= ⇒ dla [ n µ Ai = ! µ(Ai ) i=1 i=1 n X (w2 ) A ⊆ B ⇒ µ(A) ¬ µ(B) (w3 ) A ⊆ B ∧ µ(B) < +∞ ⇒ µ(B \ A) = µ(B) − µ(A) [ ∞ (w4 ) µ Ai ¬ i=1 [ n (w5 ) µ ∞ X µ(Ai ) i=1 Ai ¬ n X µ(Ai ) i=1 i=1 (w6 ) Ai ⊆ Ai+1 ⇒ [ ∞ µ ! Ai = lim µ(Ai ) i→∞ i=1 (w7 ) µ(A1 ) < +∞ ∧ Ai ⊆ Ai+1 ⇒ \ ∞ µ ! Ai = lim µ(Ai ) i=1 i→∞ Dowody twierdzeń A.2.1, A.2.2, A.3.1 można znaleźć w [8] (rozdział IV, §42, 2). Definicja A.3.2 Każdą miarę P w przestrzeni mierzalnej (Ω, F) spełniającą warunek: P (Ω) = 1 nazywamy miarą probabilistyczną (prawdopodobieństwem). 2 W przestrzeniach Rn definiuje się najczęściej miarę Lebesgue’a 56 Topologia, prawdopodobieństwo i miara A.4 Funkcje mierzalne Definicja A.3.3 Przestrzenią probabilistyczną nazywamy dowolną trójkę (Ω, F, P ), gdzie (Ω, F) jest przestrzenią mierzalną, a P miarą probabilistyczną w (Ω, F). Zbiór Ω nazywamy zbiorem zdarzeń elementarnych. Miara probabilistyczna posiada wszystkie własności miary wymienione w twierdzeniu A.3.1. Dalej przedstawimy cechy miary probabilistycznej, które nie zachodzą w ogólnej sytuacji. Twierdzenie A.3.2 Jeżeli (Ω, F, P ) jest przestrzenią probabilistyczną i A, B ∈ F, to: (P1 ) P (A) ¬ 1 (P2 ) P (A) = 1 − P (Ω \ A) (P3 ) A ⊆ B ⇒ P (B \ A) = P (B) − P (A) (P4 ) P (A ∪ B) = P (A) + P (B) − P (A ∩ B) Dowód twierdzenia A.3.2 można znaleźć w [10] (rozdział I, §1.1). Definicja A.3.4 Prawdopodobieństwo zdarzenia A ∈ F pod warunkiem zdarzenia B ∈ F o ile P (B) > 0 definiujemy jako: P (A ∩ B) P (A|B) = P (B) Twierdzenie A.3.3 (Bayesa) Dla takich zdarzeń A, B ∈ F, że P (A) > 0 i P (B) > 0 zachodzi: P (B|A)P (A) P (A|B) = P (B) Twierdzenie A.3.4 (Bayesa) Dla takich parami rozłącznych zdarzeń A1 , A2 , . . ., że P (An ) > [ 0, n = 1, 2, . . . i An = Ω, oraz dla każdego takiego zdarzenia B ∈ F, że P (B) > 0 zachodzi: n P (Ak )P (B|Ak ) P (Ak |B) = X P (An )P (B|An ) n A.4. Funkcje mierzalne Zakładamy, że (Ω, F) jest przestrzenią mierzalną. Dodatkowo niech A będzie dowolnym podzbiorem zbioru Ω. Definicja A.4.1 Funkcję f : A → R̃ nazywamy funkcją mierzalną (względem σ-ciała F) jeżeli A ∈ F oraz: ∀ a ∈ R {x : f (x) < a} ∈ F Przykładem funkcji mierzalnej jest funkcja stała na zbiorze mierzalnym. Istnieją cztery równoważne definicje mierzalności funkcji. Twierdzenie A.4.1 Niech f : A → R̃, gdzie A ∈ F. Następujące warunki są równoważne: (m1 ) f jest funkcją mierzalną, (m2 ) ∀ a ∈ R {x : f (x) ¬ a} ∈ F 57 A.4 Funkcje mierzalne (m3 ) ∀ a ∈ R {x : f (x) > a} ∈ F (m4 ) ∀ a ∈ R {x : f (x) ­ a} ∈ F Topologia, prawdopodobieństwo i miara Funkcje mierzalne generują bardzo ważną klasę zbiorów mierzalnych3 . Zamieszczamy poniżej charakterystykę zbiorów mierzalnych generowanych przez funkcje mierzalne. Twierdzenie A.4.2 Dla dowolnych mierzalnych funkcji f, g : A → R̃, oraz dowolnych a, b ∈ R zachodzą następujące własności: (w1 ) {x : f (x) < +∞} ∈ F, {x : f (x) > −∞} ∈ F, (w2 ) {x {x {x {x : : : : a < f (x) < b} ∈ F, a ¬ f (x) < b} ∈ F, a < f (x) ¬ b} ∈ F, a ¬ f (x) ¬ b} ∈ F, (w3 ) {x : f (x) = a} ∈ F, {x : f (x) 6= a} ∈ F, (w4 ) {x {x {x {x : : : : f (x) < g(x)} ∈ F, f (x) ¬ g(x)} ∈ F, f (x) = g(x)} ∈ F, f (x) 6= g(x)} ∈ F. Twierdzenie A.4.3 Obcięcie funkcji mierzalnej do niepustego zbioru mierzalnego jest funkcją mierzalną. Dowody twierdzeń A.4.1, A.4.2, A.4.3 można znaleźć w [8] (rozdział VI, §44). 3 W dalszych rozważaniach najczęściej wykorzystywać będziemy własność przechodzenia mierzalności funkcji na mierzalność jej przeciwobrazów (ich pewnej klasy). 58 Dodatek B Teoria grafów B.1. Grafy Definicja B.1.1 Parę G =< V, E > nazywamy grafem jeżeli V jest dowolnym niepustym zbiorem skończonym oraz E ⊆ P2 (V ) := {A ⊆ V : |A| = 2}. Zbiór V nazywamy zbiorem wierzchołków, zbiór E nazywamy zbiorem krawędzi grafu G. Definicja B.1.2 Parę G =< V, E > nazywamy grafem zorientowanym jeżeli V jest dowolnym niepustym zbiorem skończonym oraz E ⊆ V × V . Każdy element v ∈ V nazywamy wierzchołkiem grafu G. Krawędzią grafu G łączącą wierzchołki v1 , v2 ∈ V nazywamy parę e = {v1 , v2 } ∈ E. Definicja B.1.3 Podgrafem grafu G =< V, E > nazywamy dowolny graf H =< W, F > taki, że W ⊆ V oraz F ⊆ E. Definicja B.1.4 Mówimy, że w grafie G =< V, E > wierzchołek u ∈ V sąsiaduje z wierz chołkiem v jeżeli {v, u} ∈ E. Zbiór VG (v) := u ∈ V : {v, e} ∈ E nazywamy zbiorem wierzchołków sąsiadujących z wierzchołkiem v, zbiór EG (v) := e ∈ E : v ∈ e nazywamy zbiorem krawędzi wierzchołka v. Wniosek B.1.1 Dla dowolnego v ∈ V zachodzi: VG (v) = EG (v). Definicja B.1.5 Stopniem wierzchołka v ∈ V grafu G =< V, E > nazywamy liczbę: degG (v) := EG (v) (B.1) Definicja B.1.6 Drogą o długości k − 1 (k ­ 2) w grafie G =< V, E > nazywamy dowolny ciąg wierzchołków (v1 , . . . , vk ) taki, że: 1. {vi , vi+1 } ∈ E 2. i 6= j dla dla i = 1, . . . , k − 1 i, j = 1, . . . , k − 1 ⇒ {vi , vi+1 } = 6 {vj , vj+1 } Drogę (v1 , . . . , vk ) oznaczamy v1 − vk drogą (v1 − vk droga łączy wierzchołki v1 , vk ∈ V ). Definicja B.1.7 Drogę (v1 , . . . , vk ) w grafie G =< V, E > nazywamy drogą prostą jeżeli: i 6= j dla i, j = 1, . . . , k − 1 ⇒ (vi 6= vj ) 59 B.2 Drzewa Teoria grafów Definicja B.1.8 Cyklem w grafie G =< V, E > nazywamy każdą drogę (v1 , . . . , vk ) o długości większej niż 2 taką, że v1 = vk . Definicja B.1.9 Graf G =< V, E > nazywamy grafem acyklicznym jeżeli nie posiada cykli. Definicja B.1.10 Graf G =< V, E > nazywamy spójnym wtedy i tylko wtedy, gdy dla każdych u, v ∈ V istnieje u − v droga w grafie G. Składową grafu G nazywamy każdy maksymalny podgraf spójny grafu G. Definicja B.1.11 Odległością distG (u, v) w grafie G =< V, E > pomiędzy wierzchołkami u, v ∈ V nazywamy długość najkrótszej u − v drogi w grafie G. W przypadku, gdy wierzchołki u, v leżą w różnych składowych przyjmuje się distG (u, v) = +∞. Funkcja odległość w grafie jest metryką. B.2. Drzewa Definicja B.2.1 Graf T =< V, E > nazywamy drzewem jeżeli: 1. T jest grafem spójnym 2. T jest grafem acyklicznym (nie ma cykli). Graf, które spełnia tylko warunek 2 nazywamy lasem. Definicja B.2.2 Każdy wierzchołek v ∈ V drzewa T =< V, E > o stopniu degT (v) = 1 nazywamy liściem. Twierdzenie B.2.1 Jeżeli G =< V, E > jest grafem to następujące warunki są równoważne: 1. graf G jest drzewem 2. dla każdych wierzchołków u, v ∈ V istnieje dokładnie jedna u − v droga w G i jest to droga prosta 3. Graf G jest spójny i |V | = |E| + 1 4. Graf G jest acykliczny i |V | = |E| + 1 5. Graf G jest acykliczny i dodanie do G nowej krawędzi powoduje powstanie dokładnie jednego cyklu. 60 Bibliografia [1] Jacek Koronacki, Jan Ćwik: Statystyczne systemy uczące się, Wydawnictwa NaukowoTechniczne, Warszawa 2005 [2] Paweł Cichosz: Systemy uczące się, Wydawnictwa Naukowo-Techniczne, Warszawa 2000 [3] Leo Breiman, Jerome H. Friedman, Richard A. Olshen, Charles J. Stone: Classification and Regression Trees, Chapman & Hall, New York, NY, 1984 [4] Manish Mehta, Rakesh Agrawal, Jorma Rissanen: SLIQ: A Fast Scalable Classifier for Data Mining, Proc. of the Fifth Int’l Conference on Extending Database Technology, Avignon, France, March 1996 [5] John C. Shafer, Rakesh Agrawal, Manish Mehta: SPRINT: A Scalable Parallel Classifier for Data Mining, Proc. of the 22th Int’l Conference on Very Large Databases, Mumbai (Bombay), India, Sept. 1996 [6] Manish Mehta, Jorma Rissanen, Rakesh Agrawal: MDL-based Decision Tree Pruning, Proc. of the 1st Int’l Conference on Knowledge Discovery in Databases and Data Mining, Montreal, Canada, August, 1995 [7] Kenneth Ross, Charles R. B. Wright : Matematyka dyskretna, Państwowe Wydawnictwo Naukowe, Styczeń 2005 [8] Witold Kołodziej: Analiza matematyczna, Państwowe Wydawnictwo Naukowe, Warszawa 1978 [9] Kazimierz Kuratowski: Wstęp do teorii mnogości i topologii, wydanie piąte, Państwowe Wydawnictwo Naukowe, Warszawa 1972 [10] Jacek Jakubowski, Rafał Sztencel: Wstęp do teorii prawdopodobieństwa, Wydanie II, SCRIPT, Warszawa 2001 [11] Patrick Billingsley: Prawdopodobieństwo i miara, Państwowe Wydawnictwo Naukowe, Warszawa 1987 61 Mariusz Gromada Nr albumu 174094 Warszawa, 31 stycznia 2006 Oświadczenie Oświadczam, że pracę magisterską pod tytułem „Drzewa Klasyfikacyjne - ich budowa, problemy złożoności i skalowalności”, której promotorem jest Prof. dr hab. Jacek Koronacki wykonałam samodzielnie, co poświadczam własnoręcznym podpisem. ........................................... Mariusz Gromada