Dobývání znalostí z databází
T5: rozhodovací stromy
Rozhodovací stromy Úloha klasifikace objektů do tříd. Top down induction of decision trees (TDIDT) metoda divide and conquer (rozděl a panuj) metoda specializace v prostoru hypotéz – stromů (postup shora dolů, počínaje prázdným stromem). Cílem je nalézt nějaký strom konsistentní s trénovacími daty. Přitom se dává přednost menším stromům (Occamova břitva).
TDIDT algoritmus 1. vezmi jeden atribut jako kořen dílčího stromu, 2. rozděl data na podmnožiny podle hodnot tohoto atributu, 3. nepatří-li všechna data v podmnožině do téže třídy, pro tuto podmnožinu opakuj postup od bodu 1. Obecný algoritmus pro tvorbu rozhodovacích stromů
Omezení obecného algoritmu: jen kategoriální atributy jen data bez šumu P. Berka, 2011
1/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Volba atributu (krok 1 algoritmu) Entropie c H=-
(pi * log2 pi) , i=1
entropie
Y1
Y2
……….
YS
X1
a11
a12
……….
a1S
r1
X2
a21
a22
……….
a2S
r2
:
:
:
:
:
:
:
:
:
:
XR
aR1
aR2
……….
aRS
rR
s1
s2
……….
sS
n
H ( A)
R i 1
ri n
S
aij
j 1
ri
log 2
aij ri
Hledáme atribut s minimální hodnotou kritéria P. Berka, 2011
2/18
Dobývání znalostí z databází
T5: rozhodovací stromy
příklad: klient k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12
příjem vysoký vysoký nízký nízký nízký nízký vysoký vysoký nízký vysoký nízký nízký
H(příjem) =
konto vysoké vysoké nízké vysoké vysoké nízké nízké nízké střední střední střední střední
pohlaví žena muž muž žena muž žena muž žena muž žena žena muž
nezaměstnaný ne ne ne ano ano ano ne ano ano ne ano ne
úvěr ano ano ne ano ano ne ano ano ne ano ne ano
n(příjem(vysoký)) H(příjem(vysoký)) + n n(příjem(nízký)) H(příjem(nízký)) n
P. Berka, 2011
3/18
Dobývání znalostí z databází
H(příjem) =
T5: rozhodovací stromy
5 7 H(příjem(vysoký)) + H(příjem(nízký)) 12 12
5 5 0 0 H(příjem(vysoký)) = - log2 - log2 = 0 + 0 = 0 5 5 5 5 3 3 4 4 H(příjem(nízký)) = - log2 - log2 = 0.9852 7 7 7 7 H(příjem) = 0.5747 H(konto) = 4/12*H(konto(vysoké)) + 4/12*H(konto(střední)) + 4/12*H(konto(nízké)) = 1/3 * 0 + 1/3 * 1 + 1/3 * 1 = 0.6667 H(pohlaví) = 6/12*H(pohlaví(muž)) + 6/12*H(pohlaví(žena)) = 1/2 * 0.9183 + 1/2 * 0.9183 = 0.9183 H(nezaměstnaný) = 6/12*H(nezaměstnaný(ano)) + 6/12*H(nezaměstnaný(ne)) = 1/2 * 1 + 1/2 * 0.6500 = 0.8250
P. Berka, 2011
4/18
Dobývání znalostí z databází
T5: rozhodovací stromy
H(konto) = 2/7 H(konto(vysoké)) + 3/7 H(konto(střední)) + 2/7 H(konto(nízké)) = 2/7 0 + 3/7 0.9183 + 2/7 0 = 0.3935 H(pohlaví) = 4/7 H(pohlaví(muž)) + 3/7 H(pohlaví(žena)) = 4/7 1 + 3/7 0.9183 = 0.9650 H(nezaměstnaný) = 5/7 H(nezaměstnaný(ano)) + 2/7 H(nezaměstnaný(ne)) = 5/7 0.9709 + 2/7 1 = 0.9792
H(pohlaví) = 2/3 H(pohlaví(muž)) + 1/3 H(pohlaví(žena)) = 2/3 1 + 1/3 0 = 0.6667 H(nezaměstnaný) = 2/3 H(nezaměstnaný(ano)) + 1/3 H(nezaměstnaný(ne)) = 2/3 0 + 1/3 0 = 0
Pozn: V případě kategoriálních atributů se každý atribut může pro větvení stromu vybrat nejvýše jednou.
P. Berka, 2011
5/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Tedy, tvorba rozhodovacích stromů je založena na prohledávání prostoru stromů: Shora dolů Heuristické Jednoduché
P. Berka, 2011
6/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Gini index c
Gini = 1 -
(pi 2)
i=1
Gini( A)
R i 1
ri 1 n
S
aij
j 1
ri
2
Hledáme atribut s minimální hodnotou kritéria
Chí kvadrát 2
( A)
R
S
i 1 j 1
aij
ri s j
2
n ri s j n
Hledáme atribut s maximální hodnotou kritéria
Informační zisk Zisk(D,A) = H(D) - H(A) Hledáme atribut s maximální hodnotou kritéria Zisk(D,A) Poměrný informační zisk(D,A) = Větvení(D,A)
P. Berka, 2011
7/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Převod stromů na pravidla
If příjem(vysoký) then úvěr(ano) If příjem(nízký) konto(vysoké) then úvěr(ano) If příjem(nízký) konto(střední) nezaměstnaný(ano) then úvěr(ne) If příjem(nízký) konto(střední) nezaměstnaný(ne) then úvěr(ano) If příjem(nízký) konto(nízké) then úvěr(ne)
P. Berka, 2011
8/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Prořezávání stromů Důvody: Bezchybná klasifikace trénovacích dat nezaručuje kvalitní klasifikaci dat testovacích (overfitting) Úplný strom může být příliš veliký
Redukce stromu, aby v listovém uzlu „převažovaly“ příklady jedné třídy. pre-pruning – modifikuje se zastavovací kritérium (krok 3 algoritmu) = větvit se nebude pokud počet příkladů v uzlu klesne pod danou hodnotu nebo pokud relativní počet příkladů jedné třídy překročí danou hodnotu post-pruning – vytvoří se úplný strom, který se následně redukuje Algoritmus post-pruning 1. Převeď strom na pravidla, 2. Generalizuj pravidlo odstraněním podmínky z předpokladu, pokud dojde ke zlepšení odhadované přesnosti, 3. Uspořádej prořezaná pravidla podle odhadované přesnosti; v tomto pořadí budou pravidla použita pro klasifikaci
P. Berka, 2011
9/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Práce s numerickými atributy Algoritmus pracuje s kategoriálními atributy, numerické je třeba diskretizovat: 1. off-line v rámci přípravy a předzpracování dat 2. on-line v rámci běhu modifikovaného algoritmu binarizace na základě entropie Algoritmus 1. Seřaď vzestupně hodnoty diskretizovaného atributu A, 2. Pro každou možnou hodnotu dělícího bodu spočítej entropii H(A ) 3. Vyber dělící bod hodnotu H(A )
, který dá nejmenší
n(A(< )) n(A(> )) H(A ) = H(A(< )) + H(A(> )) n n
P. Berka, 2011
10/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Příklad: Klient K101 K102 K103 K104 K105 K106 K107 K108 K109 K110 K111 K112
příjem 3000 10000 17000 5000 15000 20000 2000 5000 10000 20000 10000 17000
Konto 15000 15000 15000 30000 30000 50000 60000 90000 90000 90000 100000 100000
úvěr ne ne ano ne ano ano ne ano ano ano ano ano
H(konto22500) = 3/12 H(konto(<22500)) + 9/12 H(konto(>22500)) = 1/4
0.9183 + 3/4
0.5640 = 0.6526
H(konto40000) = 5/12 H(konto(<40000)) + 7/12 H(konto(>40000)) = 5/12
0.9706 + 7/12
0.5917 = 0.7497
H(konto55000) = 6/12 H(konto(<55000)) + 6/12 H(konto(>55000)) = 1/2
1 + 1/2
0.6500 = 0.8250
H(konto75000) = 7/12 H(konto(<75000)) + 5/12 H(konto(>75000)) = 7/12
P. Berka, 2011
0.9852 + 5/2
0 = 0.5747
11/18
Dobývání znalostí z databází
T5: rozhodovací stromy
na rozdíl od kategoriálních atributů se mohou v jedné větvi numerické atributy opakovat
0.6
1.5
1.7
petalwidth
P. Berka, 2011
12/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Regresní stromy Úloha odhadu hodnoty nějakého numerického atributu.
Volba atributu (krok 1): kritérium redukce směrodatné odchylky n(A(v)) S(A(v)) n v Val(A)
kde S(A(v)) = (
n
(yi - y')2 ) / (n-1)
i=1
P. Berka, 2011
a
1 n y' = yi n i=1
13/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Implementované algoritmy ID3 (Quinlan, 1986): základní algoritmus, entropie
C4.5 (Quinlan, 1993): informační zisk, postpruning, on-line diskretizace
P. Berka, 2011
14/18
Dobývání znalostí z databází
T5: rozhodovací stromy
CART (Breiman a kol., 1984): Gini index, jen binární stromy (atributy se mohou opakovat)
P. Berka, 2011
15/18
Dobývání znalostí z databází
T5: rozhodovací stromy
CHAID (Biggs a kol., 1991): Chi kvadrát, seskupování hodnot kategoriálních atributů 1R, Decision stump (Holte, 1993): strom obsahuje pouze kořenové větvení
Random Tree (Breiman, 2001): pro každý větvící uzel se náhodně vybere množina atributů ze kterých se pak dle Gini indexu vybere ten nejlepší
Random Forest (Breiman, 2001): soubor náhodných stromů, náhodně se pro každý strom vybere podmnožina trénovacích dat (kombinování modelů – viz téma vyhodnocení výsledků)
P. Berka, 2011
16/18
Dobývání znalostí z databází
T5: rozhodovací stromy
ETree (Berka, 2010): Chi kvadrát, jen kategoriální atributy, pre-pruning, volba k nejlepších atributů pro každý větvící uzel - výsledkem je více stromů, pro klasifikaci lze vybrat jen jeden nebo všechny - implementováno v systémech LISp-Miner a Ferda
Implementace v systému Ferda
P. Berka, 2011
17/18
Dobývání znalostí z databází
T5: rozhodovací stromy
Použití rozhodovacích stromů příklady jsou reprezentovány hodnotami atributů, úkolem je klasifikovat příklady do konečného (malého) počtu tříd, hledaný popis konceptů může být tvořen disjunkcemi, trénovací data mohou být zatížena šumem, trénovací data mohou obsahovat chybějící hodnoty.
Rozhodovací stromy dělí prostor atributů na (mnoharozměrné) hranoly rovnoběžné s osami souřadné soustavy:
P. Berka, 2011
18/18