Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

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:

1 if (ai ( x)  v)
t ( x)  
0 otherwise

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)  ai ( x)
1 if (ai ( x)  V )
 przynależnościowego: t ( x)  
0 otherwise

Gdzie: t(x) – decyzja ,ai(x) - atrybut, V – zbiór wartości oczekiwanych atrybutu


W przypadku danych liczbowych w postaci ciągłej możliwe jest tez przeprowadzenie testu
nierównościowego.

1 if (a i ( x)  c)
t ( x)  
0 otherwise

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.
Ci
pi 
X
gdzie, 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.
Entropy ( X )   pi log pi

IG  Entropy ( X )   pi Entropy ( X i )
i

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ń Pogoda Samopoczucie Fundusze Jak spędzić


Tygodnia 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?

You might also like