330 likes | 461 Views
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. categorical. categorical. continuous. class. Příklad rozhodovacího stromu. Attributy. Refund. Yes. No. NO. MarSt.
E N D
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
categorical categorical continuous class Příklad rozhodovacího stromu Attributy Refund Yes No NO MarSt Married Single, Divorced TaxInc NO < 80K > 80K YES NO Model: rozhodovací strom Trénovací data
Použití modelu Testovací Data Refund Yes No NO MarSt V tomto případě nepodvádí Married Single, Divorced TaxInc NO < 80K > 80K YES NO
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
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
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á
Jakzvolit "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 Sije 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
Výpočet entropií MI-ADM, FIT CVUT
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
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
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
O M M M M Kontingenční tabulka - připomenutí • Data (n) contingency table Kordik, CTU Prague, FIT, MI-PDD
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
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
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
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
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
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
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
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
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
Závěrečné porovnání MI-ADM, FIT CVUT
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
Node 0 Category % n Bad 52 ,01 168 Good 47 ,99 155 Total (100 ,00) 323 Node 1 Node 2 Category % n Category % n Bad 86 ,67 143 Bad 15 ,82 25 Good 13 ,33 22 Good 84 ,18 133 Total (51 ,08) 165 Total (48 ,92) 158 Node 6 Node 7 Category % n Category % n Category % n Bad 81 ,58 31 Bad 48 ,98 24 Bad 0 ,92 1 Good 18 ,42 7 Good 51 ,02 25 Good 99 ,08 108 Total (15 ,17) 49 Total (33 ,75) 109 Vizualizace rozhodovacího stromu Credit ranking (1=default) Paid Weekly/Monthly Adj. P-value=0,0000, Chi-square=179,6665, df=1 Weekly pay Monthly salary Social Class Age Categorical Adj. P-value=0,0004, Chi-square=20,3674, df=2 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 Node 4 Node 5 Category % n Category % n Bad 71 ,11 32 Bad 97 ,56 80 Good 28 ,89 13 Good 2 ,44 2 Total (11 ,76) 38 Total (13 ,93) 45 Total (25 ,39) 82 MI-ADM, FIT CVUT
Klasifikační stromy: Vizualizace viz scrVizClassTree.m MI-ADM, FIT CVUT
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?
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
Stromy:Prořezávání MI-ADM, FIT CVUT • Snižuje složitost modelu, odstraňuje „zbytečné“ větve, zlepšuje generalizaci scrVizClassTree.m model=prune(model) view(model)
Regresní stromy:Jak se liší od klasifikačních? KT=130 KT=120 KT=150 KT=140 MI-ADM, FIT CVUT • 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ů.
Regresní stromy:Predikce • scrVizRegrTree.m MI-ADM, FIT CVUT
Regresní stromyChyba vs. „ohebnost“ modelu Závislost chyby stromu na parametru splitmin scrRegrTTErrorTree.m MI-ADM, FIT CVUT