Použití stromů ve statistice - Algoritmus BIRCH a jeho varianty pro
Transkript
Použití stromů ve statistice Marta Žambochová Abstrakt Ve statistice se stále více můžeme setkat se speciálními druhy stromů. Existují různé typy stromů, které se liší například klíčovou informací vztaženou k uzlu. Nejvíce rozšířené jsou rozhodovací stromy, pomocí kterých můžeme řešit různé úlohy klasifikační a predikční. S využitím rozhodovacích stromů se můžeme setkat i v časových řadách. Okrajově lze rozhodovací stromy použít i ve shlukové analýze. V této oblasti se však více uplatňují jiné typy stromů a to především R-stromy, jejichž základem je zobrazení objektů jako bodů ve vícerozměrném prostoru, jejich speciální druh, tzv. mrkd-stromy jsou využity například jako efektivní varianta EM shlukovacího algoritmu či k-means shlukovacího algoritmu. Dalším typem jsou CF-stromy, které jsou využívané při shlukování vícerozměrných datových bodů pomocí metody BIRCH (Balanced IterativeReducing a Clustering using Hierarchies). Klíčová slova Shluková analýza, rozhodovací stromy, minimální kostra, mrkd-stromy, CF-stromy Úvod Stromová struktura je oblíbeným prostředkem prezentace informací v různých oblastech běžného života. Pro svoji jednoduchost a přehlednost našla své uplatnění i v oblasti analýzy dat. Ať už pro vizualizaci výsledků (dendrogramy ve shlukové analýze) nebo přímo jako prostředek řešení různých problémů datové analýzy Strom je acyklický souvislý graf. Skládá se z uzlů (vrcholů) a jejich spojnic, hran (větví). Kořenový strom je strom, v němž je jeden z uzlů vybrán jako hlavní (počáteční) vrchol. Uzly jsou pak tří typů: kořen (hlavní uzel), nelistové (vnitřní) uzly a listové (koncové) uzly. Většinou se kořenový strom zobrazuje ve směru shora dolů (resp. z leva doprava) v pořadí kořen – nekoncové (vnitřní, neterminální)) uzly – listy. Stupněm uzlu nazýváme počet hran incidentních s daným uzlem. Listy jsou vždy stupně 1. V analýze dat platí, že každý uzel obsahuje informaci o skupině podobných objektů. Základní postup je takový, že každý objekt je zařazen pouze do jednoho uzlu. Rozhodovací stromy Velmi rozšířenou skupinou stromů, kterých se využívá v datových modelech, jsou různé typy rozhodovacích stromů. Rozhodovací stromy jsou struktury, které rekurzivně rozdělují zkoumaná data dle určitých rozhodovacích kritérií. Kořen stromu reprezentuje celý populační soubor. Vnitřní uzly stromu reprezentují podmnožiny populačního souboru . V listech stromu můžeme vyčíst hodnoty vysvětlované proměnné. Rozhodovací strom se vytváří rekurzivně dělením prostoru hodnot prediktorů (vysvětlující, nezávislé proměnné). Máme-li strom s jedním listem, hledáme otázku (podmínku větvení), která nejlépe rozděluje prostor zkoumaných dat do podmnožin, tj. maximalizuje kritérium kvality dělení (tzv. splitting criterium). Takto nám vznikne strom s více listy. Nyní pro každý nový list hledáme otázku, která množinu prediktorů náležící tomuto listu co nejlépe dělí do podmnožin. Proces dělení se zastaví, pokud bude splněno kritérium pro zastavení (tzv. stopping rule). Omezení obsažená v kritériu pro zastavení mohou být např. „hloubka“ stromu, počet listů stromu, stupeň homogennosti množin dat v listech, … Jednotlivé algoritmy vytváření rozhodovacích stromů se liší následnými charakteristikami: pravidlo dělení kritérum pro zastavení typ podmínek větvení o multivariantní (testuje se několik prediktorů) o univariantní (v daném kroku se testuje pouze jeden z prediktorů) způsob větvení o binární (každý z uzlů, kromě listů, se dělí na dva následníky) o k-ární (některý z uzlů se dělí na více než dvě části) typ výsledného stromu, popis obsahu listů o klasifikační stromy (v každém listu je přiřazení třídy) o regresní stromy (v každém listu je přiřazení konstanty – odhad hodnoty závislé proměnné) typ prediktorů o kategoriální o ordinální Rozhodovacích stromů se využívá k řešení mnoha typů manažerských úloh, jako jsou segmentace zákazníků (vytvoření skupin zákazníků pro přípravu speciálních nabídek a kampaní), skórování zákazníků (např. potencionálních dlužníků pro rozhodnutí zda danému zákazníkovi poskytnout úvěr či jej pojistit), vytipování potencionálních zájemců o nový produkt, odhalování pojistných podvodů (které z událostí by mohly být pojistnými podvody), vytipování zákazníků, u kterých hrozí odchod ke konkurenci , vytipování produktů, o které by mohl mít zájem zákazník, který si již zakoupil nějaký konkrétní produkt, analýza psaných textů obsažených v dotaznících, analýza webových stránek (co píší o daném tématu) a mnoho dalších. Dále je použití rozhodovacích stromů možné například v medicíně k vytipování rizikových skupin pro různé nemoci, diagnostikování nemocí atd. Typickou oblastí využívání rozhodovacích stromů ke klasifikaci je biologie. Tento druh stromů je zvláště vhodným nástrojem pro klasifikaci a predikci. Rozhodovací stromy lze využít i v oblasti shlukové analýzy, i když toto je spíše okrajovou záležitostí. Rozhodovací stromy se stávají velmi populárním nástrojem v různých manažerských úlohách. S jejich popisem se setkáme v mnoha materiálech, například v [1], [3], [11], [15]. Příklad použití rozhodovacího stromu Následující příklad ukazuje využití rozhodovacích stromů při klasifikaci. Máme za úkol respondenty rozdělit do dvou tříd – ty kteří mají zájem o naši nabídku a ty, kteří o nabídku zájem nemají. V tabulce Tab.1 jsou uvedeny dostupné údaje. Zájem o nabídku Jméno Stupeň vzdělání Novák vysokoškolské Nový středoškolské Novotný základní Moudrý středoškolské Šikovný vysokoškolské Pokorný středoškolské Blecha vysokoškolské Průcha středoškolské Tab. 1 Údaje o respondentech Rodinný stav Druh bydlení Auto (závislá položka) rozvedený ženatý svobodný svobodný svobodný rozvedený ženatý ženatý pronájem družstevní pronájem osobní vlastnictví pronájem družstevní družstevní osobní vlastnictví ano ne ano ano ano ne ne ano ano ne ne ne ano ano ano ano Obr. 1 Rozhodovací strom k příkladu Strom na obrázku Obr.1 je sestrojen pomocí jednoho z algoritmů pro sestrojování rozhodovacích stromů, algoritmu ID3. Jeho speciální verze je základem známého algoritmu C4.5, který je blíže popsán v [8]. Na obrázku Obr.2 je ukázáno jiné řešení stejné úlohy pomocí binárního rozhodovacího stromu. Obr. 2 Binární rozhodovací strom k příkladu Na základě výsledků obou rozhodovacích stromů můžeme předpokládat, že zájem budou mít následující typy osob: osoby vysokoškolsky vzdělané osoby bez vysokoškolského vzdělání, které nevlastní auto Osoby s těmito charakteristickými vlastnostmi poté cíleně oslovíme v reklamní kampani. Shluková analýza Shluková analýza (Cluster analysis) se zabývá podobností datových objektů. Řeší dělení množiny datových bodů do několika skupin (shluků, clusters) tak, aby si objekty uvnitř jednotlivých shluků byly co nejvíce podobny a objekty z různých shluků si byly podobny co nejméně. Jedním z hledisek pro klasifikaci metod shlukové analýzy je předmět shlukování. Základním využitím shlukové analýzy je vyhledávání skupin podobných objektů – statistických jednotek (respondenti, výrobky, dokumenty, …) Kromě toho však můžeme zjišťovat skupiny podobných proměnných, případně vyhledávat podobnost statistických jednotek i proměnných současně, což je předmětem dvourozměrné shlukové analýzy. Shlukovou analýzu lze provádět mnoha různými metodami. Jednotlivé metody se od sebe liší jednak různým způsoby určování podobnosti objektů (měr podobnosti) a jednak způsoby shlukování (hierarchické a nehierarchické, …) Hierarchické metody se dále dělí na aglomerační (vychází ze situace, kdy je každý objekt sám v jednom shluku, shluky se postupně spojují až k cílovému stavu, kdy jsou všechny objekty v jednom shluku) a divizní (naopak vychází z jednoho shluku, který se postupně rozděluje). Při výběru metody shlukové analýzy záleží jednak na tom, zda máme k dispozici přímo zdrojová data, či agregované údaje (např. tabulku četností, matici podobností, …) Pokud máme k dispozici zdrojová data, je výběr metody závislý na typu proměnných (nominální, ordinální, kardinální proměnné). Statistické programové systémy obvykle zahrnují jednak hierarchický algoritmus jehož výsledek bývá zobrazován ve formě tzv. dendogramu, jednak nehierarchický iterativní algoritmus k-means (kprůměrů, nejmenších těžišť) a často i dvourozměrnou shlukovou analýzu. Minimální kostra Kostra grafu G je libovolný strom, který je podgrafem grafu G a obsahuje všechny vrcholy grafu G. Kostra grafu je tedy strom, který obsahuje všechny vrcholy původního grafu a platí, že množina hran kostry je podmnožinou hran původního grafu. Jednotlivé hrany grafu můžeme „ohodnotit“, tzn. každé hraně grafu přiřadíme nezáporné reálné číslo, které nazýváme váha hrany. Daný graf může mít samozřejmě mnoho různých koster. Jednou z úloh teorie grafů je nalezení minimální kostry (součet vah jednotlivých hran minimální kostry je menší nebo roven než součet vah jednotlivých hran libovolné jiné kostry daného grafu). Existují tři velmi jednoduché algoritmy. Algoritmus Kruskalův (hladový), Jarníkův (Primův) a Borůvkův. První, kdo vymyslel jeden z algoritmů a to v roce 1926, byl Otakar Borůvka. Další byl algoritmus Jarníkův, který je však ve světě znám jako Primův, ačkoliv s tímto algoritmem přišel český matematik Jarník již v roce 1930 a Prim až v roce 1957. Hladový algoritmus vymyslel Kruskal až v roce 1956 avšak jeho algoritmus je, zdá se, nejznámější a nejoblíbenější. Shlukování pomocí minimální kostry Metoda shlukování pomocí minimální kostry (minimum spanning tree) patří k hierarchickým aglomeračním metodám shlukové analýzy. Každý objekt představuje jeden uzel grafu. Všechny uzly jsou vzájemně pospojovány hranami (jedná se o tzv. úplný graf). Váha hrany je vyjádřením podobnosti obou spojených pozorování. Pomocí libovolného algoritmu nalezneme minimální kostru tohoto grafu. Vyjmutím hrany s maximální vahou obdržíme dvě komponenty (souvislé části grafu), které reprezentují dva shluky. Dalším postupným vyjímáním hran s maximální vahou dostáváme potřebné množství shluků. Vyjmutím k-1 hran s maximálními vahami dostaneme tedy k shluků. Algoritmus minimální kostry se využívá i v tzv. hybridním přístupu pro shlukování ve velkých souborech dat. Hybridní přístup je založen na provedení výběru objektů a shlukování objektů v tomto výběru. K takto vytvořeným shlukům jsou přiřazovány zbylé objekty. Při použití minimální kostry jsou objekty rozděleny do skupin, pro každou skupinu je zkonstruována minimální kostra. Tyto minimální kostry jsou spojovány tak, aby tvořily globální minimální kostru. Mrkd-stromy Dalším druhem stromů využívaných v analýze dat jsou mrkd-stromy. Kd-(resp. K-d nebo kvadrantový) strom je datová stromová struktura, která reprezentuje rekurzivní dělení konečné množiny bodů z d-dimenzionálního prostoru na k částí (d-dimenzionálních hyperkvádrů), pomocí d-1 dimenzionálních ortogonálních nadrovin. Existuje mnoho způsobů dělení, jeden jednoduchý je rozdělení ortogonálně k nejdelší straně hyperkvádru na úrovni mediánu ze všech bodů hyperkvádru. Speciálním případem kd-stromů jsou mrkd-(Multiresolution k-d) stromy. Mrkd-stromy jsou binární formou kd-stromů. Poznámka: V některých materiálech (např. [2], [5]) se pod pojmem kd-stromy rozumí mrkd-stromy. Vlastnosti mrkd-stromů: Jsou to binární stromy (tzn. každý z vnitřních uzlů se štěpí na dva podřízené uzly). Každý z vrcholů obsahuje informaci o všech bodech z příslušného hyperkvádru. Kořen stromu reprezentuje hyperkvádr obsahující všechny sledované body. List (koncový uzel) obsahuje jeden bod (nebo obecněji počet bodů menší než daná malá konstanta). Obr. 3 Ukázka dělení prostoru datových bodů na hyperkvádry pomocí nadrovin pro d = 3 Použití mrkd-stromů ve shlukové analýze Myšlenka využití mrkd-stromů ve shlukové analýze se objevuje v [6]. Zde je popsána varianta EM algoritmu. Varianty Lloydova algoritmu (jeden z k-means algoritmů) využívající mrkd-stromy jsou popsány například v literatuře [5] a [7]. Všechny tyto varianty zefektivňují původní algoritmus na základě faktu, že uzel mrkd-stromu reprezentuje mnoho datových bodů. V jednotlivých krocích výpočtu pak můžeme mnoho početních i rozhodovacích úkonů s jednotlivými datovými body nahradit jediným hromadným úkonem a tím se velmi sníží počet přístupů k datům a aritmetických operací. Jednou z implementací Lloydova algoritmu využívající mrkd-stromy, je tzv. Filtrovací algoritmus, který jeho autoři podrobněji popisují v [5]. Postup dle tohoto algoritmu začíná vytvořením mrkd-stromu pro daná data. Dále pro každý vnitřní uzel mrkd-stromu, resp. pro data asociovaná s tímto vrcholem, vypočítáme centroid. Stejně jako v Lloydově algoritmu určíme inicializační množinu k center (např. náhodně zvolíme). V této variantě na rozdíl od původního algoritmu navíc vytvoříme množiny tzv. kandidátských center pro každý z vrcholů, a to následujícím způsobem. Množina kandidátských center pro kořen obsahuje všech k center. Jednotlivá kandidátská centra budeme „prosívat“ stromem dolů následovně. Pro každý uzel u označme H hyperkvádr náležící tomuto uzlu a označme K množinu kandidátských center náležících vrcholu u. Nechť c* K, c* je ze všech c K nejblíže středu hyperkvádru H. Z množiny K \ {c*} odebereme, „odfiltrujeme“, ta kandidátská centra c, pro která platí, že žádná část hyperkvádru H není blíže k c než k c*, protože z předchozího vyplývá, že toto c není nejbližším centrem pro žádný z datových bodů patřících k tomuto uzlu. Pokud, po „odfiltrování“ všech nežádoucích kandidátských center z K, obsahuje K právě jediný prvek (který jsme dříve označili c*), pak víme, že c* je nejbližším centrem pro všechny datové body asociované s daným uzlem a můžeme tomuto centru všechny tyto datové body přiřadit. Pokud množina K po „odfiltrování“ nežádoucích kandidátských center obsahuje více než jeden prvek a pokud uzel u není listem stromu, přejdeme rekurzivně k dceřinému uzlu. Pokud je u listem, spočítáme vzdálenost všech datových bodů asociovaných s tímto vrcholem od všech zbylých kandidátských center z množiny K a přiřadíme je vždy k nejbližšímu centru. Tímto jsme přiřadili všechny datové body jednotlivým centrům a můžeme dokončit iterační krok dle Lloydova algoritmu – spočítat patřičné centroidy a přemístit centra do těchto centroidů. Průběh algoritmu ukončíme, stejně jako v případě Lloydova algoritmu, pokud se buď v posledním iteračním kroku „nepřesunul“ žádný datový bod od jednoho centra k druhému, nebo pokud i přes případný přesun došlo jen k nevýraznému (menšímu než předem daná konstanta) zlepšení. Klasický iterativní k-means algoritmus není založen na matici vzdáleností a proto je využitelný i pro shlukování ve velkých souborech dat. Nevýhodou je ovšem časová náročnost zpracování. Algoritmus využívající mrkd-stromy je velkým zefektivněním klasického přístupu. Efektivita tohoto algoritmu spočívá ve faktu, že mrkd-strom je zkonstruovaný pouze jedenkrát pro dané datové body a celá struktura nemusí být přepočítávána v každém iteračním kroku algoritmu. CF-stromy CF-stromy využívají tzv. CF (Clustering Feature) charakteristiku (CF vektor) shluku. Tato charakteristika je uspořádanou trojicí CF = (N, LS, SS), kde N je počet datových bodů ve shluku, LS je součtem všech datových bodů ve shluku a SS je součtem druhých mocnin těchto datových bodů. ( LS N N , X SS i X i2 ) i 1 i 1 Důležitou vlastnost této charakteristiky popisuje věta o CF additivitě: Mějme CF1 = (N1, LS1, SS1) a CF2 = (N2, LS2, SS2), CF-charakteristiky dvou disjunktních shluků. CF-charakteristika shluku, který vznikne spojením původních dvou shluků je rovna: CF CF1 CF2 (N1 N 2 , LS1 LS 2 , SS1 SS 2 ) Údaje obsažené v CF-charakteristice jsou dostačující k výpočtu centroidů, míry vzdálenosti shluků a míry kompaktnosti shluků. CF-stromy jsou vysoce vybalancované stromy se dvěma parametry. Prvním parametrem je faktor větvení (F, L) a druhým práh P. Pro každý vnitřní uzel CF-stromu platí, že obsahuje maximálně F vstupů ve tvaru [CFi, potomeki], kde i = 1, …, F, „potomeki“ je ukazatel na i-tý podřízený uzel, CFi je CF-charakteristika podshluku, který je reprezentován tímto potomkem. Úkolem vnitřních uzlů je umožnění nalezení správného listu pro zařazení nového datového bodu. Každý list obsahuje nejvýše L vstupů ve formě [CFi] , kde i = 1, …,L, navíc obsahuje ukazatel na předchozí list a ukazatel na následný list, takže všechny listy jsou vzájemně propojeny pomocí ukazatelů „předchůdce“ a „následník“. Každý listový uzel reprezentuje shluk vytvořený všemi podshluky reprezentovanými jednotlivými vstupy daného listu. Pro každý vstup listu ale musí platit prahové pravidlo, že rozpětí (poloměr) vstupu je menší než práh P. Je zřejmé, že velikost stromu je funkcí prahu P. Platí, že čím větší je hodnota prahu P, tím je menší velikost stromu a naopak. CF-strom je budován dynamicky, postupně jsou vkládány nové datové body. Proces vkládání začíná v kořeni stromu. Nalezne se nejbližší vstup a přes něj se přejde do patřičného uzlu-potomka. Takto se pokračuje, až se dojde do listu. V listu se opět nalezne nejbližší vstup. Pro podshluk reprezentovaný tímto vstupem ověříme platnost prahového pravidla. Pokud toto pravidlo platí, zařadíme nový datový bod do příslušného vstupu a upravíme příslušnou CF-charakteristiku. Pokud prahové pravidlo po zařazení nového objektu neplatí, musíme pro tento datový bod vytvořit nový shluk a jemu příslušný vstup. Následně se musí přepočítat všechny inkriminované CF-statistiky. Pokud se vytvořením nového vstupu dostaneme do konfliktu s faktorem větvení F (počet vstupů žádného uzlu nesmí být větší než F, resp. L), musíme rozštěpit daný uzel, opět s přepočtem příslušných CFcharakteristik. Obdobně je přebudován celý strom. Obr. 4 Ukázka CF-stromu pro F = 7 a L = 5 (dle [16]) Shlukování pomocí CF-stromů Dalším z algoritmů umožňujícím shlukování ve velkých souborech dat je shlukovací metoda BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies). Tento algoritmus shlukuje data postupně, dynamicky tak, jak vstupují do procesu. Algoritmus vytváří CF-strom, do kterého zařazuje postupně přicházející data. Algoritmus je blíže popsán v [12]. Výhodou tohoto postupu je, že prochází datovým souborem pouze jedenkrát. Nevýhodou je citlivost na pořadí vstupujících datových bodů. Tento algoritmus je součástí algoritmu dvoukrokové shlukové analýzy ve statistickém programovém balíku SPSS (verze 11.5). Principy dvoukrokové shlukové analýzy jsou nastíněny například v [10]. Literatura [1] Antoch J., Klasifikace a regresní stromy. Sborník ROBUST 88 [2] Bentley, J. L.: Multidimensional Binary Search Trees Used for Associative Searching. Comm. ACM, vol. 18, pp. 509-517, 1975 [3] Berikov, V., Litvinenko, A.: Methods for statistical data analysis with decision trees, http://www.math.nsc.ru/AP/datamine/eng/decisiontree.htm [4] Faber, V.: Clustering and the Continuous k-Means Algorithm. Los Alamos Science, vol. 22, pp. 138-144, 1994 [5] Kanungo, T., Mount, D. M., Netanzahu, N. S., Piatko, CH. D., Silverman, R., Wu, A. Y.: An Efficient k-Means Clustering Algorithm: Analysis and Implementation. IEEE Transactions on pattern analysis and machina inteligence, vol. 24, no. 7, july 2002 [6] Moore, A.: Very Fast EM-based Mixture Model Clustering usány Multiresolution kd-trees. Proc. Conf. Neural Information Processing Systéme, 1998 [7] Pelleg, D., Moore, A.: Accelerating Exact k-means Algorithms with Geometric Reasoning. Proc ACM SIGKDD Int’l Conf. Knowledge Discovery and Data Mining, pp. 277-281, Aug. 1999 [8] Quinlan, J. Ross: C4.5: Programs for Machine Learning (Morgan Kaufmann Series in Machine Learning), ISBN 1-55860-238-0, 1993 [9] Řezanková, H., Húsek, D.: Klasifikace v programových systémech pro analýzu dat, ROBUST’2000, 257 – 266 [10] Řezanková, H.: Shlukování a velké soubory dat. Lázně Bohdaneč 29.11.2004 – 01.12.2004. In: KUPKA, Karel (ed.). Analýza dat 2004/II. Pardubice : TriloByte Statistical Software, 2005, s. 7–19. ISBN 80-239-4847-4. [11] Savický, P., Klaschka, J., a Antoch J., Optimální klasifikační stromy. Sborník ROBUST 2000 [12] Zhang, T., Ramakrishnan, R., Livny, M.: BIRCH: An Efficient Data Clustering Method for Very Large Databases. ACM SIGMOD Record, 25, 2. 1996 (s. 103-114) [13] Zhang, T., Ramakrishnan, R., Livny, M.: BIRCH: A New Data Clustering Algorithms and Its Applications. Journal of Data Mining and Knowledge Discovery, vol. 1, no. 2, 1997 (s. 141-182) [14] Žambochová, M. Rozhodovací stromy a mrkd-stromy v analýze dat, Sborník … [15] Žambochová, M.: Užití stromů v analýze dat. Forum statisticum Slovacum 2/2005, Bratislava, ISSN 1336-7420 [16] http://www.cs.uic.edu/~dyu/birch.ppt
Podobné dokumenty
ISIS - Vysoká škola ekonomická v Praze
Moderní doba je charakterizována explozí velkého objemu dat shromažďovaných v databázích. Rychlý rozvoj informačních technologií toto ukládání dat stále více
usnadňuje. Uchovávání dat se stává přís...
Full text
prostoru probíhá pomocí shlukovacího (clustering) algoritmu, pomocí něhož jsou objekty seskupeny
do zvoleného počtu shluků užitím euklidovské vzdálenosti. Shlukování je způsob, jak oddělit skupiny
...
Inicializační rozdělení do shluků a jeho vliv na konečné shlukování v
ovlivněnou algoritmem BIRCH [6], [7]. Tato metoda předsouvá před vlastní
zpracování klasickým Lloydovým algoritmem postup, pomocí kterého obdrţíme
rozdělení objektů do shluků, které je výhodné pro ...
Zpravodajpro kybernetiku a informatiku
Povı́dánı́ bude navazovat na úvodnı́ přednášku o GA docenta
Lažanského. Autor se zaměřı́ hlavně na problémy spojené
s použitı́m GA jako jsou předčasná konvergence, nevhodně
navrže...
čo je kázanie? - Časopis dialog
Z editorialov, ktoré zväčša v súčasných časopisoch píšu šéfredaktori, mi akosi stále
vytŕčajú rožky neschopnosti autora priniesť vlastnú myšlienku, ale keďže je v tiráži na
šéfredaktorskom mie...