mi-adm – algoritmy data miningu (2010 /2011)
Post on 16-Jan-2016
27 Views
Preview:
DESCRIPTION
TRANSCRIPT
České vysoké učení technické v České vysoké učení technické v PrazePraze
Fakulta Fakulta informinformačních technologiíačních technologií
Katedra teoretické informatikyKatedra teoretické informatiky
MI-ADM – Algoritmy data miningu (2010/2011)
Přednáška 4: Rozhodovací stromy a jejich regresní varianty
1Pavel Kordík, FIT, Czech Technical University in Prague
Příklad rozhodovacího stromu
Tid Refund MaritalStatus
TaxableIncome 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 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No
10 No Single 90K Yes10
categoric
al
categoric
al
continuous
class
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Attributy
Trénovací data Model: rozhodovací strom
Použití modelu
Refund
MarSt
TaxInc
YESNO
NO
NO
Yes No
Married Single, Divorced
< 80K > 80K
Refund Marital Status
Taxable Income Cheat
No Married 80K ? 10
Testovací Data
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 CVUT4
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
Ramakrishnan and Gehrke. Database Management Systems, 3rd Edition.
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á
MI-ADM, FIT CVUT
9
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) = n
i=1 P(Si) * E(Si),
kde P(Si) je pravděpodobnost události Si, tj. poměr |Si| / |S|.
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
Kordik, CTU Prague, FIT, MI-PDD 14
Kontingenční tabulka - připomenutí
Data (n) contingency tablej\i 1 2 … r
1 n11 n12 … n1r
2 n21 n22 … n2r
s ns1 ns2 … nsr
occurred timesof# i,jnij
occurred timesof# i nnj iji
occurred timesof# j nni ijj
sizedataset ij ijnn
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
20Portrét: Wei-Yin Loh
GUIDE
Generalized, Unbiased, Interaction Detection and Estimation
Loh, W.-Y. (2002), Regression trees with unbiased variable selection and interaction detection, Statistica Sinica, vol. 12, 361-386.
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í
MI-ADM, FIT CVUT
24
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átF 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
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
MI-ADM, FIT CVUT26
Category % nBad 52,01 168Good 47,99 155Total (100,00) 323
Node 0
Category % nBad 15,82 25Good 84,18 133Total (48,92) 158
Node 2
Category % nBad 0,92 1Good 99,08 108Total (33,75) 109
Node 7Category % nBad 48,98 24Good 51,02 25Total (15,17) 49
Node 6
Category % nBad 86,67 143Good 13,33 22Total (51,08) 165
Node 1
Category % nBad 81,58 31Good 18,42 7Total (11,76) 38
Node 5Category % nBad 97,56 80Good 2,44 2Total (25,39) 82
Node 4Category % nBad 71,11 32Good 28,89 13Total (13,93) 45
Node 3
Credit ranking (1=default)
Paid Weekly/MonthlyAdj. P-value=0,0000, Chi-square=179,6665, df=1
Monthly salary
Age CategoricalAdj. P-value=0,0000, Chi-square=58,7255, df=1
Middle (25-35);Old ( > 35)Young (< 25)
Weekly pay
Social ClassAdj. P-value=0,0004, Chi-square=20,3674, df=2
UnskilledClerical;Skilled ManualManagement;Professional
MI-ADM, FIT CVUT
27
Klasifikační stromy: Vizualizace
viz scrVizClassTree.m
28
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?
MI-ADM, FIT CVUT
29
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
30
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
31
Regresní stromy:Jak se liší od klasifikačních?
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ů.
KT=150 KT=140
KT=130 KT=120
MI-ADM, FIT CVUT
32
Regresní stromy:Predikce
scrVizRegrTree.m
MI-ADM, FIT CVUT
33
Regresní stromyChyba vs. „ohebnost“ modelu
Závislost chyby stromu na parametru splitmin scrRegrTTErrorTree.m
top related