KATEDRA SYSTEMÓW
MULTIMEDIALNYCH
LABORATORIUM INTELIGENTNYCH
SYSTEMÓW DECYZYJNYCH
Ćwiczenie nr 4: Drzewa decyzyjne
opracowanie: mgr inż. Katarzyna Kaszuba mgr inż. Kuba Łopatka 1. Wprowadzenie
1.1 Struktura drzewa decyzyjnego
Drzewo decyzyjne z definicji jest to struktura obrazująca proces decyzyjny. Algorytmy drzew decyzyjnych stosowane są w uczeniu maszynowych jako metoda pozyskiwania wiedzy z zebranych przykładów (eksploracja danych, ang. data mining).
Algorytmy charakteryzuje struktura drzewiasta, w której węzły wewnętrzne zawierają testy na wartościach atrybutów. Z każdego węzła wewnętrznego wychodzi tyle gałęzi, ile możliwych jest wyników testu badanego w węźle. Każde drzewo decyzyjne zakańczają liście w których przechowywane są decyzję o klasyfikacji obiektów. Od strony programistycznej warto wiedzieć, że zwykle drzewo decyzyjne koduje program zawierający same instrukcje warunkowe.
1.2 Testowanie węzłowe
Atrybutami wejściowymi drzew decyzyjnych mogą być dane w formie liczbowej lub ujęte przy pomocy pojęć naturalnych takich ja np. niski, wysoki, zimny, itp. Atrybuty symboliczne są bardziej przejrzyste podczas przeglądania struktury drzewa jednak dają możliwości dla testowania węzła tylko w sposób równościowy tzn:
otherwise
v
x
a
if
x
t
i0
)
)
(
(
1
)
(
Gdzie: t(x) – decyzja ,ai(x) - atrybut, v – wartość oczekiwana atrybutu
Dla atrybutów liczbowych dyskretnych prócz testu równościowego możliwe jest przeprowadzanie następujących testów:
tożsamościowego:
t
(
x
)
a
i(
x
)
przynależnościowego:
otherwise
V
x
a
if
x
t
i0
)
)
(
(
1
)
(
W przypadku danych liczbowych w postaci ciągłej możliwe jest tez przeprowadzenie testu nierównościowego.
otherwise
c
x
a
if
x
t
i0
)
)
(
(
1
)
(
1.3 Tworzenie drzew decyzyjnych
Podczas konstruowania drzewa decyzyjnego dąży się do uzyskania optymalnej struktury. Istnieją trzy podstawowe kryteria oceny jakości drzewa:
Rozmiar drzewa – im mniejsze drzewo, tym lepsze o Mała liczba węzłów
o Mała wysokość o Mała liczba liści
Skuteczność klasyfikacji na zbiorze treningowym
Skuteczność klasyfikacji na zbiorze testowych
Zazwyczaj drzewa decyzyjne budowane są w sposób rekurencyjny, tzn. w pierwszej kolejności definiowane jest kryterium zakończenia konstrukcji drzewa, jeżeli dla danego testu kryterium jest nie spełnione następuje utworzenie nowej gałęzi, ustalany jest nowy test i budowane jest kolejne poddrzewo. Sytuacja ta zachodzi do momentu spełnienia kryterium. Zazwyczaj podstawowe kryteria zatrzymania:
brak atrybutów z zbiorze budującym
obecność atrybutów tylko jednej klasy w zbiorze
brak możliwych dalszych podziałów
Podczas konstrukcji drzewa decyzyjnego każdy zbiór obiektów zostaje podzielony na klasy. Wyznaczane jest też prawdopodobieństwo wystąpienia danej klasy.
X
C
p
i
igdzie, pi – prawdopodobieństwo wystąpienia obiektu i-tej klasy, Ci – liczebność i-tej klasy, X – ilość wszystkich obiektów w zbiorze.
Wektor (p1,p2,…pr) nazywany jest rozkładem klas decyzyjnych w X.
Podstawowym problem przy tworzeniu drzew decyzyjnych jest stworzenie takiej struktury oraz testów węzłowych dla których drzewo będzie najbardziej efektywne. Wiąże się to bezpośrednio z wyborem najbardziej istotnych parametrów dla tworzenia podziałów. Najprostszym kryterium podziału jest kryterium większościowe – wybierany jest taki atrybut, który separuje największą ilość danych. Oceny przydatności parametrów można dokonać przed przystąpieniem do tworzenia struktury drzewiastej poprzez zastosowanie metod statystycznych. Można w tym celu posłużyć się statystykami Berensha-Fishera, testem t-studenta lub zastosować omawiane na wykładzie kryterium Chi2
Pearsona.
Znając rozkład klas decyzyjnych warto zdefiniować i obliczyć entropie informacyjną oraz związany z nią zysk informacyjny. Entropia jest to najmniejsza średnia ilość informacji potrzebna do zakodowania faktu zajścia danego zdarzenia.
p
ip
iX
Entropy
(
)
log
)
(
)
(
i i iEntropy
X
p
X
Entropy
IG
Duża wartość entropii informuje o równomiernym rozkładzie prawdopodobieństwa klas, zatem wyniki będą trudniejsze do przewidzenia, natomiast duża wartość zysku informacyjnego jest pożądana, gdyż świadczy o większej przydatności danego testu. W przypadku budowania drzew decyzyjnych warto tez korzystać z pojęcia entropii warunkowej, ponieważ pozwala ona uwzględniać wartości poszczególnych atrybutów klas. Oznacza to, że możliwe jest określenie prawdopodobieństwa wystąpienia danej klasy przy warunku, że dany atrybut przyjmuję konkretną wartość. W analogiczny sposób można też badać warunkowy zysk informacyjny. Kryteria warunkowe często służą do wyboru parametrów zapewniających najlepszą separowalność klas.
1.4 Odcinanie gałęzi (ang.prunning)
Drzewo decyzyjne budowane na danych treningowych często charakteryzuje się rozłożystą strukturą i bardzo małą zdolnością generalizacji. Oznacza to, że skuteczność rozpoznawania klas dla zbioru treningowego jest bardzo wysoka ( często 100%) natomiast nowe przypadki są klasyfikowane z niską skutecznością. Zjawisko to nazywane jest przetrenowaniem klasyfikatora. Aby zapobiegać takim sytuacjom skracany jest opis struktury kosztem straty skuteczności na zbiorze treningowych. Dokonuje się tego poprzez zastąpienie poddrzewa nowym liściem lub mniejszym poddrzewem. Można tego dokonać kiedy nowy liść lub poddrzewo daje efektywność nie gorszą lub taką samą dla nowych obiektów. Takie testowanie przeprowadza się na próbce nazywanej zbiorem przycinania.
Przykład:
1.5 Omówienie wybranych drzew decyzyjnych
Omówione powyżej metody tworzeni struktury drzewa decyzyjnego są najczęściej stosowanymi, klasycznymi algorytmami tego typu. Budowanie drzew decyzyjnych na bazie entropii oraz zysku informacyjnego jest podstawa działania algorytmów drzew decyzyjnych C4.5 oraz CART przy czym algorytm C4.5 dopuszcza dowolną ilość wyników testu węzłowego tzn. że z każdego węzła może wychodzić dowolna ilość gałęzi. Algorytm CART zezwala jedynie na podział binarny – węzeł może być zakończony maksymalnie dwoma
gałęziami lub dwoma liśćmi. Oba te algorytmy mogą występować w wersji bez przycinania lub z przycinaniem gałęzi. Ciekawą odmianą drzew decyzyjnych są algorytmy Random Tree (RT) i Random Forest (RF). Algorytm RT tworzy drzewo decyzyjne poprzez wybór k – losowych atrybutów dla każdego z węzłów. Algorytm ten cechuje się niską skutecznością jest jednak bazą do działania algorytmu RF. RF wykorzystuje wiele niezależnych klasyfikatorów RT do podjęcia decyzji. Każde drzewo RT daje osobny wynik i wybierana jest ta odpowiedź , która pojawiła się najczęściej. Zestawienie wielu „słabych” klasyfikatorów daje w konsekwencji precyzyjny wynik, przy zachowaniu dużej wydajności czasowej obliczeń. Zarówno RT jak i RF nie wykorzystują przycinania gałęzi.
2. Opis ćwiczenia
2.1 Zaprojektuj drzewo decyzyjne, które rozwiązuje problem, w jaki sposób osoba ma spędzić wolny wieczór i popołudnie. Wykorzystaj dane treningowe zamieszczone w tabeli konwergencji poniżej. Schemat stworzonego drzewa decyzyjnego należy dołączyć do sprawozdania. Pamiętaj przy tym, że projektując drzewo należy kierować sie zasadą: im mniejsze, tym lepsze.
Wiek Dzień Tygodnia
Pogoda Samopoczucie Fundusze Jak spędzić wolne
popołudnie i wieczór
20 Wtorek słońce dobre 0 Sport
25 Środa deszcz dobre 50zł Kino
50 Czwartek deszcz złe 100zł Dom
38 Sobota słońce złe 100zł Sport
24 Środa słońce złe 30zł Kino
56 Niedziela słońce dobre 0 Sport
47 Poniedziałek słońce złe 100zł Kino
32 Piątek deszcz dobre 100zł Impreza
35 Sobota deszcz złe 0 Dom
22 Sobota słońce złe 50zł Impreza
25 Piątek deszcz dobre 100zł Impreza
40 Wtorek słońce dobre 20zł Sport
53 Czwartek deszcz złe 0 Dom
21 Środa słońce dobre 100zł Sport
29 Czwartek deszcz złe 50zł Kino
59 Sobota deszcz dobre 0 Dom
2.2 Zaimplementuj zaprojektowane drzewo w środowisku Matlab. W tym celu należy zmodyfikować funkcję zawartą w pliku tree.m i zaimplementować własne reguły, korzystając z instrukcji warunkowych (słowa kluczowe if, elseif, else). Wykonać analizę skuteczności na zbiorze treningowym, uruchamiając skrypt drzewoD.m. Wyniki zostaną wypisane w konsoli Matlaba. W razie potrzeby zmodyfikować drzewo tak, aby uzyskać skuteczność bliską 100%. Do sprawozdania załączyć wyniki klasyfikacji i fragment napisanego kodu zawierający funkcję decyzyjną.
2.3 W pliku drzewoD.m odkomentować część dotyczącą testowania na zbiorze testowym (walidacyjnym). Porównać wyniki rozpoznawania zbioru testowego i treningowego. Z czego wynikają różnice?