Politechnika Wrocławska Projekt: Porównanie algorytmów tworzenia drzew decyzyjnych Uczenie maszyn Michał Płodowski 163763 Michał Suszko 171132 Kamil Markuszewski 171016 1. WSTĘP ..................................................................................................................................................... 2 2. CEL PROJEKTU ......................................................................................................................................... 6 3. ALGORYTMY ........................................................................................................................................... 7 1. OPIS ALGORYTMU ID3 .................................................................................................................................... 7 2. WADY, ZALETY I ROZWINIĘCIE ALGORYTMU ID3 ................................................................................................. 10 3. OPIS ALGORYTMU C4.5 ................................................................................................................................ 12 4. OPIS ALGORYTMU CART ............................................................................................................................... 13 4. PLAN BADANIA ..................................................................................................................................... 14 5. WYNIKI BADAŃ ..................................................................................................................................... 15 1. BAZA IONOSPHERE ....................................................................................................................................... 15 2. BAZA IRIS ................................................................................................................................................... 15 3. BAZA GLASS ................................................................................................................................................ 16 4. BAZA FLAGS ................................................................................................................................................ 16 5. BAZA BALANCE_SCALE .................................................................................................................................. 17 6. BAZA DIABETES............................................................................................................................................ 17 7. BAZA TIC-TAC-TOE ....................................................................................................................................... 18 8. BAZA ZOO .................................................................................................................................................. 18 9. ZESTAWIENIE WYNIKÓW ................................................................................................................................ 19 6. WNIOSKI. .............................................................................................................................................. 21 7. BIBLIOGRAFIA. ...................................................................................................................................... 22 1 1. Wstęp W działalności badawczej, a w szczególności w teorii decyzji, drzewa decyzyjne są narzędziami wspomagającymi podejmowanie decyzji. Korzystają one z graficznego przedstawienia decyzji i ich możliwych konsekwencji, w tym zdarzenia losowego wyników, kosztów zasobów, oraz użyteczności. Drzewa decyzji wykorzystuje się do określenia najbardziej prawdopodobnej strategii, tworzenia planu, do osiągnięcia celu. Są one są tak skonstruowane aby pomóc w podejmowaniu decyzji. Człowiek posiada tę umiejętność, że na podstawie przeszłych doświadczeń potrafi trafnie sklasyfikować nowy przypadek i podjąć wobec niego dobrą decyzję. My więc chcielibyśmy tego samego nauczyć komputer. Dając mu ''bagaż'' doświadczeń, czyli informację o przypadkach określonego typu, chcielibyśmy, aby podejmował racjonalną decyzję. Racjonalną znaczy najbliższą indukowanym regułom, które w jego mniemaniu zostały użyte do podjęcia tych dobrych decyzji i jednocześnie o niskim przewidywalnym poziomie pomyłek. Do tych właśnie celów wymyślono drzewa decyzyjne, które na stałe wpisały się w poczet elementów uczenia maszynowego. Na podstawie dostarczonego zbioru faktów i reguł maszyna uczy się jak sklasyfikować nowe przypadki. Zbiór faktów na podstawie, których będziemy wnioskować nazywamy Training Set, natomiast nowe przypadki, które będziemy chcieli zaklasyfikować to Test Set. Klasyfikacja polega na stwierdzeniu w jakiej kategorii umieścić nowy przypadek, zwykle jest to podział binarny na true lub false itp. Training Set jest zbiorem rekordów o tej samej strukturze, na którą składają się pary typu atrybut/wartość atrybutu. Ponadto każdy rekord jest przyporządkowany do odpowiedniej kategorii. Na podstawie wartości tych atrybutów i Training Set próbujemy sklasyfikować nowe przypadki, w których mamy dane jedynie atrybuty i ich wartości. 2 Drzewa decyzyjne mają ustalony porządek: korzeń odpowiada wszystkim możliwym decyzjom każdy wewnętrzny węzeł odpowiada pewnej decyzji, którą możemy podjąć liściom odpowiadają cele Rys. 1: Przykładowe drzewo decyzyjne utworzone w programie WEKA dla bazy" iris" 3 Drzewem decyzyjnym (klasyfikacyjnym) określamy drzewo reprezentujące proces podziału zbioru obiektów na jednorodne klasy. W takim drzewie wewnętrzne węzły opisują sposób dokonania podziału na jednorodne klasy (dokonywany w oparciu o wartości cech obiektów), a liście klasy, do których obiekty należą. Z kolei krawędzie drzewa reprezentują wartości cech, na podstawie których dokonano podziału. Celem jest oczywiście zbudowanie drzewa jak najmniejszego (o minimalnej liczbie węzłów), po to by otrzymane reguły klasyfikacji były jak najprostsze. Bardzo ogólna postać algorytmu składa się z następujących kroków: 1. Mając zbiór obiektów S, sprawdź, czy należą one do tej samej klasy. Jeśli tak, to zakończ pracę. 2. W przeciwnym przypadku rozważ wszystkie możliwe podziały zbioru S na podzbiory , ,… tak, aby były one jak najbardziej jednorodne. 3. Dokonaj oceny jakości każdego z tych podziałów zgodnie z przyjętym kryterium i wybierz najlepszy z nich. 4. Podziel zbiór S w wybrany sposób. 5. Wykonaj kroki 1-4 rekurencyjnie dla każdego z podzbiorów. Rys. 2: Przykład drzewa decyzyjnego 4 Różnice dotyczą postaci funkcji oceniającej jakości podziału, sposobu klasyfikacji obiektów o brakujących wartościach cech, itd. Tabela 1 prezentuje znane algorytmy budowy drzew klasyfikacyjnych z podziałem na binarne i dowolne. . RODZAJ NAZWA ROK AUTORZY CLS 1996 Hunt,Marin, Stone binarne ACLS 1982 Paterson, Niblett binarne ID3 1983 Quinlan dowolne CART 1984 ASSISTANT 1985 Kononenko binarne ID4 1986 Schlimmer, Fisdher dowolne PLS 1986 Rendell dowolne C4 1987 Quinlan dowolne GID 3 1988 Chengf, Fayyad,Irani dowolne ID5 1989 Utgoff dowolne LMDT 1991 Brodley, Utgoff CHAID 1993 SPSSInc. dowolne IND 1993 Bruntine, Caruana dowolne SADT 1993 Heat,Kasif,Salzberg SE-LEARN 1993 Rymonn OC1 1994 Murthy DRZEWA Brieman, Friedman binarne Olshen, Stone binarne, wielowymiarowe binarne, wielowymiarowe dowolne binarne, wielowymiarowe Tabela 1 Rodzaje algorytmów twrorzenia drzew decyzyjnych 5 2. Cel projektu Celem naszego projektu jest porównanie algorytmów tworzenia tzw. „drzew decyzyjnych” oraz jakości ich klasyfikacji. Zostanie do tego wykorzystany program WEKA. Jest to oprogramowanie z zakresu uczenia maszynowego (machine learning) i pozyskiwania wiedzy (data mining), stworzone w języku Java. Wybraliśmy osiem różnych baz na których przeprowadzimy nasze badania. W naszym projekcie skupimy się na najbardziej popularnych i najczęściej wykorzystywanych algorytmach tworzenia drzew czyli : ID3, C 4.5, CART. 6 3. Algorytmy 1. Opis algorytmu ID3 Jednym z najpopularniejszych algorytmów pozwalających na realizację systemów uczących się jest algorytm ID3 opracowany przez Rossa Quinlana. Algorytm ten służy do indukcyjnego pozyskiwania wiedzy deklaratywnej (w postaci drzewa decyzyjnego). Generalnie wnioskowanie indukcyjne opiera się na przechodzeniu od obserwacji jednostkowych do ogólniejszych wniosków. W przypadku systemów komputerowych wnioskowanie indukcyjne opiera się na generacji pewnych ogólnych zasad na podstawie istniejących danych, obserwacji, przypadków itp. Algorytm ID3 pozwala na generację drzewa decyzyjnego na podstawie szeregu przypadków jednostkowych. Drzewo decyzyjne jest w tym wypadku pewną strukturalnym zapisem wiedzy, pozwalającym na podstawie wartości pewnych cech (warunkowych) przypisać konkretne wartości cechom decyzyjnym. Bardziej formalnie drzewo decyzyjne to struktura złożona z węzłów, z których wychodzą gałęzie prowadzące do innych węzłów lub liści, lub inaczej: drzewo decyzyjne to dowolny spójny skierowany graf acykliczny, gdzie krawędzie są nazywane gałęziami, wierzchołki, z których wychodzą gałęzie nazywane są węzłami a pozostałe wierzchołki nazywane są liśćmi. Węzły w drzewie decyzyjnym wyrażają test na wartość jakiegoś atrybutu, gałęzie wychodzące z tego węzła wyrażają poszczególne wartości analizowanego atrybutu, liście zaś reprezentują kategorie decyzyjne. Aby wygenerować za pomocą algorytmu ID3 drzewo decyzyjne konieczny jest stosunkowo liczny zbiór przykładów opisujących daną sytuację. Każdy przykład ze zbioru przyjmuje jakąś wartość dla każdego atrybutu z listy atrybutów warunkowych oraz atrybutu decyzyjnego. Każdy atrybut opisujący dany przykład może przyjąć jedną z listy (osobnej dla każdego atrybutu) możliwych wartości. Taki zbiór przykładów nazywa się zbiorem uczącym. Gdy dana jest lista atrybutów wraz z listami dostępnych wartości oraz uczący, można rozpocząć budowę drzewa decyzyjnego. 7 Zasada działania algorytmu ID3 opiera się na tym, że wybiera się wg jakiegoś (za chwile zostanie sprecyzowane jakiego) klucza atrybut, następnie traktuje się go jako pierwszy węzeł, z którego wychodzić będzie tyle gałęzi ile wartości może przyjąć ten atrybut. Każda z gałęzi wyraża wybór którejś z wartości analizowanego atrybutu. Na końcu każdej gałęzi tworzy się nową listę przykładów, taką dla której atrybut nadrzędny ma taką wartość jaką wyraża prowadząca z niego gałąź. W tym punkcie znów dobiera się wg wspomnianego wyżej klucza atrybut, który będzie testowany w kolejnym węźle, chyba, że zaistnieje warunek stopu, wtedy na końcu gałęzi wstawia się liść, który oznacza kwalifikację wszystkich przykładów spełniających powyższe warunki do jednej kategorii atrybutu decyzyjnego. Gdy na końcu gałęzi jest nowy węzeł wyprowadza się z niego tyle gałęzi ile możliwych wartości atrybut powiązany z tym węzłem może przyjąć itd. Na końcu pozostaje zasadnicze kryterium doboru atrybutów: który z nich będzie rozpatrywany jako korzeń, które zaś będą wstawiane dalej. W tym punkcie Quinlan zaproponował wykorzystanie kryterium względnego maksymalnego przyrostu informacji. Do wyznaczenia owego względnego maksymalnego przyrostu informacji konieczne jest wyznaczenie ilości informacji, czyli entropii oraz entropii zbioru przykładów ze względu na analizowany atrybut. 8 Entropia: gdzie: k – Liczba wartości atrybutu decyzyjnego | Ei | – Liczba przykładów ze zbioru uczącego mających i-tą wartość atrybutu decyzyjnego Entropia zbioru przykładów ze względu na analizowany atrybut: a – analizowany atrybut L – liczba wartości analizowanego atrybutu E(m) – przykłady, dla których a-ty atrybut miał m-tą wartość | E(m) | – liczba przykładów, dla których a-ty atrybut miał m-tą wartość Względny maksymalny przyrost informacji: Atrybut, dla którego względny maksymalny przyrost informacji będzie największy będzie wybrany jako pierwszy węzeł (korzeń) drzewa decyzyjnego. 9 2. Wady, zalety i rozwinięcie algorytmu ID3 Bardzo ważną zaletą algorytmu ID3 jest to, że jeśli dane są poprawne i kompletne to zawsze da poprawne wyniki. Poza tym jest to algorytm stosunkowo szybki, nie wymagający czasochłonnych obliczeń. Niestety algorytm ID3 nie jest bez wad. Część z nich widoczne jest już na pierwszy rzut oka: przede wszystkim algorytm ten nie radzi sobie gdy zbiór przykładów jest niekompletny, tzn. gdy w przykładach są luki, bądź dane są zaszumione, czyli dla takich samych wartości atrybutów warunkowych są różne wartości atrybutu decyzyjnego. Algorytm ID3 działa tylko na wartościach dyskretnych, czyli nie potrafi wygenerować drzewa decyzyjnego dla wartości ciągłych. Inną dość charakterystyczną wadą jest możliwość budowy, przy dużej liczbie przykładów, zbyt dużych drzew decyzyjnych, które z jednej strony będą trudne do interpretacji a z drugiej, przy nieco zaszumionych danych mogą dawać nie zawsze poprawne wyniki. 10 Większość wspomnianych wyżej wad można jednak naprawić modyfikując nieco algorytm: Problem niekompletnych danych można rozwiązać na kilka sposobów: o Jeśli luk nie ma wiele to można przykłady z brakującymi danymi po prostu usunąć ze zbioru uczącego. Jest to rozwiązanie najprostsze ale też najmniej skuteczne. o Można brakujące dane wylosować, bądź w bardziej rozbudowanej wersji wylosować bazując na prawdopodobieństwach z jakimi pojawiają się poszczególne wartości danego atrybutu. o Można wpisać najczęściej pojawiającą się wartość danego atrybutu Wartości ciągłe można skwantyfikować. Ważne w tym punkcie jest to, by kwantyfikacja oddawała właściwe proporcje danych. Dla przykładu, gdyby jednym z atrybutów była temperatura ciała człowieka i skwantyfikowano ją na trzy wartości: wysoka, średnia i niska wg temperatur: do 15 stopni Celsjusza niska, między 20 a 30 stopni średnia i powyżej 30 wysoka, to praktycznie zawsze człowiek mieści się w zakresie temperatury wysokiej i takiego atrybut nie można by użyć do generacji drzewa. Na zaszumienie danych najlepszym rozwiązaniem jest przycięcie drzewa. Sam problem zaszumienia danych może wynikać np. z pewnej losowości w zbiorze przykładów (np. raz się zdarzyło, że ktoś poszedł grać w golfa przy niesprzyjającej temu pogodzie). Przycinanie drzewa polega na skróceniu zbyt długich gałęzi i wstawieniu na końcu wybranej gałęzi liścia zamiast węzła. W takim liściu przypisuje się taką wartość atrybutu decyzyjnego jaka najczęściej pojawia się w opisującym go zbiorze przykładów. Ważny jest oczywiście wybór punktu przycięcia drzewa, jedną z metod wybory takiego punktu może być np. odpowiedni udział procentowy jednej wartości, np.: 90-10. Przycinanie drzewa jest oczywiście dobrą metodą ograniczania zbyt dużego drzewa, dla którego zbyt dokładne dopasowanie nie ma sensu (np. ze względu na losowe zaszumienie). Sam autor algorytmu ID3, Ross Quinlan po kilku latach przedstawił jego modernizację w podobny sposób rozwiązującą wspomniane wyżej problemy, czyli algorytm C4.5. 11 3. Opis algorytmu C4.5 Algorytm C4.5 (Quinlan) jest rozszerzeniem algorytmu ID3 wychodzącym naprzeciw problemom napotkanym przez ID3. Algorytm C4.5 rekurencyjnie odwiedza każdy węzeł decyzyjny, wybierając możliwy podział, dopóki dalsze podziały są możliwe. Cechy: wykorzystuje drzewa, które nie muszą być binarne, tworzy odrębne gałęzie dla każdej wartości atrybutu jakościowego, wykorzystuje pojęcia “zysk informacji” oraz “redukcję entropii”, aby wybrać optymalny podział. W algorytmie ID3 głównym kłopotem był niepotrzebny rozrost drzewa i brak mechanizmów przeciwdziałających zjawisku overfitting-u, co prowadziło do dość wysokiego poziomu błędów dla rzeczywistych danych. Aby tego uniknąć stosuje się tzw. przycinanie (ang. pruning) , w celu zwiększenia generalizacji oceny. Konkretnie działa ono w następujący sposób: 1. zaczyna od liści i działa BottomUp, 2. mając dany węzeł nie będący liściem i jego poddrzewo oblicza w heurystyczny sposób wartość przewidywanego błędu dla aktualnego poddrzewa, 3. oblicza wartość przewidywanego błędu dla sytuacji, gdyby rozpatrywane poddrzewo zastąpić pojedynczym liściem z kategorią najpopularniejszą wśród liści, 4. porównuje te dwie wartości i ewentualnie dokonuje zamiany poddrzewa na pojedynczy liść propagując tę informację do swych przodków. Dzięki temu zabiegowi otrzymujemy większą generalizację oceny nowych przypadków. 12 4. Opis algorytmu CART Algorytm CART jest bardzo popularną metodą klasyfikacji danych służcym do budowy drzew decyzyjnych. Nazwa pochodzi od słów „Classification and regression trees”, czyli drzewa klasyfikacji i regresji. Jego głównymi cechami są: - wysoka skuteczność - potrafi budować drzewa zarówno w oparciu o dane dyskretne jak i ciągłe - tworzy węzły binarne (z każdego węzła odchodzą co najwyżej dwie gałęzie) - dzieli klasy rozwiązań na superklasy (grupy klas) Algorytm ten działa zarówno dla ciągłych jak i dyskretnych danych wejściowych. Dla danych ciągłych dla każdego węzła dzieli zbiór rozwiązań na dwa rozłaczne zbiory A € (-∞, c) i B(c, ∞) gdzie c oznacza cechę obiektu. Dzielenie odbywa się do czasu, gdy algorytm uzna, iż dalszy podział nie zwiąkszy zysku w ocenie obiektów. Każdemu węzłowi w drzewie przypisywane są etykiety. Etykiety zależą od tego, jaka klasa występuje najczęściej w poddrzewie składającym się z potomków danego węzła. Dodatkowo etykieta może być zmodyfikowana poprzez ocenę kosztów błędnego przypisania. Ciekawą rzeczą jest wykorzystanie tak zwanych podziałów zastępczych (ang. Surrogate Splits). Ma to znaczenie, gdy dla obiektu brakuje danych dotyczących cechy. Dane te są przewidywane na podstawie innych cech. Dzięki temu obiekt, któy nie jest w pełni znany, może być przypisany do właściwej grupy. Jak większość algorytmów, CART może przerwać swoje działanie w oparciu o kryterium przerwania. Kryterium to jest określane na podstawie liczby błędnych klasyfikacji oraz liczby liści drzewa. To właście to działanie klasyfikuje algorytm jako algorytm regresji, ponieważ prócz klasyfikacji ocenia i przewiduje wynik. Istnieje kilka modyfikacji algorytmu CART, różnią się one głównie sposobem przerwania budowy drzewa oraz przypisywanie etykiet węzło. Wykorzystywany przez nas program WEKA używa własnej implementacji algorytmu CART nazwanej SimpleCart. Implementacja ta zawiera między innymi przycinanie drzewa rozwiązań. Posiada jednak sporą wadę, jaką jest brak obsługi klas numerycznych oraz nie radzi sobie z regresją. 13 4. Plan badania Program WEKA wymaga aby dane były w formacie .arff. Pierwszym krokiem było przekonwertowanie baz na ten właśnie format. Po wczytaniu bazy i przejściu do zakładki klasyfikacja, wybieramy drzewa i interesujący nas algorytmy. Niektóre algorytmy są zablokowane ponieważ potrzebują do działania specjalnie przefiltrowanych danych. Algorytm ID3 wymaga aby dane były w postaci dyskretnej. W tym celu należało przejść do zakładki z danymi i nałożyć na nie filtr dyskretyzacji. 14 5. Wyniki badao 1. Baza ionosphere Algorytm Czas generowania drzewa [s] Liczba liści Rozmiar drzewa Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona J48 0,45 18 35 119 SimpleCart 0,81 3 węzły 5 119 Id3 0,12 101 (84 %) 18 (15 %) 0 0,6904 0,1562 0,3793 32,5551 73,8638 0,851 100 (84 %) 19 (15 %) 0 0,6750 0,1753 0,3957 36,5266 77,0566 0,840 104 (87 %) 13 (10 %) 2 0,7746 0,1111 0,3333 23,5644 65,5077 0,889 J48 0,01 5 9 51 SimpleCart 0,01 5 węzłów 9 51 Id3 0,01 49 (96 %) 2 (3 %) 0 0,9408 0,0396 0,1579 8,8979 33,4091 0,965 49 (96 %) 2 (3 %) 0 0,9408 0,0396 0,1579 8,8979 33,4091 0,965 49 (96 %) 2 (3 %) 0 0,9408 0,0327 0,1429 7,3360 30,2299 0,965 119 2. Baza iris Algorytm Czas generowania drzewa [s] Liczba liści Rozmiar drzewa Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona 15 51 3. Baza glass Algorytm Czas generowania drzewa [s] Liczba liści Rozmiar drzewa Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona J48 0,05 30 59 73 SimpleCart 0,08 8 węzłów 15 73 Id3 0,00 42 (57 %) 31 (42, %) 0 0,4259 0,1246 0,3287 58,7442 101,8335 0,603 52 (71 %) 21 (28 %) 0 0,5901 0,1063 0,2610 50,1174 80,8500 0,720 50 (68 %) 21 (28 %) 2 0,5926 0,0983 0,2753 47,7829 86,7318 0,753 73 4. Baza flags Niestety algorytm ID3 nie potrafił zbudować drzewa w oparciu o dane z tej bazy, nie wpłynęło na to także zastosowanie filtra dyskretyzacji. Algorytm Czas generowania drzewa [s] Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona J48 0,06 66 32 (48 %) 34 ( 51 %) 0 0,3218 0,1426 0,2992 74,0931 96,3911 0,425 16 SimpleCart 0,87 66 23 (34 %) 43 (65 %) 0 0,0000 0,1908 0,3105 99,1462 100 0,121 Id3 5. Baza balance_scale Algorytm J48 Czas generowania drzewa [s] Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona SimpleCart 0 212 157 (74 %) 55 (25 %) 0 0,5495 0,1889 0,3651 49,5316 83,1718 0,738 Id3 0,05 212 157 (74 %) 55 (25%) 0 0,5495 0,2005 0,00 212 141 (66 %) 71 (33 %) 0,00 0,4006 0,2224 0,3516 58,3137 80,1041 0,644 0,3723 52,5661 84,826 0,738 6. Baza diabetes Algorytm J48 Czas generowania drzewa [s] Liczba liści Rozmiar drzewa Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona 17 SimpleCart 0,06 11,00 17,00 261,00 209 (80 %) 52 (19 %) 0 0,1525 0,2313 0,3412 68,4560 85,6498 0,586 0,17 10,00 19,00 261 210 (80 %) 51 (19 %) 0 0,0000 0,3372 0,3983 99,8106 99,9749 0,551 Id3 0,02 261 204 (78 %) 57 (21 %) 0 0,4447 0,2610 0,3863 57,8719 82,5288 0,598 7. Baza tic-tac-toe Czas generowania drzewa [s] Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona 0,11 326 305 (93 %) 21 (6 %) 0 0,8506 0,0679 0,2154 15,1144 46,2516 0,936 0 326 274 (84 %) J48 0,02 34 30 (88 %) 4 (11 %) 0 0,7580 0,1405 0,3345 28,6399 67,3158 0,844 SimpleCart 0,13 34 28 (82 %) 6 (17 %) 0 0,5901 0,3171 0,3834 100,0000 100,0000 0,457 52 (15 %) 0,00 0,61 0,206 0,3729 45,8875 80,0625 0,837 0,00 326 256 (78 %) 63 (19 %) 7 (2,1472 %) 0,532 0,1975 0,4444 45,1043 96,7889 0,802 8. Baza zoo Algorytm Czas generowania drzewa [s] Liczba instancji Liczba poprawnie sklasyfikowanych instancji Liczba błędnie sklasyfikowanych instancji Liczba niesklasyfikowanych instancji Współczynnik Kappa Średni błąd bezwzględny Błąd średniokwadratowy Średni błąd względny [%] Względny błąd średniokwadratowy[%] Precyzja - średnia ważona Id3 Niestety algorytm ID3 nie potrafił zbudować drzewa w oparciu o dane z tej bazy, nie wpłynęło na to także zastosowanie filtra dyskretyzacji. 18 9. Zestawienie wyników 120,000 100,000 80,000 60,000 C4.5 SimpleCart 40,000 Id3 20,000 0,000 Wykres 1: Zestawienie czasu wykonywania się algorytmów 120,000 100,000 80,000 60,000 C4.5 SimpleCart 40,000 Id3 20,000 0,000 Wykres 2: Zestawienie współczynnika Kappa 19 120,000 100,000 80,000 60,000 C4.5 SimpleCart 40,000 Id3 20,000 0,000 Wykres 3: Zestawienie precyzji 120,000 100,000 80,000 60,000 C4.5 SimpleCart 40,000 Id3 20,000 0,000 Wykres 4: Zestawienie procentowe poprawnie sklasyfikowanych instancji 20 6. Wnioski. Czas generowania drzewa przez poszczególne algorytmy zależy do wielkości bazy testowej. Najszybciej generował je algorytm Id3, najwolniej Cart. Im baza jest większa, tym bardziej widoczna jest różnica. Jeśli chodzi o jakość klasyfikacji, czyli Liczba poprawnie sklasyfikowanych instancji, to najlepiej dla baz ionosphere i iris najlepiej zachowywał się algorytm Id3 (w przypadku bazy glass był to Cart), jednak zdarzało mu się nie klasyfikować instancji (tak jak dla baz ionosphere i glass). Współczynnik Kappa Cohena ( ) określa stopień zgodności dwukrotnych pomiarów tej samej zmiennej w różnych warunkach. Pomiaru tej samej zmiennej może dokonać 2 różnych obserwatorów (odtwarzalność) lub jeden obserwator może dokonać pomiaru dwukrotnie (powtarzalność). Współczynnik wyznacza się dla zależnych zmiennych kategorialnych a jego wartość zawiera się w przedziale od -1 do 1. Wartość 1 oznacza pełną zgodność, wartość 0 oznacza zgodność na poziomie takim samym jaki powstałby dla losowego rozłożenia danych w tabeli kontyngencji. Poziom pomiędzy 0 a -1 jest w praktyce nie wykorzystywany. W badaniach najlepszy wynik, tj. współczynnik Kappa jak najbliższy 1 osiągał algorytm Id3, następny był J48, na końcu Cart. Można zaobserwować iż algorytm ID3 w większości przypadków miał najmniejszą precyzję w klasyfikacji. Bardzo dużym minusem tego algorytmu było iż nie dopuszcza on danych numerycznych ani wartości brakujących. Im większy była Liczba instancji w bazie, tym bardziej prawidłowa była klasyfikacja, czego należało się oczywiście spodziewać. Algorytm C4.5 okazał się trochę wolniejszy od poprzedników, ale za to miał największy procent poprawnie sklasyfikowanych obiektów. Jak widać z zaprezentowanych badań, drzewo decyzyjne sprawdza się jako metoda analizy dużych zestawów danych. Atutem nie do przecenienia jest szybkość wygenerowania modelu przy jednoczesnej dbałości o wysoką jakość otrzymanych wyników. 21 7. Bibliografia. 1. Quinlan J.R. “Induction of decision trees. Machine learning”, 1986, 1, 81-106; 2. http://pl.wikipedia.org/wiki/Drzewo_decyzyjne 3. http://www.kis.pjwstk.edu.pl/wp-content/uploads/emm-w52009drzewadecyzyjne.pdf 4. http://www.mimuw.edu.pl/~awojna/SID/referaty/strzelczak/c4_5Main.html 5. http://www.cs.waikato.ac.nz/ml/weka/ 6. http://informatyka.umcs.lublin.pl/files/zurek.pdf 7. http://www.ise.pw.edu.pl/~cichosz/um/wyklad/wyklad4/ 8. http://aragorn.pb.bialystok.pl/~radev/ai/se/zal/selic/dziekan.pdf 9. http://tigger.uic.edu/~georgek/HomePage/Nonparametrics/timofeev.pdf 10. http://winntbg.bg.agh.edu.pl/rozprawy2/10080/full10080.pdf 22