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.. NAZWA ROK AUTORZY RODZAJ DRZEWA CLS 1996 Hunt,Marin, Stone binarne ACLS 1982 Paterson, Niblett binarne ID3 1983 Quinlan dowolne CART 1984 Brieman, Friedman Olshen, Stone binarne 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 binarne, wielowymiarowe CHAID 1993 SPSSInc. dowolne IND 1993 Bruntine, Caruana dowolne SADT 1993 Heat,Kasif,Salzberg binarne, wielowymiarowe SE-LEARN 1993 Rymonn dowolne OC1 1994 Murthy 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 J48 SimpleCart Id3 Czas generowania drzewa [s] 0,45 0,81 0,12 Liczba liści 18 3 węzły Rozmiar drzewa 35 5 Liczba instancji 119 119 119 Liczba poprawnie sklasyfikowanych instancji 101 (84 %) 100 (84 %) 104 (87 %) Liczba błędnie sklasyfikowanych instancji 18 (15 %) 19 (15 %) 13 (10 %) Liczba niesklasyfikowanych instancji 0 0 2 Współczynnik Kappa 0,6904 0,6750 0,7746 Średni błąd bezwzględny 0,1562 0,1753 0,1111 Błąd średniokwadratowy 0,3793 0,3957 0,3333 Średni błąd względny [%] 32,5551 36,5266 23,5644 Względny błąd średniokwadratowy[%] 73,8638 77,0566 65,5077 Precyzja - średnia ważona 0,851 0,840 0,889 2. Baza iris Algorytm J48 SimpleCart Id3 Czas generowania drzewa [s] 0,01 0,01 0,01 Liczba liści 5 5 węzłów Rozmiar drzewa 9 9 Liczba instancji 51 51 51 Liczba poprawnie sklasyfikowanych instancji 49 (96 %) 49 (96 %) 49 (96 %) Liczba błędnie sklasyfikowanych instancji 2 (3 %) 2 (3 %) 2 (3 %) Liczba niesklasyfikowanych instancji 0 0 0 Współczynnik Kappa 0,9408 0,9408 0,9408 Średni błąd bezwzględny 0,0396 0,0396 0,0327 Błąd średniokwadratowy 0,1579 0,1579 0,1429 Średni błąd względny [%] 8,8979 8,8979 7,3360 Względny błąd średniokwadratowy[%] 33,4091 33,4091 30,2299 Precyzja - średnia ważona 0,965 0,965 0,965 15
3. Baza glass Algorytm J48 SimpleCart Id3 Czas generowania drzewa [s] 0,05 0,08 0,00 Liczba liści 30 8 węzłów Rozmiar drzewa 59 15 Liczba instancji 73 73 73 Liczba poprawnie sklasyfikowanych instancji 42 (57 %) 52 (71 %) 50 (68 %) Liczba błędnie sklasyfikowanych instancji 31 (42, %) 21 (28 %) 21 (28 %) Liczba niesklasyfikowanych instancji 0 0 2 Współczynnik Kappa 0,4259 0,5901 0,5926 Średni błąd bezwzględny 0,1246 0,1063 0,0983 Błąd średniokwadratowy 0,3287 0,2610 0,2753 Średni błąd względny [%] 58,7442 50,1174 47,7829 Względny błąd średniokwadratowy[%] 101,8335 80,8500 86,7318 Precyzja - średnia ważona 0,603 0,720 0,753 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 J48 SimpleCart Id3 Czas generowania drzewa [s] 0,06 0,87 Liczba instancji 66 66 Liczba poprawnie sklasyfikowanych instancji 32 (48 %) 23 (34 %) Liczba błędnie sklasyfikowanych instancji 34 ( 51 %) 43 (65 %) Liczba niesklasyfikowanych instancji 0 0 Współczynnik Kappa 0,3218 0,0000 Średni błąd bezwzględny 0,1426 0,1908 Błąd średniokwadratowy 0,2992 0,3105 Średni błąd względny [%] 74,0931 99,1462 Względny błąd średniokwadratowy[%] 96,3911 100 Precyzja - średnia ważona 0,425 0,121 16
5. Baza balance_scale Algorytm J48 SimpleCart Id3 Czas generowania drzewa [s] 0 0,05 0,00 Liczba instancji 212 212 212 Liczba poprawnie sklasyfikowanych instancji 157 (74 %) 157 (74 %) 141 (66 %) Liczba błędnie sklasyfikowanych instancji 55 (25 %) 55 (25%) 71 (33 %) Liczba niesklasyfikowanych instancji 0 0 0,00 Współczynnik Kappa 0,5495 0,5495 0,4006 Średni błąd bezwzględny 0,1889 0,2005 0,2224 Błąd średniokwadratowy 0,3651 0,3723 0,3516 Średni błąd względny [%] 49,5316 52,5661 58,3137 Względny błąd średniokwadratowy[%] 83,1718 84,826 80,1041 Precyzja - średnia ważona 0,738 0,738 0,644 6. Baza diabetes Algorytm J48 SimpleCart Id3 Czas generowania drzewa [s] 0,06 0,17 0,02 Liczba liści 11,00 10,00 Rozmiar drzewa 17,00 19,00 Liczba instancji 261,00 261 261 Liczba poprawnie sklasyfikowanych instancji 209 (80 %) 210 (80 %) 204 (78 %) Liczba błędnie sklasyfikowanych instancji 52 (19 %) 51 (19 %) 57 (21 %) Liczba niesklasyfikowanych instancji 0 0 0 Współczynnik Kappa 0,1525 0,0000 0,4447 Średni błąd bezwzględny 0,2313 0,3372 0,2610 Błąd średniokwadratowy 0,3412 0,3983 0,3863 Średni błąd względny [%] 68,4560 99,8106 57,8719 Względny błąd średniokwadratowy[%] 85,6498 99,9749 82,5288 Precyzja - średnia ważona 0,586 0,551 0,598 17
7. Baza tic-tac-toe Czas generowania drzewa [s] 0,11 0 0,00 Liczba instancji 326 326 326 Liczba poprawnie sklasyfikowanych instancji 305 (93 %) 274 (84 %) 256 (78 %) Liczba błędnie sklasyfikowanych instancji 21 (6 %) 52 (15 %) 63 (19 %) Liczba niesklasyfikowanych instancji 0 0,00 7 (2,1472 %) Współczynnik Kappa 0,8506 0,61 0,532 Średni błąd bezwzględny 0,0679 0,206 0,1975 Błąd średniokwadratowy 0,2154 0,3729 0,4444 Średni błąd względny [%] 15,1144 45,8875 45,1043 Względny błąd średniokwadratowy[%] 46,2516 80,0625 96,7889 Precyzja - średnia ważona 0,936 0,837 0,802 8. Baza zoo Algorytm J48 SimpleCart Id3 Czas generowania drzewa [s] 0,02 0,13 Liczba instancji 34 34 Liczba poprawnie sklasyfikowanych instancji 30 (88 %) 28 (82 %) Liczba błędnie sklasyfikowanych instancji 4 (11 %) 6 (17 %) Liczba niesklasyfikowanych instancji 0 0 Współczynnik Kappa 0,7580 0,5901 Średni błąd bezwzględny 0,1405 0,3171 Błąd średniokwadratowy 0,3345 0,3834 Średni błąd względny [%] 28,6399 100,0000 Względny błąd średniokwadratowy[%] 67,3158 100,0000 Precyzja - średnia ważona 0,844 0,457 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 40,000 C4.5 SimpleCart Id3 20,000 0,000 Wykres 1: Zestawienie czasu wykonywania się algorytmów 120,000 100,000 80,000 60,000 40,000 C4.5 SimpleCart Id3 20,000 0,000 Wykres 2: Zestawienie współczynnika Kappa 19
120,000 100,000 80,000 60,000 40,000 C4.5 SimpleCart Id3 20,000 0,000 Wykres 3: Zestawienie precyzji 120,000 100,000 80,000 60,000 40,000 C4.5 SimpleCart 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