Projekt: Porównanie algorytmów tworzenia drzew decyzyjnych

advertisement
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
Download