background image

Drzewa decyzyjne 

marcin.mazurek@wat.edu.pl 2009

background image

Klasyfikacja

Czynność podziału zbioru na podzbiory 
nazwane klasami. Podziałem zbioru X nazywa 
się każdy zupełny i rozłączny układ podzbiorów 
tego zbioru.

W wyniku klasyfikacji określamy nieznaną 
wartość pewnego atrybutu obiektu, 

wartość pewnego atrybutu obiektu, 
przyjmującego skończoną liczbę wartości. 

background image

Drzewo decyzyjne

Drzewo decyzyjne jest 
to drzewo, w którym:

węzły nie będące liśćmi 
odpowiadają atrybutom 

gałęzie wychodzące z  
takiego węzła odpowiadają 

takiego węzła odpowiadają 
wartościom tego atrybutu.

liście odpowiadają 
wartościom zmiennej 
decyzyjnej (atrybutu 
klasyfikującego)

background image

Zasady konstrukcji drzewa decyzyjnego

1.

Punktem wyjścia jest korzeń drzewa, któremu odpowiada ciąg uczący T, w którym 
znajdują się obserwacje, z których każda opisane jest atrybutami  i zaklasyfikowana 
jest do jednej z klas na podstawie pewnego wyróżnionego atrybutu (zmiennej 
klasyfikującej, decyzyjnej). 

2.

Konstrukcja drzewa opiera się na  następującej procedurze powtarzanej 
rekurencyjnie dla każdego węzła począwszy od korzenia: 

Ciąg danych uczących T zawierający przynajmniej jeden element, przy czym 
wszystkie elementy należą do tej samej klasy C

j.

Drzewo decyzyjne dla T jest 

liściem wskazującym na kategorię C

j.

liściem wskazującym na kategorię C

j.

Ciąg uczący T nie zawiera żadnych elementów – podobnie jak w punkcie 
poprzednim, drzewo dla T jest liściem jednak związany jest z klasą wyznaczoną 
na podstawie poprzednika

T zawiera elementy należące do różnych klas. Podział T na takie podzbiory, by 
wszystkie elementy w ramach podzbioru należały do tej samej klasy (podzbiory 
powinny być możliwie jednorodne). W oparciu o pojedynczy wybrany atrybut, 
przeprowadzany jest test, który powoduje podział na rozłączne podzbiory. 
Drzewo decyzyjne dla T jest węzłem zawierającym test i jedną gałąź dla każdego 
wyniku testu. 

3.

Po zakończeniu procedury generowania węzłów drzewa, może opcjonalnie nastąpić 
przycinanie drzewa (zastąpienie całego poddrzewa pojedynczym liściem). 

background image

Algorytmy budowy drzew

Elementy algorytmów budowania drzewa decyzyjnego:

kryterium wyboru atrybutu używanego jako test w węźle drzewa

wyznaczenie wartości atrybutów dla gałęzi wychodzących z 

węzła (rząd drzewa)

Przykładowe algorytmy

ID3 (Quinlan)

C4.5 (Quinlan)  rozszerzenie ID3 o brakujące wartości, atrybuty 

ciągłe, obcinanie drzewa) 

CART  (Classification And Regression Trees) – drzewo binarne.

CHAID (Chi-squared Automatic Interaction Detector, 1980), 

background image

Wybór atrybutu testowego dla węzła

T – zbiór uczący, w którym każda obserwacja zaklasyfikowana jest według wartości atrybutu  C do 
jednej z k klas {C

1

, C

2

 ... C

k

 } 

 
Entropia zbioru S: 
 

T

T

C

freq

T

T

C

freq

T

Info

i

k

i

i

)

,

(

log

)

,

(

)

(

1

2

=

=

 

 
T

1

, T

2

...T

n

  - rozłączne podzbiory zbioru T, utworzone na podstawie pewnego testu t. Test jest 

oparty o wartości atrybutu X.   
  
Entropia zbioru przykładów ze względu na wynik r testu t jest definiowana jako ważona entropia 
dla poszczególnych wyników testu:  
 

=

=

n

r

i

r

x

T

Info

T

T

T

Info

1

)

(

)

(

,  

 
Przyrost informacji wynikający z zastosowania testu opartego na wartościach atrybutu X do zbioru 
przykładów: 
 
Gain(X) = Info(T) - Info

x

(T) 

 
Jako podstawę podziału zbioru obserwacji w węźle wybieramy ten atrybut, dla którego Gain(X) 
jest maksymalne.  
 

background image

Inne kryteria wyboru testu

Kryterium przyrostu informacji  - tendencja do nieuzasadnionego preferowania testów o wielu 
możliwych wynikach.  
 
Współczynnik przyrostu informacji: 
 

T

T

T

T

T

Info

Split

i

n

i

=

2

log

)

(

_

 

T

T

i

=1

2

Wartość mierzy równomierność, z jaką test t dzieli zbiór uczący na podzbiory. Jest ona duża jeśli 
rozmiary podzbiorów wyznaczonych przez różne wyniki testu są zbliżone i maleje przy wyraźnej 
przewadze niektórych podzbiorów nad innymi.  
 

)

(

_

)

(

)

(

_

X

Split

X

Gain

X

ratio

Gain

Info

=

  

 

background image

Algorytm Id3

background image

Podział – atrybuty ciągłe

Zbiór wartości, które przyjmuje atrybut sortujemy         
{v

1

, v

2

,… v

k

Rozważamy wszystkie (k-1) potencjalnych punktów 
podziału: {v

1

, v

2

,… v

i

} {v

i+1

, v

i+2

,… v

k

}

Wybieramy tą wartość podziału Z, dla którego kryterium 
przyrostu informacji jest największe. Gałęzie opisane są 
nie pojedynczymi wartościami atrybutu, lecz podzbiorami 
wartości, wyznaczonymi przez punkt podziału Z.

background image

Przykład

Zbudować drzewo decyzyjne dla 
wyznaczania wartości atrybutu C w 
oparciu o wartości atrybutów A1, A2.

Ciąg uczący: 

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

background image

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

A1

A1

A1

A2

A2

A2

C

C

C

Y

Y

1

1

C2

C2

Y

Y

2

2

C1

C1

N

N

2

2

C2

C2

N

N

2

2

C2

C2

N

N

2

2

C1

C1

N  = 5
C1   2 (40%)
C2   3 (60%)

97

,

0

)

74

,

0

(

5

3

)

32

,

1

(

5

2

5

3

log

5

3

5

2

log

5

2

)

(

2

2

=

=

=

T

Info

 

 

94

,

0

91

,

0

5

3

1

5

2

)

(

91

,

0

)

59

,

1

(

3

1

)

59

,

0

(

3

2

3

1

log

3

1

3

2

log

3

2

)

(

1

2

1

log

2

1

2

1

log

2

1

)

(

)

(

5

3

)

(

5

2

)

(

1

2

2

'

'

1

2

2

'

'

1

'

'

1

'

'

1

1

=

+

=

=

=

=

=

=

+

=

=

=

=

=

T

Info

T

Info

T

Info

T

Info

T

Info

T

Info

A

N

A

Y

A

N

A

Y

A

A

 

0,03

0,94

-

0,97

 

 

Gain(A1)

5

5

=

=

 

0,18

0,8

-

0,97

 

 

Gain(A2)

8

,

0

1

5

4

0

5

1

)

(

0

)

(

1

2

1

log

2

1

2

1

log

2

1

)

(

)

(

5

4

)

(

5

1

)

(

2

1

2

2

2

2

2

2

2

1

2

2

=

=

=

+

=

=

=

=

+

=

=

=

=

=

T

Info

T

Info

T

Info

T

Info

T

Info

T

Info

A

A

A

A

A

A

 

 
Podział następuje ze względu na A2, gdyż Gain(A2) > Gain(A1) 
 

background image

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

A1

A1

A1

A2

A2

A2

C

C

C

Y

Y

1

1

C2

C2

Y

Y

2

2

C1

C1

N

N

2

2

C2

C2

N

N

2

2

C2

C2

N

N

2

2

C1

C1

N  = 5
C1   2 (40%)
C2   3 (60%)

A2

N  = 4
C1   2 (50%)
C2   2 (50%)

A2=2

A2=1

N  = 1
C1   0 (0%)
C2   1 (100%)

 

A1 

A2 

C1 

C2 

C2 

C1 

 

 

A1 

A2 

C2 

 

background image

A1

A2

C

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

1

2

1

log

2

1

2

1

log

2

1

)

(

2

2

=

=

T

Info

 

 

68

,

0

91

,

0

4

3

0

)

(

91

,

0

)

59

,

1

(

3

1

)

59

,

0

(

3

2

3

1

log

3

1

3

2

log

3

2

)

(

0

)

(

)

(

4

3

)

(

4

1

)

(

1

2

2

'

'

1

'

'

1

'

'

1

'

'

1

1

=

+

=

=

=

=

=

+

=

=

=

=

=

T

Info

T

Info

T

Info

T

Info

T

Info

T

Info

A

N

A

Y

A

N

A

Y

A

A

 

0,32

0,68

-

1

 

 

Gain(A1)

4

=

=

 

0

1

-

1

 

 

Gain(A2)

1

)

(

1

2

1

log

2

1

2

1

log

2

1

)

(

)

(

0

)

(

4

4

)

(

2

2

2

2

2

2

2

2

2

2

=

=

=

=

=

+

=

=

=

=

T

Info

T

Info

T

Info

T

Info

T

Info

A

A

A

A

A

 

 
Podział następuje ze względu na A1, gdyż Gain(A1) > Gain(A2) 

background image

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

A1

A2

C

Y

1

C2

Y

2

C1

N

2

C2

N

2

C2

N

2

C1

A1

A1

A1

A2

A2

A2

C

C

C

Y

Y

1

1

C2

C2

Y

Y

2

2

C1

C1

N

N

2

2

C2

C2

N

N

2

2

C2

C2

N

N

2

2

C1

C1

N  = 5
C1   2 (40%)
C2   3 (60%)

A2

A2=2

A2=1

 

A1 

A2 

C1 

C2 

C2 

 

A1 

A2 

C2 

 

N  = 4
C1   2 (50% )
C2   2 (50% )

N  = 1
C1   0 (0% )
C2   1 (100% )

C1 

 

N  = 1
C1   1 (100% )
C2   0 (0% )

A1

A1=Y

A1=N

N  = 3
C1   1 (33% )
C2   2 (67% )

 

A1 

A2 

C2 

C2 

C1 

 

A1 

A2 

C1 

 

background image

Szacowanie błędów klasyfikacji

Współczynnik błędnej klasyfikacji 

Liść drzewa = decyzja =>  liczba rekordów 
błędnie zaklasyfikowanych 

Stosunek liczby błędnie zaklasyfikowanych  
obserwacji do wszystkich 

obserwacji do wszystkich 

background image

Przycinanie drzewa (prunning)

Obcinanie polega na zastąpieniu poddrzewa liściem, którym przypisuje się 
etykietę kategorii najczęściej występującej wśród związanych z nim 
przykładów.

Nadmierne dopasowanie do danych trenujących (overfitted) – duży błąd dla 
danych spoza ciągu uczącego

Zbudowane drzewo ma zbyt dużą wysokość (niedopuszczalna złożoność 
procedury klasyfikującej)

Począwszy od dołu drzewa, dla każdego poddrzewa nie będącego liściem:

Obcinamy, jeżeli zastąpienie poddrzewa liściem z przypisaną kategorią 
reprezentowaną przez potomka o największej liczności zmniejsza błąd. 

Obcinamy, jeżeli zastąpienie poddrzewa liściem z przypisaną kategorią 
reprezentowaną przez potomka o największej liczności zmniejsza błąd. 
Modyfikacja błędów dla rodziców.

Estymacja błędu klasyfikacji:

Szacowanie na podstawie błędu próbki na oddzielnym zbiorze przycinania, 
złożonym z przykładów spoza zbioru trenującego.

Szacowanie na podstawie błędu próbki na zbiorze trenującym.

background image

Zadanie

Na podstawie zbioru danych 
treningowych ( ciągu 
uczącego)

Znaleźć wartość podziału dla 
atrybutu A

Znaleźć wartość podziału dla 
atrybutu B

Zbudować drzewo decyzyjne

Jaki jest proporcja błędnych 
klasyfikacji dla ciągu 

Jaki jest proporcja błędnych 
klasyfikacji dla ciągu 
testowego ? 

background image

Literatura

Paweł Cichosz „Systemy uczące się” WNT 
2000 

Hand David, Mannila Heikki, Smyth 
Padhraic „Eksploracja danych”, WNT 2005