Adatányászat Klaszterezés Szociális hálózatok Szegei Tudományegyetem 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+ {} távolság(metrika) f (d, S) klaszterfüggvény S egy Γ particionálását adja vissza Skála invariancia: d, α > 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, S) = Γ, amennyien d d-nek egy Γ-transzformációja d egy Γ-transzformációja d, amennyien a Γ felontás mellett minden azonos klaszteren lévő (i, j) pontpárra d (i, j) d(i, j), továá d (k, l) d(k, l) az eltérő klaszteree tartozó pontpárokra Adatányászat
Kleinerg lehetetlenségi tétele (22) 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 a legtö pont távolsága hasonló(an magas), nincs különöse értelme közelségről eszélni 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 klaszterstruktú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 kezdeten minden pont alkosson egy önálló klasztert while (megállási feltétel nem teljesül) do : [Ci, Cj ] := összevonásra legalkalmasa klaszterek 4: Ck = Ci Cj 5: end while 1: 2: 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 (xi Ci, xj Cj ) (i, j) = arg (i, j) = arg (i, j) = arg (i, j) = arg min min min(d(xi, xj )) P P 1 ( Ci C xi xj d(xi, xj )) j min r (Ci Cj ), ahol r (C ) = max d(x, µc ) min d(ci Cj ), ahol d(c ) = max d(x, y ) 1 i,j k,i6=j 1 i,j k,i6=j 1 i,j k,i6=j 1 i,j k,i6=j x C x,y C 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 /klasztroid : 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 ecda 4 2 5 ecda aec aecd acd Összeg 11 9 7 11 aec 4 2 Max 5 4 5 aecd 2 2 acd 5 Négyzetösszeg 45 29 17 4 Adatányászat
Medoidok Példa Különöző aggregációk (összeg/max/négyzetösszeg) alkalmazása különöző medoidokra vezethet A B C D A 1 5 B 4 A B C D Összeg 9 1 11 14 C 1 4 6 D 5 6 Max 5 4 6 6 Négyzetösszeg 5 4 5 7 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(n ) műveletigényű n P 2 a teljes algoritmus ( i 2 = n + n2 + n6 = O(n )) i=1 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 (centroid) Érdekesség: Gaussian Mixture modell közeli rokona Expectation Maximization 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: 1: 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
A k-közép eljárás illusztráció: 1. lépés Iteration numer 1 6 5 4 2 1-2 2 4 6 Adatányászat 8 1
A k-közép eljárás illusztráció: 9. lépés Iteration numer 9 6 5 4 2 1-2 2 4 6 Adatányászat 8 1
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 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 s a már megkezdett 2 d P xi µi klaszterközepektől vett távolságot formáan. σi i=1 Most miért így? Adatányászat