Adatányászat Klaszterezés Szegedi Tudományegyetem 2014. Adatányászat
Mit várhatunk egy klaszterezőtől? Az ojektumok olyan csoportjainak megtalálása, hogy az egy csoportan levő ojektumok hasonlóak lesznek egymáshoz, mint a más csoportan levőkhöz Pl. vásárlói csoportok meghatározása, weoldalak csoportosítása Adatányászat
Formálisaan mit várjunk el egy jó klaszterezéstől? Adott pontok egy S halmaza, melyeken legyen értelmezve d : S S R+ {0} távolság(metrika) f (d, S) klaszterfüggvény S egy Γ particionálását adja vissza Skála invariancia: d, α > 0 f (d, S) = f (αd, S) Gazdagság: f segítségével legyen előállítható S minden particionálása Γ d : f (d, S) = Γ Konzisztencia: f (d, S) = Γ f (d 0, S) = Γ, amennyien d 0 d-nek egy Γ-transzformációja d egy Γ-transzformációja d 0, amennyien a Γ felontás mellett minden (i, j) pontpárra d 0 (i, j) d(i, j), továá d 0 (k, l) d(k, l) az eltérő klaszteree tartozó pontpárokra Adatányászat
Kleinerg lehetetlenségi tétele (2002) Nem adható klaszterező eljárás, amely a skála invariancia, gazdagság és konzisztencia jó tulajdonságaival egyszerre írna Legjo eseten a három tulajdonságól kettőt választhatunk egy klaszterező eljárás tekintetéen Adatányászat
Lehet még ennél is rossza? Dimenzionalitás átka Magas dimenzióan minden pont távolsága hasonló(an magas), nincs értelme közelségről eszélni Mi lesz 1d-en két pont várható távolsága egységnyi hosszúságon? És n-dimenzióan? Nem Euklideszi terek: pontok átlaga nem értelmezhető Adatányászat
Klaszterezés lehetséges csoportosítása Klaszterezés stílusa szerint Hierarchikus klaszterezés: a pontok klasztrestruktúráját klaszterek egymása ágyazott rendszereként adja meg Particionáló klaszterezés: csupán a pontok diszjunkt részhalmazait határozza meg Gráf alapú/távolság alapú klaszterezők Milyen tereken és adattípusokon tud dolgozni? Adatányászat
Hierarchikus klaszterezők Felülről lefele, vagy alulról felfele haladó eljárások Összekötő (linkage) algoritmuscsalád/agglomeratív klaszterezés 1: 2: 3: 4: 5: kezdeten minden pont alkosson egy önálló klasztert while (megállási feltétel nem teljesül) do [Ci, Cj ] := összevonásra legalkalmasa klaszterek Ck = Ci Cj end while a megállási feltétel, valamint az összevonásra legalkalmasa klaszterek definiálásának módosításával tö, változatos viselkedésű algoritmus kapható Adatányászat
Hierarchikus klaszterezés dendrogram Adatányászat
Hierarchikus klaszterezés klaszterek kialakítása Adatányászat
Statégiák Ci és Cj összevonásásra Mi legyen i és j, ha k klaszter közül kell válasszunk (i, j) = arg min1 i,j k,i6=j min(d(ci, Cj )) (i, j) = arg min1 i,j k,i6=j max(d(ci, Cj )) (i, j) = arg min1 i,j k,i6=j r (Ci Cj ), ahol r (C ) = maxx C d(x, centroid(c )) (itt a klaszteren elüli sugarak átlagával is számolhatunk akár) (i, j) = arg min1 i,j k,i6=j d(ci Cj ), ahol d(c ) = maxx,y C d(x, y ) Mi a klasztersugár (r (C )) és átmérő (d(c )) közötti összefüggés? Adatányászat
Lehetséges megállási feltételek Klaszterek számának előre definiálásával Maximum t távolsággal társítható élek ehúzása Akármi, amit a klaszterek összevonási stratégiáihoz rokoníthatunk (pl. az átlagos klaszterátmérők drasztikus növekménye) Nem állunk meg, a teljes fára vágyunk (filogenetikus fák) Adatányászat
Hierarchikus klaszterezés nem Euklideszi tereken Ha az adataink sztringek, melyek távolságát szerkesztési távolsággal mérjük, hogy határozzuk meg klaszterek összevonása után az új klaszter közepét? medoid : C klaszter azon eleme, melyhez képest a töi klaszterelem összességéen a lehető legközele van (pl. átlagos, maximális,... értelemen) Adatányászat
Medoidok Példa ecda aec aecd acd 5 3 3 aecd 2 2 aec 4 Összeg Max Négyzetösszeg acd 11 5 43 aecd 7 3 17 aec 9 4 29 ecda 11 5 45 Adatányászat
Hierarchikus klaszterező hatékonysága Amennyien n pontunk van, az i. lépésen O((n i)2 ) művelettel megoldható két klaszter összevonása Mivel O(n) összevonás lehetséges, ezért O(n3 ) műveletigényű a teljes algoritmus Hogy javítanánk? Páronkénti távolságok meghatározása O(n2 ) Tároljuk ezeket prioritási soran. Mi enne a jó? Az eredeti műveletigény O(n2 log n)-re redukálható Adatányászat
k-közép módszer Nem kapunk hierarchikus struktúrát vissza Jellemzően előre ismertnek veszi a meghatározandó klaszterek k számát Mindössze az adatpontok klaszterközepekhez való rendelését végzi Ehhez megkeresi a legjo klaszterközepeket valamilyen célfüggvény minimalizálása mellett, pl. SSE = k X X k xj µi k2 i=1 xj Ci, ahol µi az i klaszterhez rendelt középpont Adatányászat
k-közép módszer a klaszterközepek meghatározására inicializáljuk a k klaszterközéppontot: µ = [µ1,..., µk ] 2: while (megállási feltétel nem teljesül) do 4: 6: 8: 10: 12: 14: µnew := zeros(k, m) clustersizes := zeros(1, k) for i = 1 to n do c := arg minj xi µj 2 µnew (c) := µnew (c) + xi clustersizes(c) := clustersizes(c) + 1 end for for i = 1 to k do µnew (i) = µnew (i)/clustersizes(i) end for µ = µnew end while Adatányászat
k-közép eljárás prolémái Felteszi az adatan fellelhető csoportok számának előzetes ismeretét Kezdeti kalszterközepekre való érzékenység Nagy klaszterek jogtalan hátránya sorolása Zajos adatokra való érzékenység Szaályos alakú (és nem túl nagy) régiók felismeréséen jó Adatányászat
Megoldási javaslatok a k-közép eljárás prolémáira Valamilyen jósági mérőszám mellett különöző k-k kipróálása mellet egy ésszerű választást végrehajtani Kezdőpontok megfelelő inicializálása µi := x X : µi 6= µj i 6= j-re k klasztere történő hierarchikus klaszterezést követően minden válasszunk az egyes klaszterekől véletlenül egy középpontot Folyamatosan válasszunk új elemeket, hogy azok minimális távolsága a már meghatározott centroidokhoz maximális legyen Algoritmus töszöri végrehajtása, klaszterek összeolvasztása utófeldolgozásként, amennyien szükséges Adatányászat
BFR (Bradley, Fayyad, Reina) algoritmus Erős feltételezés: a d-dimenziós klaszterek egyes dimenziói egymástól független Gauss eloszlásokkal írhatók le A pontokat végigolvassuk, de ahelyett, hogy mindegyiket tárolnánk, azokkal a pontokkal, amelyekről kielégítő valószínűséggel feltételezhető, hogy egy már megkezdett klasztere fog tartozni csak frissítjük a klaszterközép statisztikáját A klaszterközepeket 2d + 1 értékkel írjuk le: klaszterhez rendelt pontok száma, azok egyes dimenziónkénti elemeinek összege, valamint négyzetösszegük Mahalanois távolsággal ecsülhetjük r a már megkezdett 2 Pd xi ci klaszterközepektől vett távolságot formáan. i=1 σi Most miért így? Adatányászat
Élei lehetnek címkézettek (pl. ellenség, arát), továá súlyozottak (pl. telefoneszélgetés) Megjelenési formái Ismeretségi, társszerzőségi gráf (Erdős-Bacon szám) Levelezési gráf: G = (V, E ), hogy (x, y ) E x, y V (írt(x, y ) írt(y, x)) Mi lenne, ha az utolsó helyén állna? Valami egzotikusa: páros (k-részű) gráfok ( social ookmarking ) A hagyományos klaszterező eljárások nem (vagy legaláis csak korlátozottan) működnek esetüken Okai Skálázódás (hiánya) Két csúcs között lévő kapcsolat mértékének számszerűsítése Címkézett élek kezelése Adatányászat
Ilyenek a szociális hálózatok? Nem mondhatnánk. Ez sokkal inká egy véletlen (Erdős-Rényi) gráf Adatányászat
Példa szociális hálózat Zachary karate klu gráfja Adatányászat
Kisvilággráfok sajátosságai fokszámeloszlás lineáris skálán 0.3 0.25 0.2 0.15 0.1 5 10 2 2 4 6 8 10 12 Adatányászat 14 16
Kisvilággráfok sajátosságai fokszámeloszlás log-log skálán 10 0.6 10 0.8 10 1 10 1.2 10 1.4 100 100.2 100.4 100.6 100.8 Adatányászat 101 101.2
Kisvilággráfok sajátosságai fokszámeloszlás egy valós nagyságú példán 10 1 10 2 10 3 10 4 10 5 100 101 102 103 Adatányászat
Kisvilággráfok sajátosságai Hatványeloszlás Fokszámok eloszlása hatványeloszlást követ (valami arátságos eloszlás helyett) p(x) exp (x µ)2 helyett p(x) x1β Milyen hatása lesz ennek log p(x) alakulására? Adatányászat
Kisvilággráfok sajátosságai Kis átmérő d(g ) = 2 V ( V 1) P u,v V u v log ( V ) Kis átmérő: alacsony a pontpárok közötti átlagos távolság (Milgram, Karinthy) Adatányászat
Kisvilággráfok sajátosságai Klaszterezettség, összefüggőség ha A csúcs szomszédja B és C is, akkor B és C csúcsok véletlennél nagyo valószínűséggel szomszédok X G = (V, E ) csúcsának klaszterezettsége: között menő élek száma c(x ) = 2 X Xszomszédjai szomszédjai ( X szomszédjai 1) G klaszterezettsége: a csúcsok klaszterezettségének átlaga Hogy jelenik meg mindez a szomszédsági gráfan? Adatányászat
Mi is a célunk tulajdonképp? Gráfok vágásai Egy G = (V, E ) hasonlósági gráf csúcsainak olyan particionálására (S T = S T = V ) vágyunk, ami minimális él eltávolításával (Cut(S, T )) jár minimális vágás továá közel azonos méretű részhalmazokat eredményez ) Cut(S,T ) Normalizált vágás = Cut(S,T Vol(S) + Vol(T ), ahol Vol(S), illetve Vol(T ) azon élek számát adja meg, amely legalá egy csúcsa S-en, illetve T -en található Laplace mátrix: L = D A, ahol D diagonális mátrix dii eleme a gráf i csúcsának fokszámát tartalmazza, aij pedig 1, ha i és j csúcsok összeköttetésen állnak, különen 0 Állítás: L szimmetrikus és pozitív szemidefinit. Biz.: tálán P V P V x Lx = 21 i=1 j=1 aij (xi xj )2 következménye: L sajátértékei valósak, és 0 Adatányászat
Spektrálklaszterezés alapja és a Rayleigh-Ritz tétel Lehet-e λ1 = 0? Ha igen, mikor? Lehet-e λi = 0, i > 1? Ha igen, mikor? P V P V Végső soron x Lx = 21 i=1 j=1 aij (xi xj )2 minimalizálása a cél, úgy, hogy k x k= 1, és x ~1 Rayleigh-Ritz tétel: min xx Mx x = λ1, valamint x Mx arg min x x = x1, ahol λ1 M legkise sajátértéke, x1 -pedig a hozzátartozó sajátvektor Továá minden sajátvektorra xi = arg minx x1,...,xi 1 x Mx x x Mit von mindez az általános eredmény maga után a Laplace mátrixra nézve? Adatányászat
Spektrálklaszterezés ~ Minimalizálni akarjuk xx Lx x -t, hogy k x k= 1 és x 1 ez épp x2, az ún. Fiedler-vektor lesz (Rayleigh-Ritz tétel értelméen) Egy lehetséges (korántsem egyedüli) forgatókönyv, hogy a pontokat kettéválasztjuk a pozitív és negatív értéket felvevő sajátvektorkomponenseknek megfelelően Egyáltalán iztosak lehetünk enne, a Fiedler-vektor fog > 0 és < 0 elemeket tartalmazni egyszerre? A 0 mentén való szeparáció helyett hagyatkozhattunk volna a mediánra is, vagy továi sajátvektorokra is akár A proléma visszavezethető még töek között: minimális vágásra, véletlen sétákra,... Adatányászat
Girvan-Newman algoritmus (a, ) él köztessége = azon pontpárok száma, amelyek között menő legrövide út tartalmazza (a, ) élet A magas érték jó vagy rossz? A gráf minden X pontjáól indulva határozzuk meg (X, ) csúcspárok köztességét (szélességi ejárás) A szélességi ejárás után lássuk el az egyes csúcsokat azokkal az értékekkel, hogy a gyökéről hányféle legrövide út vezet hozzájuk A szélességi ejárás azonos szintjén elüli élek nem lehetnek részei a gyökérelemől induló legrövide utaknak Ellenen a töi, ún. DAG-élek legalá egy legrövide úton fekszenek A gyökérhez 1 értéket társítva haladjunk szintenként, és egy gyerekcsúcs értéke legyen a szülei értékeinek összege Adatányászat
Girvan-Newman algoritmus folytatás Az aktuális X gyökérelem viszonyáan lássuk el a gráf egyes éleit köztességértékekkel (alulról felfele haladva) Minden élhez határozzuk meg, hogy adott X gyökérelem viszonyáan a legrövide utak mekkora hányada megy rajtuk keresztül A levelekhez 1 értéket társítunk Nem-levél csúcsok := 1 + kimenő DAG élek értékeinek összege Egy csúcs köztességének felterjesztése során a szülők felé vezető éleken a szülők a hozzájuk X -ől vezető legrövide utak arányáan osztozkodnak Ismételjük az eljárást, hogy minden csúcs legyen egyszer gyökérelem, az élek által felvett köztességértékeket pedig összegezzük az iterációk során (megjegyzés: minden élt kétszer számoltunk, így indokolt lehet az élek végső értékeinek 2-vel való osztása) Adatányászat
Köztesség alapú particionálás Az élekhez társított köztességértékeket tekinthetjük egyfajta távolságnak (még ha metrikának nem is) Iteratív módon összevonhatjuk a legkise köztességű élek végén lévő pontokat Eljárhatunk fordítva is: az eredeti gráfot a legnagyo köztességértékű éleket elhagyva komponensekre onthatjuk Adatányászat
A korái ismereteink is kapóra jönnek Véletlen séták (extrémmód) Perszonalizált PageRank (PRP) segítségével Elfogult teleportálás: (1 β) valószínűséggel induljunk újra Rendezzük a csúcsokat PRP szerint és vegyük a normalizált vágások értékeit a k legmagasa PRP értékű csúcsok mentén A normalizált vágások lokális minimumai tekinthetők klaszterhatároknak 1.2 1.1 7 1 Normalized Cut 0.9 6 0.8 4 0.7 5 1 0.6 2 10 8 0.5 3 0.4 0.3 1 2 3 4 5 6 Personalized PageRank 7 8 9 Adatányászat 9
A korái ismereteink is kapóra jönnek Gyakori elemhalmazok Gyakori elemhalmazok keresése páros gráfokon Kosarak:?, Termékek:? Adatányászat