České vysoké učení technické v Praze Fakulta informačních technologií Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 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
10 Příklad rozhodovacího stromu Tid Refund Marital Status Taxable Income Cheat Attributy 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 Refund Yes No NO MarSt Single, Divorced TaxInc < 80K > 80K Married NO 9 No Married 75K No 10 No Single 90K Yes NO YES Trénovací data Model: rozhodovací strom
10 Použití modelu Testovací Data Refund Marital Status Taxable Income Cheat Refund No Married 80K? Yes No NO Single, Divorced MarSt Married V tomto případě nepodvádí TaxInc NO < 80K > 80K NO YES
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 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). 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, 3 rd Edition.
Jak zvolit "nejlepší" atribut? Rozdělme množinu S na podmnožiny S 1,S 2,...,S n na základě hodnot diskrétního atributu at. Měření množství informace uvnitř S i def. pomocí entropie (Shanon) H(S i ) = -(p i+ )*log p i+ - (p i- )*log p i-, kde (p i+ ) je pravděpodobnost, že libovolný příklad v S i je pozitivní; hodnota (p i+ ) se odhaduje jako odpovídající frekvence. Celková entropie H(S,at) tohoto systému je E(S,at) = n i=1 P(S i ) * E(S i ), kde P(S i ) je pravděpodobnost události S i, tj. poměr S i / S. 9
Výpočet entropií 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 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 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 13
Kontingenční tabulka - připomenutí Data (n) contingency table n ij = # of times( i,j)occurred ni + nij = n + n = = j nij = j = ij nij i # of times i # of times j = dataset size occurred occurred j\i 1 2 r 1 n 11 n 12 n 1r 2 n 21 n 22 n 2r s M M M O M n s1 n s2 n sr Kordik, CTU Prague, FIT, MI-PDD 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í 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 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) div Gini = 1 Σp i 2 kde p i jsou relativní četnosti v uzlech 17
CART / C&RT (pokrač.) Jen binární stromy Umožňuje zadání matice ztrát: 1 Σl ij p i p j 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 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 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 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, 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 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) 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 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? Zvládá spojité vstupy? Kritérium výběru atributu Kritérium prořezávání Interaktivní tvorba stromu Ne Ano Ne Ano Ano Ne Ano Ano Informační zisk Limit chyby Chi-kvadrát F test pro spojité proměnné Hlídá přeučení statistické Regularizace složitosti Ne Ano Ano Ano Gini index (čistota rozdělení, variabilita) Regularizace složitosti 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. 25
Vizualizace rozhodovacího stromu Credit ranking (1=default) Node 0 Category % n Bad 52,01 168 Good 47,99 155 Total (100,00) 323 Paid Weekly/Monthly Adj. P-value=0,0000, Chi-square=179,6665, df=1 Weekly pay Node 1 Category % n Bad 86,67 143 Good 13,33 22 Total (51,08) 165 Social Class Adj. P-value=0,0004, Chi-square=20,3674, df=2 Monthly salary Node 2 Category % n Bad 15,82 25 Good 84,18 133 Total (48,92) 158 Age Categorical Adj. P-value=0,0000, Chi-square=58,7255, df=1 Management;Professional Clerical;Skilled Manual Unskilled Young (< 25) Middle (25-35);Old ( > 35) Node 3 Category % n Bad 71,11 32 Good 28,89 13 Total (13,93) 45 Node 4 Category % n Bad 97,56 80 Good 2,44 2 Total (25,39) 82 Node 5 Category % n Bad 81,58 31 Good 18,42 7 Total (11,76) 38 Node 6 Category % n Bad 48,98 24 Good 51,02 25 Total (15,17) 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 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á? 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) 30
Regresní stromy: Jak se liší od klasifikačních? KT=130 KT=120 KT=150 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ů. 31
Regresní stromy: Predikce scrvizregrtree.m 32
Regresní stromy Chyba vs. ohebnost modelu Závislost chyby stromu na parametru splitmin scrregrtterrortree.m 33