mi-adm-p04_slides

Download Report

Transcript mi-adm-p04_slides

České vysoké učení technické v Praze
Fakulta informačních technologií
Katedra teoretické informatiky
MI-ADM – Algoritmy data miningu (2010/2011)
Přednáška 4: Rozhodovací stromy a jejich
regresní varianty
Pavel Kordík, FIT, Czech Technical University in Prague
1
Příklad rozhodovacího stromu
Tid Refund Marital
Status
Taxable
Income Cheat
1
Yes
Single
125K
No
2
No
Married
100K
No
3
No
Single
70K
No
4
Yes
Married
120K
No
5
No
Divorced 95K
Yes
6
No
Married
No
7
Yes
Divorced 220K
No
8
No
Single
85K
Yes
9
No
Married
75K
No
10
No
Single
90K
Yes
60K
Attributy
Refund
Yes
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
10
Trénovací data
Model: rozhodovací strom
Použití modelu
Testovací Data
Refund
Yes
Refund Marital
Status
Taxable
Income Cheat
No
80K
Married
?
10
No
NO
MarSt
Single, Divorced
TaxInc
< 80K
NO
Married
NO
> 80K
YES
V tomto případě nepodvádí
Jak strom vytvořit?



Ručně nebo algoritmem pro indukci rozhodovacích stromů
Existují desítky příbuzných algoritmů, často navzájem dost
podobných
Zde pouze naznačíme vlastnosti několika z nich (často
používaných a/nebo zajímavých)







CHAID
CART
ID3 a C5
QUEST
GUIDE
MARS
TreeNet
MI-ADM, FIT CVUT
4
Myšlenka rozhodovacích stromů




Rozděl a panuj: vhodně rozdělím zkoumané objekty
do skupin...
a v každé skupině opět postupuji stejně (rekurze)...
dokud nedojdu k malým skupinkám, na něž stačí
zcela jednoduchý model.
rozdělení na podskupiny má přinést „informační
zisk“, snížit entropii (implementováno např. v dnes
užívaných algoritmech ID3, C4.5 a C5).
MI-ADM, FIT CVUT
5
Jak zkonstruovat strom nad
databází?

Přístup shora dolů
 Projdi
trénovací databázi a najdi nejlepší
atribut pro rozdělení kořenu
 Rozděl databázi podle hodnoty atributu
 Rekurzivně zpracuj každou část
Algoritmus
BuildTree(Node t, Training database D,
Split Selection Method S)
(1) Apply S to D to find splitting criterion
(2) if (t is not a leaf node)
(3) Create children nodes of t
(4) Partition D into children partitions
(5) Recurse on each partition
(6) endif
Upřesnění algorimu

Tři problémy, které je třeba nějak vyřešit:
 Mechanizmus
dělení (CART, C4.5, QUEST,
CHAID, CRUISE, …)
 Regularizace (direct stopping rule, test dataset
pruning, cost-complexity pruning, statistical
tests, bootstrapping)
 Přístup k datům (CLOUDS, SLIQ, SPRINT,
RainForest, BOAT, UnPivot operator)
 Ačkoli už rozhodovací stromy existují dlouho,
ještě se v těchto oblastech aktivně bádá
Ramakrishnan and Gehrke. Database
Management Systems, 3rd Edition.
Jak zvolit "nejlepší" atribut?
Rozdělme množinu S na podmnožiny S1,S2, ...,Sn na základě hodnot
diskrétního atributu at.
Měření množství informace uvnitř Si def. pomocí entropie (Shanon)
H(Si) = -(pi+)*log pi+ - (pi-)*log pi-,
kde (pi+) je pravděpodobnost, že libovolný příklad v Si je pozitivní;
hodnota (pi+) se odhaduje jako odpovídající frekvence.
Celková entropie H(S,at) tohoto systému je
E(S,at) = ni=1 P(Si) * E(Si),
kde P(Si) je pravděpodobnost události Si, tj. poměr |Si| / |S|.
MI-ADM, FIT CVUT
9
Výpočet entropií
MI-ADM, FIT CVUT
10
Základní algoritmus ID3

Realizuje prohledávání prostoru všech možných stromů:



shora dolů
s použitím hladové strategie
Volba atributu pro větvení na zákl.
charakterizace „(ne)homogenity
vzniklého pokrytí“ : informační zisk (gain) odhaduje
předpokládané snížení entropie pro pokrytí vzniklé
použitím hodnot odpovídajícího atributu
MI-ADM, FIT CVUT
11
Algoritmus CHAID – úvod

CHi-squared Automatic Interaction Detector

Jeden z nejrozšířenějších rozhodovacích stromů v komerční oblasti
(vedle QUEST a C4.5 / C5)

Kass, Gordon V. (1980). An exploratory technique for investigating
large quantities of categorical data. Applied Statistics, Vol. 29, pp.
119-127.

Založeno na autorově disertaci na University of Witwatersrand
(Jihoafrická rep.)

Předchůdci: AID – Morgan a Sonquist, 1963; THAID – Morgan a
Messenger, 1973
MI-ADM, FIT CVUT
12
Algoritmus CHAID: idea

Začíná se u celého souboru

Postupné větvení / štěpení souboru (přípustné je rozdělení na
libovolný počet větví vycházejících z jednoho uzlu)

Algoritmus je rekurzivní – každý uzel se dělí podle stejného
předpisu

Zastaví se, pokud neexistuje statisticky signifikantní rozdělení =>
vzniká list


Obvykle je navíc podmínka minimálního počtu případů v uzlu a/nebo
v listu, příp. maximální hloubky stromu
Používá kontingenční tabulky
MI-ADM, FIT CVUT
13
Kontingenční tabulka připomenutí

Data (n)  contingency table
nij  # of timesi,j occurred
ni    j nij  # of times i occurred
n j  i nij  # of times j occurred
n  ij nij  dataset size
Kordik, CTU Prague, FIT, MI-PDD
j\i
1
1
n11 n12 …
n21 n22 …
2
M
s
M
2
M
…
O
ns1 ns2 …
r
n1r
n2r
M
nsr
14
CHAID: postup v uzlu

Pro všechny atributy


Vytvoř kontingenční tabulku výstup x atribut (rozměr k x l)
Pro všechny dvojice hodnot atributu spočti chí-kvadrátový test podtabulky (k
x 2)

„Podobné“ (=ne signifikantně odlišné) dvojice postupně spojuj (počínaje
nejnižšími hodnotami chí-kvardrátu) a přepočítávej výchozí kontingenční
tabulku. Zastav se, když signifikance všech zbylých podtabulek je vyšší než
stanovená hodnota.

Zapamatuj si spojené kategorie a signifikanci chí-kvadrátu výsledné tabulky
s redukovanou dimenzionalitou

Vyber atribut, kde je tato signifikance nejnižší

Pokud jsou splněny podmínky štěpení, rozděl případy v uzlu podle již
„spojených“ kategorií
MI-ADM, FIT CVUT
15
CHAID: závěr

Chybějící hodnoty: lze je považovat za zvláštní kategorii mimo
systém a CHAID je „zvládá“


Vznikají-li však tím, že se nedozvíme hodnotu, která v realitě existuje a
mohla by teoreticky být zjištěna, doporučuji zvážit jejich předchozí
nahrazení odhadem (zjištěným např. opět pomocí rozhodovacího
stromu); náhrada průměrem je méně vhodná
Exhaustive CHAID – provádí podrobnější prohledávání +
adjustaci signifikancí při většinou stále únosné rychlosti počítání

Zdroj: Biggs,D., de Ville,B, Suen,E.: A method of choosing multiway
partitions for classification and decision trees. J. of Appl. Stat., 18/1,
1991
MI-ADM, FIT CVUT
16
CART / C&RT



Classification And Regression Tree
Algoritmus je založen na počítání míry diverzity („nečistoty“)
uzlu
Používa se Giniho míra diverzity (byla popsána)
divGini = 1 – Σ pi2

kde pi jsou relativní četnosti v uzlech
MI-ADM, FIT CVUT
17
CART / C&RT (pokrač.)



Jen binární stromy
Umožňuje zadání matice ztrát: 1 – Σ lij pi pj
Obvykle aplikujeme prořezávání (pruning)





Strom necháme vyrůst do maximální šíře
To však vede k přeučení
Proto zpětně odstraníme listy a větve, které podle vhodně zvoleného
statistického kriteria nelze považovat za významné (většinou se používá
cross-validation)
„Surogáty“ – náhradní dělení pro případ chybějící hodnoty v prediktoru
Breiman, L., Friedman, J. H., Olshen, R. A., Stone, C. J.: Classication
and Regression Trees. Wadsworth, 1984

CART je ™ Salford Systems, proto AT a Statistica užívají C&RT; existují i
další komerční klony s jinými jmény
MI-ADM, FIT CVUT
18
ID3, C4.5, C5 (See5)






Už jsme vysvětlovali
Místo Giniho míry užívají entropii a informační zisk
Binární stromy
Zabudovaný algoritmus pro zjednodušení množiny odvozených
pravidel – lepší interpretovatelnost
Ross Quinlan: Induction of decision trees (1986); týž: C4.5:
Programs for Machine Learning, (1993); týž: C5.0 Decision Tree
Software (1999)
http://www.rulequest.com/see5-info.html
MI-ADM, FIT CVUT
19
QUEST






Quick, Unbiased and Efficient Statistical Tree
Loh, W.-Y. and Shih, Y.-S. (1997),
Split selection methods for classification trees, Statistica Sinica, vol. 7,
pp. 815-840
Výběr štěpící proměnné na základě statistického testu nezávislosti
atribut x výstup => mírně suboptimální, ale rychlé, navíc výběr štěpící
proměnné je nevychýlený
Jen nominální výstup (=závisle proměnná)
Binární strom, pruning
Používá se imputace chybějících hodnot
MI-ADM, FIT CVUT
Portrét: Wei-Yin Loh
20
GUIDE

Generalized, Unbiased, Interaction Detection and Estimation

Loh, W.-Y. (2002), Regression trees with unbiased variable
selection and interaction detection, Statistica Sinica, vol. 12, 361386.

Kromě po částech konstantní aproximace nabízí i po částech
polynomiální

„kříženec“ regresního stromu a mnohorozměrné regrese

vhodné pro data, u kterých může být na místě jistá míra spojitosti
aproximace, ale není to nutné všude

ke stažení na www.stat.wisc.edu/~loh/guide.html
MI-ADM, FIT CVUT
21
MARS





Friedman, Jerome H. (1991): Multivariate Adaptive Regression
Splines, Annals of Statistics, Vol 19, 1-141,
Metoda blízce příbuzná rozhodovacím stromům; lze si ji představit
jako jakýsi rozklad aproximační funkce do elementárních „stromů“ s
jedním štěpením a s lineární namísto konstantní aproximací v obou
polopřímkách
Spliny = spojité po částech polynomické funkce; zde se obvykle
používají lineární spliny a jejich interakce (tenzorové součiny)
Jednotlivé polynomy se na hranicích napojují tak, aby se dosáhlo
spojitosti
Vhodné vyžadujeme-li spojitost (např. časové řady)
MI-ADM, FIT CVUT
22
TreeNet, rozhodovací lesy

Friedman, J. H. (1999): Greedy Function Approximation: A Gradient
Boosting Machine, Technical report, Dept. of Statistics, Stanford Univ.

Namísto jednoho velkého stromu „les“ malých

Výsledná predikce vzniká váženým součtem predikcí jednotlivých
složek

Analogie Taylorova rozvoje: rozvoj do stromů

Špatně interpretovatelné (černá skříňka), ale robustní a přesné; nižší
nároky na kvalitu a přípravu dat než neuronová síť nebo boosting
běžných stromů

Komerční, www.salford-systems.com
MI-ADM, FIT CVUT
23
Závěrečné porovnání
Model
C5.0
CHAID
QUEST
C&R Tree
Dělení
Vícenásobné
Vícenásobné
Binární
Binární
Zvládá spojitý
výstup?
Ne
Ano
Ne
Ano
Zvládá spojité
vstupy?
Ano
Ne
Ano
Ano
Kritérium
výběru
atributu
Informační
zisk
Chi-kvadrát
F test pro
spojité
proměnné
statistické
Gini index
(čistota
rozdělení,
variabilita)
Kritérium
prořezávání
Limit chyby
Hlídá
přeučení
Regularizace
složitosti
Regularizace
složitosti
Interaktivní
tvorba stromu
Ne
Ano
Ano
Ano
MI-ADM, FIT CVUT
24
Binární nebo obecné stromy?
Binární stromy
 Např. CART, C5, QUEST
 Z uzlu vždy 2 větve
 Rychlejší výpočet (méně
možností)
 Je třeba mít více uzlů
 Zpravidla přesnější
=> Data Mining,
klasifikace
Obecné stromy
 Např. CHAID, Exhaustive
CHAID
 Počet větví libovolný
 Interpretovatelnost
člověkem je lepší
 Strom je menší
 Zpravidla logičtější
=> segmentace, mrktg.
MI-ADM, FIT CVUT
25
Vizualizace rozhodovacího stromu
Credit ranking (1=default)
Node 0
Category
%
Bad
52,01
Good
47,99
Total
(100,00)
n
168
155
323
Paid Weekly/Monthly
Adj. P-value=0,0000, Chi-square=179,6665, df=1
Weekly pay
Node 1
Category
%
Bad
86,67
Good
13,33
Total
(51,08)
Monthly salary
Node 2
Category
%
Bad
15,82
Good
84,18
Total
(48,92)
n
143
22
165
Social Class
Adj. P-value=0,0004, Chi-square=20,3674, df=2
Management;Professional
Node 3
Category
%
Bad
71,11
Good
28,89
Total
(13,93)
n
32
13
45
Clerical;Skilled Manual
Node 4
Category
%
n
Bad
97,56 80
Good
2,44
2
Total
(25,39) 82
n
25
133
158
Age Categorical
Adj. P-value=0,0000, Chi-square=58,7255, df=1
Unskilled
Node 5
Category
%
n
Bad
81,58 31
Good
18,42
7
Total
(11,76) 38
MI-ADM, FIT CVUT
Young (< 25)
Node 6
Category
%
Bad
48,98
Good
51,02
Total
(15,17)
Middle (25-35);Old ( > 35)
n
24
25
49
Node 7
Category
%
n
Bad
0,92
1
Good
99,08 108
Total
(33,75) 109
26
Klasifikační stromy:
Vizualizace

viz scrVizClassTree.m
MI-ADM, FIT CVUT
27
Klasifikační stromy:
Chyba vs. „ohebnost“ modelu

Parametr splitmin určuje ohebnost modelu.


Je to minimální počet trénovacích případů v
uzlu, aby jej algoritmus ještě mohl dále dělit
Jaký další parametr stromu by mohl hrát
podobnou roli?
28
Klasifikační stromy:
Chyba vs. „ohebnost“ modelu II

Závislost chyby stromu na parametru splitmin


viz scrClassTTErrorTree.m
Jak to, že trénovací chyba pro splitmin = 2 je nulová?
MI-ADM, FIT CVUT
29
Stromy:
Prořezávání

Snižuje složitost modelu, odstraňuje „zbytečné“ větve,
zlepšuje generalizaci
scrVizClassTree.m
model=prune(model)
view(model)
MI-ADM, FIT CVUT
30
Regresní stromy:
Jak se liší od klasifikačních?
KT=130
KT=150


KT=120
KT=140
Místo nominální veličiny (chřipka, nachl., hypoch.)
modelují spojitou veličinu, např. krevní tlak (KT).
Hodnota bývá průměr příslušných tr. případů.
MI-ADM, FIT CVUT
31
Regresní stromy:
Predikce

scrVizRegrTree.m
MI-ADM, FIT CVUT
32
Regresní stromy
Chyba vs. „ohebnost“ modelu

Závislost chyby stromu na parametru splitmin

scrRegrTTErrorTree.m
MI-ADM, FIT CVUT
33