Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining 18. Előadás Dr. Pauler Gábor, Egyetemi Docens PTE-PMMFK Villamos Intézet Számítástechnika Tanszék Iroda: Boszorkány u., B épület 101 Tel: 72/503-650/3725 E-mail: gjpauler@acsu.buffalo.edu
Az előadás tartalma A hierarchikus klaszterezéssel készített csoportok bontása alcsoportokra a ClusterTree elemző rendszer használatával Csoporthierarchiák ábrázolása az SPSS-ben Mintapélda A klaszterfa fogalma Klaszterfák megjelenítése a ClusterTree.xls elemző rendszerrel Példa a csoportok hasítására A változóértékek koncentrációja okozta problémák feloldása A Faktoranalízis és a klaszterezés alapfeltevéseinek különbsége Faktorokon történő klaszterezés Mintapélda, előzetes faktoranalízis a csoportosító változókon A faktorok csoportosító változóként történő bevonása stepwise módszerrel, csoportosítási eredmények
A csoporthierarchia SPSS-ben Az agglomeratív hierarchikus klaszterezés egyik „mellékterméke”, hogy egy nem fix szintszámú csoport leszármazási fa-hierarchiát hoz létre, aminek gyökere a teljes minta öszevonva egy csoportba, levelei pedig a megfigyelések Az SPSS két módon tudja ábrázolni ezt a hierarchiát: Fa-diagramm (Dendogramm): primitív, nehezen áttekinthető karakteres grafika (azért hagyták meg ezt az 1979-ben programozott ősi modult, hogy el tudják adni a fa-rajzoló szoftverüket) a csoportokra vonatkozó mindenféle kiegészítő adat nélkül (pl. csoportméret, csoportátlagok) Jégcsap-diagramm (Icicle plot): a megfigye- lések csoportok- ba tartozásának még nehezeb- ben áttekinthető táblázatos ábrá- zolása Number of clusters Case 1 2 3 4 5 6 7 8 1134:Ca1159 X 568:Case 579 1122:Ca1147 634:Case 645 330:Case 340 1086:Ca1109 1050:Ca1073 1003:Ca1025 402:Case 413 405:Case 416 1 2 3 4 5 6 7 8 9 10 Megfigyelés Lépés 9 8 7 6 5 4 3 2 1
A csoportok alcsoportokra bontásának jelentősége Egy 2005-ös, teljes magyar lakosságra reprezentatív életstílus felmérésben (lásd: Eletstilus.sav ) 39 életstílus attitüd változóból alkotott 4 életstílus faktoron végeztünk Ward-hierarchikus klaszterezést. A létrejött 8-as csoportosítás nem elég stabil, a pókháló diagrammon a csoportprofilok egyes részei önellentmondóak, és két csoport aránya (Kényszergyorsító:19%, Jólszituált:8%) túllépi a korábbi szakmai tapasztalatoknak megfelelő 11%-os, illetve 2%-os értéket Ezért a két csoport agglomeratív klaszterezés mentén történő alcsoportokra hasítása vált szükségessé, hogy lássuk, nem tapadtak-e hozzájuk oda nem tartozó elmek. Tengely1: Tradíció Tengely2: Gyorsaság
A csoporthierachia ábrázolása Klaszterfák segítségével A Klaszterfa (Cluster Tree) egy hierachikus klaszterezés csoporthierarcháját ábrázoló nem irányított gráf, amely nem fix szintszámú bináris fát alkot: Csomópontjai al-és főcsoportokat ábrázolnak, méretük arányos a csoport méretével, helyzetük pedig a csoport háttérváltozók szerinti átlagait mutatja az azok alkotta koordináta-rendszerben A gráf élei a csoportok közti leszármazási kapcsolatot mutatják A gráf csomópontjaiból mindig további két csomópont bontható ki alcsoportként, Kivéve, ha a csomópont egy megfigyelést ábrázoló levél-elem A klaszterfa az adott sokváltozós eloszlás térszerkezetét modellezi tetszőleges felbontásban: Egyfajta „csontvázként” húzódik A megfigyelések jelentette pontfelhő belsejében 1
Az előadás tartalma A hierarchikus klaszterezéssel készített csoportok bontása alcsoportokra a ClusterTree elemző rendszer használatával Csoporthierarchiák ábrázolása az SPSS-ben Mintapélda A klaszterfa fogalma Klaszterfák megjelenítése a ClusterTree.xls elemző rendszerrel Példa a csoportok hasítására A változóértékek koncentrációja okozta problémák feloldása A Faktoranalízis és a klaszterezés alapfeltevéseinek különbsége Faktorokon történő klaszterezés Mintapélda, előzetes faktoranalízis a csoportosító változókon A faktorok csoportosító változóként történő bevonása stepwise módszerrel, csoportosítási eredmények
Klaszterfák megjelenítése a ClusterTree rendszerrel 1 A ClusterTree.xls fájl lehetővé teszi klaszterfák megjelenítését, és a csoportok alcsoportokra hasítását Az Database munkalapra az SPSS adatáblájából a csoportosító változók, majd a háttérváltozók, majd a csoporttagság-változó oszlopait kell bemásolni. A kitöltendő cellatartomány legfelső sorába a változók neveinek kell kerülniük, amelyeknek egyedieknek kell lenni Az SPSS érthetetlen, 8 karakteres változónevei helyett itt használhatjuk a változók címkéjét – bármely karaktert tartalmazhatnak – amennyiben azok egyediek Az első n db változónak csoportosító változóknak kell lennie, számukat a bal felső cellában adjuk meg Database
Klaszterfák megjelenítése a ClusterTree rendszerrel 2 Futtassuk le megint a Ward-féle hierarchikus klaszterezést a négy csoportosító változón (mfactrad, mfacmode, mfacspede, mfacslow) Az Output window| Aggrlomeration schedule részből az egész táblázatot Ctrl+A val kijelölve másoljuk át Szerkesztés| Irányított beillesztés| Csak szöveget (Edit| Paste special| Text only) módszerrel az AgglSched munkalapra AgglSched katt
Klaszterfák megjelenítése a ClusterTree rendszerrel 3 A Charts munkalap jeleníti meg a klaszterfa diagrammját, ezen diagramm beállítópaneljét és frissítőgombját, a csoportokat részletes összehasonlításra kiválasztó legördülő listákat (a csoportok a diagrammokon ugyanolyan színkódot kapnak, mint a listák), ezek profiljait ábrázoló pókháló diagrammot, a háttérváltozókat kiválasztó legördülő listákat, a csoportok háttérváltozók szerinti átlagait agglomerációs lépésenként, a manuális csoportelnevezések és –hasítások vezérlőjét Charts
Klaszterfák megjelenítése ClusterTree-vel 4 A következőkben először megkeressük és kibontjuk a klaszterfában a korábbi klaszterezés által felállított 8 csoportot: A klaszterfa beállítópaneljén az automatikus bontást ináktiváljuk, úgy hogy a csoportok méretétől (Size) tesszük függővé, és egy nagyon nagy csoportméretet adunk meg (1000), így semmit nem bont ki automatikusan Ideiglenesen beválasztjuk a háttérváltozók közé a csoporttagság változót, és F9 megnyomásával újraszámoltatjuk a munkalapot Az agglomerációs tábla végéről előrefele (lentről felfele) haladva figyeljük, hogy a csoporttagság-változó különböző értékei (1..8) mely lépésnél jönnek ki egész értékűre. Pl. nem 6.35, hanem 6.00 . Ez lépés fogja jelenteni a 6-os csoportot, így a csoportnév (Name) mezőbe beírjuk a nevét, és az agglomerációban minden ez után következő lépést (lefele) manuális bontásra jelöljük ki a bontás (Split) mezőbe írt 1-es értékkel. A gombra kattintva, a klaszterfa az előző klaszterezés által létrehozott helyzetet fogja tükrözni Tengely1: Tradícionalitás Tengely2: Gyorsaság
Klaszterfák megjelenítése ClusterTree-vel 5 A kibontott csoportokat részletesebben is jellemezhetjük profiljaikkal a pókháló diagrammon: Ehhez válasszunk ki háttérváltozókat, amelyek szerinti csoportátlagokat mutatja (a fa diagramm tengelyein történő megjelenítésre is csak ezen változók közül választhatunk, különben nem jeleníti meg a fát!) Válasszuk ki a pókháló diagrammon ábrázolni kívánt csoportokat (amilyen szinű listából választjuk, olyan színkódot kap a diagrammokon!) A gombbal frissíthetjük a diagrammok tartalmát Ha egy csoportot bontani szeretnénk: Az aggregációs táblában írjunk a Split mezőjébe 1-est, és frissítsük a diagrammokat A fában a csoport két alcsoportra bomlik, amelyeket a rendszer számkódokkal jelöl Ezeket az alcsoportokat is kirak- hatjuk a pókháló diagrammra, és a profiljuk alapján nevet adhatunk nekik az agglomerációs táblázat Name mezőjében, majd frissítsük a diagrammokat Klaszterfák megjelenítése ClusterTree-vel 5
Az előadás tartalma A hierarchikus klaszterezéssel készített csoportok bontása alcsoportokra a ClusterTree elemző rendszer használatával Csoporthierarchiák ábrázolása az SPSS-ben Mintapélda A klaszterfa fogalma Klaszterfák megjelenítése a ClusterTree.xls elemző rendszerrel Példa a csoportok hasítására A változóértékek koncentrációja okozta problémák feloldása A Faktoranalízis és a klaszterezés alapfeltevéseinek különbsége Faktorokon történő klaszterezés Mintapélda, előzetes faktoranalízis a csoportosító változókon A faktorok csoportosító változóként történő bevonása stepwise módszerrel, csoportosítási eredmények
A Kényszergyorsító csoport hasítása Az eredeti 8 csoport és a csoportok hierachikus családfája A Kényszer- gyorsító egy 8%-os Kényszer-modern és egy 11%-os Kényszer-tradício-nális csoportra szakad szét Tengely2: Gyorsaság Tengely1: Tradícionalitás
A kihasított csoportok elnevezése a háttérváltozók átlagai alapján A 8% Kényszer-Modern iskolázottabb és vagyonosabb, valamint nagyobb telpülésen lakik, mint a 11% Kényszer- Tradícionális
A Jólszituált csoport hasítása A 8%-os Jólszituált csoport Egy 3%-os Jól-szituált modern és egy 5%-os Jól-szituált tradício-nális csoportra szakad szét. Tengely2: Gyorsaság Tengely1: Tradícionalitás
A kihasított csoportok elnevezése a háttérváltozók átlagai alapján A 3% Jólszituált Modern fiatalabb, jobban iskolázott, magasabb jövedelmű, vagyonosabb, nagyobb településen lakik, mint az 5% Jólszituált Tradícionális A kész elemzést lásd: ClusterTreeMinta.xls
Az előadás tartalma A hierarchikus klaszterezéssel készített csoportok bontása alcsoportokra a ClusterTree elemző rendszer használatával Csoporthierarchiák ábrázolása az SPSS-ben Mintapélda A klaszterfa fogalma Klaszterfák megjelenítése a ClusterTree.xls elemző rendszerrel Példa a csoportok hasítására A változóértékek koncentrációja okozta problémák feloldása A Faktoranalízis és a klaszterezés alapfeltevéseinek különbsége Faktorokon történő klaszterezés Mintapélda, előzetes faktoranalízis a csoportosító változókon A faktorok csoportosító változóként történő bevonása stepwise módszerrel, csoportosítási eredmények
A változóértékek koncentrációja okozta problémák feloldása 1 Ha csoportosító változók néhány – a megfigyelések számánál jóval kevesebb – érték körül koncentrálódnak (első sorban diszkrét változókra jellemző ez), ez megzavarhatja a klaszterezéseket Erre mutatunk példát az Autószobrászat Bt. kérdőívéből (lásd: KerdoivMinta.doc ) készített adatbázisban (lásd: AdatbazisMinta.sav) a csoportosító változóként szolgáló termékjellemző-fontosságoknál (ImpBody, ImpEngin, stb.): Mivel a megfigyelések a koordináta rendszerben a diszkrét értékek rácspontjaiban tömörülnek, rengeteg egyforma távolság lesz köztük, ami mind a hierarchikus, mind a k-közép algoritmus működését elbizonytalanítja: Tipikus tünetként, nagyon egyenlőtlen méretű (pár megfigyelésből álló) csoportokat ad Vagy a csoportosítás bizonytalan, nincs törés a scree plot-on Vagy a minta bármely kis változtatása esetén teljesen más csoportosítás születik A megfigyeléseket egy kis véletlen zajjal „megrázva” ábrázoltuk, hogy ne takarják ki egymást a diagrammon, és látsszon, hogy mennyi van belőlük az egyes rácspontokban
A változóértékek koncentrációja okozta problémák feloldása 2 Ez a trükköt alkalmazhatnánk az adtbázisban arra, hogy csökkentsük az egyforma távolságok számát Azonban a klaszterezéseknek ez nem igazán segít, hiszen célunk velük pont az, hogy csökkentsük a rendszerben a véletlen zaj mértékét, és nem az hogy még tovább növeljük A koncentrációs probléma feloldásában segítséget nyújthat, ha a csoportosító változókon faktoranalízist hajtunk végre, és a kibontott faktorokat használjuk csoportosító változóként A faktor – mivel az eredeti változók súlyozott összege – n db, k lehetséges értékű változó esetén kn db lehetséges értéket vehet fel, így eltűnteti a diszkrét értékek miatti koncentrációt Ez technikailag egyszerű, elméletileg azonban rázós, mert a két módszertan ellentmondó igényeket támaszt az adatbázissal szemben
A faktoranalízis és a klaszterezések alapfeltevéseinek különbsége A faktoranalízis feltételezi, hogy: A megfigyelések homogének: nincsenek külön csoportosulások, normális vagy legalábbis egy móduszú (Unimodal) eloszlást alkotnak A változók inhomogének: erősen kapcsolódó csoportjaik vannak Az eloszlás ideálisan ”rögbilabda” képet mutat: sokdimenziós, közepe fele sűrűsödő pontfelhő, amit egy hiperellipszoid felülettel burkolhatnánk be a labda különböző irányokba (ezek a faktor sajátérték vektor irányok) el van nyújtva A klaszterezések feltételezik, hogy: A megfigyelések inhomogének: elkülönülő csoportokat alkotnak, az eloszlás multimodális (Multimodal) A változók homogének: minden csoportosító változó független egyástól Az eloszlás ideálisan „szimmetrikus gombócok” képet mutat: élesen elkülönült, tökéletesen gömb alakú csoportok egyenletesen borítják be a teret, sem az alkjukból, sem az elhelyezkedésükből nem látszik semilyen kapcsolat a változók közt
Faktorokon történő klaszterezés Nincs olyan adatbázis, ami minden követelménynek megfelel! A gyakorlatban azonban mégis előfordul, hogy egy alig elfogadható, 0.5-0.6 körüli KMO-teszttel rendelkező faktoranalízis faktoraiból jobb csoportosítás születik, mint az eredeti változókból: Ha a minta multimodalitása nem olyan erős, hogy annyira tönkretegye a faktranalízist, hogy az hülyeségeket gyártson (ez általában így van, hiszen ha erősen multimodális lenne, akkor a klaszterezés önmagában is jól működne...) Akkor a faktorok, mint csoportosító változók egymástól való függetlensége, illetve a diszkrét értékek koncentrációjának feloldása általában üdvös hatással van a klaszterezés hatékonyságára
Az előadás tartalma A hierarchikus klaszterezéssel készített csoportok bontása alcsoportokra a ClusterTree elemző rendszer használatával Csoporthierarchiák ábrázolása az SPSS-ben Mintapélda A klaszterfa fogalma Klaszterfák megjelenítése a ClusterTree.xls elemző rendszerrel Példa a csoportok hasítására A változóértékek koncentrációja okozta problémák feloldása A Faktoranalízis és a klaszterezés alapfeltevéseinek különbsége Faktorokon történő klaszterezés Mintapélda, előzetes faktoranalízis a csoportosító változókon A faktorok csoportosító változóként történő bevonása stepwise módszerrel, csoportosítási eredmények
Faktorokon történő klaszterezés: mintapélda Az Autószobrászat Bt. kérdőívén (lásd KerdoivMinta.doc ) szereplő 13db csoportosító változón előbb hajtsunk végre egy faktoranalízist, majd a faktorokat használjuk csoportosító változóként egy hierarchikus Ward-klaszterezésben:
Faktorokon történő klaszterezés: Faktoranalízis Futtassuk le SPSS-ben a Session16-ban tárgyaltak szerint a faktoranalízist (lásd: FaktorokMinta.xls ): Kiderül, hogy a faktoranalízis egész jó (KMO=0.73), a 4db, 1-es sajátérték felett kibontott faktor a bizonytalanság 62.5%-át magyarázza A négy faktor határozottan, szinte határesetek nélkül körvonalazódik a súlyokból: Divatozás Értéktartás Kockázatkerülés Takarékosság A lementett faktorokat lássuk el megfelelő névvel és címkével:
Faktorokon történő klaszterezés: a változók stepwise bevonása Futtassuk le a Session17-ben tárgyaltak szerint a faktorokra a Ward-hierarcikus klaszterezést (lásd: CsoportokMinta.xls ): Mivel a négy kibontott faktor messze nem egyforma fontos, még a klaszterezés a „Standard deviation to 1”-normalizációs beállítás miatt egyforma fontosnak veszi őket, nem biztos, hogy mind a nény faktor bevonása adja a legjobb csoportosítást Futtassuk le a Ward-algoritmust 4, 3, 2 faktor, mint csoportosító változó esetére, és figyeljük hol alakul ki a leghatározottabb törés a scree plotokon Ezt a módszert nevezzük a csoportosító változók lépésenkénti (Stepwise) bevonásának Faktorok: 1..4 Faktorok: 1..3 The big crack! Faktorok 1..4 1..3 1..2 WSS 488 366 244 411 290 172 345 221 121 302 186 82 265 159 63 240 136 53 217 122 45 200 113 38 184 104 34 169 95 29 156 86 26 145 78 23 135 71 21 Töréspont1 3 nincs Töréspont2 5 7 Faktorok: 1..2
Faktorokon történő klaszterezés: csoportosítási eredmények Az első három faktoron, mint csoportosító változókon 3 csoportot meghagyva a következőket kapjuk: Divatozók Kockázat-kerülők Bevállalók A gombóc- és tortadiagram-mokon látszik, hogy ez a csoportosítás kiegyensúlyo-zottabb és stabilabb, mint az eredeti 13db csoportosító változón megalkotott
Szakirodalom K-közép klaszterezés: Elméleti bevezető: http://fconyx.ncifcrf.gov/~lukeb/kmeans.html Elméleti bevezető: http://www.elet.polimi.it/upload/matteucc/Clustering/tutorial_html/kmeans.html Részletes algoritmusa: http://www.andrew.cmu.edu/user/smisra/Kmean.htm Használata Stata-ban: http://www.gseis.ucla.edu/courses/ed231a1/notes2/cluster2.html Visual basic programkódja: http://people.revoledu.com/kardi/tutorial/kMean/ Online bibliográfia: http://iris.usc.edu/Vision-Notes/bibliography/pattern624.html Hierarchikus klaszterezés: Elméleti bevezető: http://fconyx.ncifcrf.gov/~lukeb/hiercl.html Elméleti bevezető: http://www.elet.polimi.it/upload/matteucc/Clustering/tutorial_html/hierarchical.html Online bibliográfia: http://iris.usc.edu/Vision-Notes/bibliography/pattern614.html#Iterative,%20Hierarchical%20Clustering%20Techniques