České vysoké učení technické v Praze Fakulta informačních technologií Katedra teoretické informatiky Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-ADM Algoritmy data miningu (2010/2011) Přednáška 12: Shlukování Pavel Kordík, FIT, Czech Technical University in Prague
Osnova dnešní přednášky Metriky Hiearchické shlukování Algoritmy Dendrogramy K-means SOM Gaussovská směs MI-ADM Algoritmy data miningu (FIT CVUT)
Shluková analýza Máme data, neznáme kategorie (třídy) Chceme najít množiny podobných vzorů, které jsou zároveň nepodobné vzorům z ostatních množin. Řešíme optimalizační problém! Co jsou naše neznámé? počet shluků přiřazení dat (vzorů) do shluků MI-ADM Algoritmy data miningu (FIT CVUT)
Metrika, Euklidovská vzdálenost Je třeba nějak určit podobnost vzorů jejich vzdálenost Vzdálenost musí splňovat určité podmínky: 1. d(x,y) > 0. 2. d(x,y) = 0 iff x = y. 3. d(x,y) = d(y,x). 4. d(x,y) < d(x,z) + d(z,y) (trojúhelníková nerovnost ). Je Euklidovská vzdálenost metrika? Dva body v n-rozměrném prostoru: Euklidovská vzdálenost P a Q = MI-ADM Algoritmy data miningu (FIT CVUT)
Manhattonská vzdálenost Jak budeme počítat vzdálenost dvou cyklistů v Manhattonu? M ( P ) p n qn, Q = p1 q1 + p2 q2 +... + MI-ADM Algoritmy data miningu (FIT CVUT)
Kosinová vzdálenost Je invariantní vůči natočení p θ p.q q q dist(p, q) = θ = arccos(p.q/ q p ) MI-ADM Algoritmy data miningu (FIT CVUT)
Editační vzdálenost Pro určení vzdálenosti např. dvou slov Počítá se jako počet smazání (vložení) písmene, potřebný k transformaci jednoho slova na druhé. MI-ADM Algoritmy data miningu (FIT CVUT)
Shluky, reprezentanti Výsledky ankety, proč lidé pijí alkohol Reprezentant shluku = typický představitel Tradice Sociální nutnost Individualita Úkolem shlukové analýzy je najít v datech shluky, případně jim přiřadit typické reprezentanty MI-ADM Algoritmy data miningu (FIT CVUT) Postavení
Shluková analýza III Klasická shluková analýza (Cluster Analysis) je nástroj pro disjunktní rozklad množiny vzorů ze vstupního prostoru R n do H > 1 tříd (shluků). Shluková analýza požaduje maximální podobnost vzorů v rámci jedné třídy a současně maximální nepodobnost vzorů různých tříd. MI-ADM Algoritmy data miningu (FIT CVUT)
Jak byste problém řešili vy? Jak najít shluky? spojujeme vždy 2 nejpodobnější vektory MI-ADM Algoritmy data miningu (FIT CVUT)
Metody vyhodnocení vzdálenosti shluků Metoda nejbližšího souseda single linkage vzdálenost shluků je určována vzdáleností dvou nejbližších objektů z různých shluků Metoda nejvzdálenějšího souseda complete linkage zdálenost shluků je určována naopak vzdáleností dvou nejvzdálenějších objektů z různých shluků Centroidní metoda centroid linkage vzdálenost shluků je určována vzdáleností jejich center Metoda průměrné vazby average linkage vzdálenost shluků je určována jako průměr vzdáleností všech párů objektů z různých shluků Wardova metoda Ward slinkage vzdálenost shluků se určí jako suma čtverců vzdáleností jejich center MI-ADM Algoritmy data miningu (FIT CVUT)
Single linkage Ze shluku vždy vybírám toho nejbližšího A B MI-ADM Algoritmy data miningu (FIT CVUT)
Complete linkage Ze shluku vždy vybírám toho nejvzdálenějšího A B MI-ADM Algoritmy data miningu (FIT CVUT)
Centroid linkage Reprezentantem shluku je centroid A B MI-ADM Algoritmy data miningu (FIT CVUT)
Kolik jsme našli shluků? Jiný pohled na náš algoritmus: Na začátku každý vektor shluk Spojování vektorů do shluků Na konci jeden velký shluk Počet shluků? Dendrogram => Algoritmus se jmenuje: Hierarchické shlukování Obrázek je ilustrační, neodpovídá přesně datům z minulého slajdu MI-ADM Algoritmy data miningu (FIT CVUT)
Záleží na tom, kde řízneme dendrogram Co se děje, když řežeme dendrogram na nižší/vyšší úrovni? Kam patří nový vektor? Problém? Musím počítat vzdálenosti ke všem vektorům! MI-ADM Algoritmy data miningu (FIT CVUT)
Obsahují data opravdu shluky? Vypočteme CPCC (Cophenetic Correlation Coeffitient) CPCC je normovaná kovariance vzdáleností v původním prostoru a v dendrogramu Pokud je hodnota CPCC menší než cca 0.8, všechny instance patří do jediného velkého shluku Obecně platí, že čím vyšší je kofenetický koeficient korelace, tím nižší je ztráta informací, vznikající v procesu slučování objektů do shluků MI-ADM Algoritmy data miningu (FIT CVUT)
Hierarchické shlukování Pseudokód algoritmu hierarchického shlukování c je požadovaný počet shluků 1. begin initialize c, c n, Di {xi} i=1,...,n 2. do c c +1 3. vypočteme matici vzdáleností 4. najdeme nejbližší shluky Di a Dj 5. sloučíme shluky Di a Dj 6. until c=c 7. return c shluků 8. end procedura skončí, když je dosaženo požadovaného počtu shluků když c=1, dostaneme dendogram složitost O(cn 2 d) a typicky n>>c MI-ADM Algoritmy data miningu (FIT CVUT)
Algoritmus K-středů (K-means) Jak se vyhnout výpočtu všech vzájemných vzdáleností? Budu počítat vzdálenosti od reprezentantů shluků. Počet reprezentantů je výrazně menší než počet instancí. Nevýhoda: musím dopředu určit počet reprezentantů (K). MI-ADM Algoritmy data miningu (FIT CVUT)
K-means Reprezentanti - zde se jmenují středy (centroidy) Střed shluku c vypočteme: Co to znamená? Jak se sčítají vektory? r µ(c) 1 = c x r c r x x 1 x 1 + x 2 přeškálování x 2 Dejme tomu, že známe počet shluků (centroidů), jen hledáme jejich pozici. MI-ADM Algoritmy data miningu (FIT CVUT)
K-means applet MI-ADM Algoritmy data miningu (FIT CVUT) http://www.kovan.ceng.metu.edu.tr/~maya/kmeans/index.html
Jak K-means pracuje? Náhodně inicializuj k centroidů. Opakuj dokud algoritmus nezkonverguje: fáze přiřazení vektorů: každý vektor x přiřaď shluku X i, pro který vzdálenost x od µ r i (centroid X i ) je minimální fáze pohybu centroidů: oprav pozici centroidů podle aktuálních vektorů ve shlucích r 1 r µ = i(x i) x j X r i x j X i MI-ADM Algoritmy data miningu (FIT CVUT)
K-means vlastnosti Lokálně minimalizujeme energii Co to znamená? K l = 1 x X i i Pro K shluků sečti vzdálenost všech vektorů daného shluku od jeho centroidu Konverguje vždy do globálního minima energie? Ne, často do lokálních minim. Závislost na inicializaci centroidů. MI-ADM Algoritmy data miningu (FIT CVUT) l x µ l 2
Algoritmus k-středů Pseudokód algoritmu K-středů vstup: n vzorů a počet výsledných středů c výstup: výsledné středy µ 1,..., µ c algoritmus: 1. begin initialize n, c, µ1,..., µc 2. do klasifikuj n vzorů k jejich nejbližšímu µi 3. přepočti µi 4. until žádný µi se nezměnil 6. return µ1,..., µc 7. end složitost: O(ndcT) kde d je dimenze vzorů a T je počet iterací MI-ADM Algoritmy data miningu (FIT CVUT)
Dětský k-means pseudokód Once there was a land with N houses... One day K kings arrived to this land.. Each house was taken by the nearest king.. But the community wanted their king to be at the center of the village, so the throne was moved there. Then the kings realized that some houses were closer to them now, so they took those houses, but they lost some.. This went on and on..(2-3-4) Until one day they couldn't move anymore, so they settled down and lived happily ever after in their village... MI-ADM Algoritmy data miningu (FIT CVUT)
Počet středů (shluků) Pro K-means je třeba K určit předem to je těžké když o datech nic nevíme Vymyslete algoritmus, který bude počet shluků odvozovat automaticky z dat. Např. Leader-follower strategie Problém určit univerzální hodnotu prahu MI-ADM Algoritmy data miningu (FIT CVUT)
Jaké použít kritérium pro volbu K? Minimum energie? K x l = 1 x X i W ( K ) = µ l i l 2 Nevhodné, klesá k nule pro K=počet instancí. Lépe najít maximum funkce: H ( K ) = W ( K ) W W ( K ( K + 1) + 1) MI-ADM Algoritmy data miningu (FIT CVUT)
Silhouette graf obrysů shluků Iris data, pro každou instanci vypočti jistotu zařazení do shluku s(i) e <-1,1> s( i) = b( i) a( i) max{ a( i), b( i)} kde a(i) je průměrná vzdálenost instance i od instancí shluku, do kterého je zařazena b(i) je průměrná vzdálenost instance i od instancí nejbližšího shluku MI-ADM Algoritmy data miningu (FIT CVUT)
Hodnocení shluknutí pomocí Silhouette Který výstup K-means je lepší? Ten, který má lepší průměr hodnoty s(i) pro všechny instance. Ideálně na testovacích datech. MI-ADM Algoritmy data miningu (FIT CVUT)
SOM SOM = Self Organizing Maps, Prof. Teuvo Kohonen, Finsko, TU Helsinki, 1981, od té doby se eviduje několik tisíc vědeckých literárních odkazů. Původní aplikace: fonetický psací stroj.
Kompetiční učení Jedinci (elementy, neurony) spolu soutěží Příklad bezdomovci a kontejnery Pamatuji si, kde byla dobrá kořist Vyhraje ten, kdo přijde dřív Musím být poblíž, aby mě někdo nepředběhl Když se dozvím o novém kontejneru, a mám šanci ho vybrat, musím se přesunout blíže k němu Kdo se to nenaučí, umře hlady Vede na teritoriální uspořádání, reflektující rozmístění kontejnerů a jejich využívanost
Kompetiční učení Přírodou inspirované Nepotřebuji žádného arbitra, který by jedincům stále říkal, kam mají jít učení bez učitele Jedinci se učí z příkladů Systém se v průběhu času organizuje sám samoorganizuje A teď to aplikujeme na shlukovou analýzu
Shluková analýza a kompetice Prozradí nám něco pozice bezdomovců o rozmístění kontejnerů? Co to je shluk? Množina bodů, které jsou si blízko a mají daleko k ostatním. Co to znamená daleko? Viz metriky Bezdomovec reprezentant shluku kontejnerů
Shluky, reprezentanti Obrázek si můžeme představit jako teritoria čtyř bezdomovců - veteránů Každý bezdomovec je reprezentant shluku kontejnerů Sever Západ Východ Jak simulovat pohyb bezdomovců? K-means? Jih
K-means http://www.neuroinformatik.ruhr-uni-bochum.de/vdm/research/gsn/demogng/gng.html
Jiný pohled na K-means Středy (reprezentanti) soutěží o data Používá strategii vítěz bere vše (Winner Takes All) Všechno jídlo zkonzumuje bezdomovec, který ke kontejneru dorazí první Chyba se počítá jako Nebo také E= 1 2 K N i= 1 j= 1 1 WTA K = 1 x l x X i E = µ, µ ) µ Kde funkce 1 WTA je 1, pokud je i tý střed nejblíže j tému vzoru, 0 jinak Tato chyba se také jmenuje kvantizační ( x j i x j i i l l 2
Co to je vektorová kvantizace? Cílem kvantizace vektorů (Vector Quantization) je aproximovat hustotu pravděpodobnosti p(x) rozložení reálných vstupních vektorů x є R n pomocí konečného počtu reprezentantů w i є R n. Tedy přesně to, o co se snažíme.
Problém se komplikuje Co se stane, když bezdomovec nestihne kontejner vybrat celý? Zbytek dostanou nejbližší Neplatí vítěz bere vše! Okolí = definuje vzdálenost, ze které se ještě vyplatí přijít. 2 nd 1 st Velmi malé okolí - vítěz bere vše Velmi velké okolí - komunismus 3 rd
Neuronový plyn (perestrojka ) Název berte z rezervou, nepracuje se s neurony, ale spíše s agenty (středy). Pseudokód: Náhodně inicializuj středy, zvol velké okolí Předlož vektor x j Pro všechny středy - Spočítej pořadí vzdáleností od vektoru - Uprav vzdálenosti (x j -µ i ) v závislosti na pořadí a velikosti okolí - (exp) - Přemísti středy opakuj (s menším okolím)
Neuronový plyn
Problém se stále komplikuje Co se stane, když se vítězný bezdomovec rozdělí jen s kamarády? Okolí již neudává vzdálenost v původním prostoru dat, ale v prostoru kamarádství. 1 st Velmi malé okolí - individualisté Velmi velké okolí - hippies 2 nd 3 rd
Samoorganiující se mapa (SOM) Kamarádství pro jednoduchost znázorněno mřížkou
Jak se liší od k-means? Existence okolí! g(x) + + - 0 - x Používá se 1. při učení, 2. někdy k určování vítěze.
SOM inspirace Ne bezdomovci, ale mozek. Řídící centra souvisejících orgánů spolu sousedí.
SOM architektura 1/3 Representa nt Typicky: 2D pole reprezentantů (také se jim nepřesně říká neurony)
SOM architektura 2/3 2D- uspořádání (do mřížky) je nejtypičtější. Neurony lze ale uspořádat lineárně (1Ddost často), nebo prostorově (3D- velmi výjimečně). Uspořádání slouží k tomu, aby měl neuron definované sousedy ve svém okolí. Kohonenovo doporučení: obdélníková SOM!
SOM architektura 3/3 Každý neuron má vektor vah w, vektory se porovnávají se vstupním vektorem x, vybírá ten se nejpodobnější BMU Neuron, který nejlépe odpovídá (BMU) je reprezentant vektoru přiloženého na vstup
Timo Honkela (Description of Kohonen's Self-Organizing Map)
SOM neuron 1/2 Vyhodnocuje podobnost předloženého vstupní-ho vektoru od (ve vahách w i ) zapamatovaného, reprezentanta, referenčního vektoru. Podobnost = např. Eukleidovská vzdálenost: { } i * j = arg min x w, i SOM neuron je tedy reprezentantem shluku.
Učení Kohonenovy sítě 1/3 Nezapomeňte: učicí algoritmus uspořádává neurony v mřížce tak, aby reprezentovaly předložená vstupní data. Otázka k přemýšlení: co se děje s vahami neuronů v průběhu času?
Učení Kohonenovy sítě 2/3 1. Inicializace, 2. předložení vzoru, 3. výpočet vzdálenosti, 4. výběr nejpodobnějšího neuronu, 5. přizpůsobení vah, w ( t + 1) = w ( t) + η( t) x ( t) w ( t) 6. goto 2. [ ] ij ij i ij Rozumíte vzorci? Váhy jakých neuronů se přizpůsobují?
Příklad 0.52 X = 0.12 0.27 0.42 0.43 W 1 = W 2 = 0.81 W 3 = 0.70 0.21 d d d 2 2 1 ( x1 w11 ) + ( x2 w21) = = (0.52 0.27) + (0.12 0.81) = 0. 73 2 2 2 ( x1 w12 ) + ( x2 w22 ) = = (0.52 0.42) + (0.12 0.70) = 0. 59 2 2 3 ( x1 w13 ) + ( x2 w23) = = (0.52 0.43) + (0.12 0.21) = 0. 13 Vyhrál třetí neuron je nejblíže 2 2 2 2 2 2
Příklad Přiblížím ho ke vzoru [ ] ( + 1) = ( ) + η( ) ( ) ( ) w t w t t x t w t ij ij i ij w13 = η (t) ( x1 w13 ) = 0.1(0.52 0.43) = 0.01 w23 = η (t)( x2 w23) = 0.1(0.12 0.21) = 0.01 W3 ( p + 1) = W3 ( p) + W3 ( p) = 0.43 0.21 + 0.01 0.01 = 0.44 0.20 Upravil jsem váhy pouze BMU vítěznému neuronu Zde tedy vítěz bere vše!
Takhle to vypadá, když updatuji také okolní neurony Slide by Johan Everts
Učení Kohonenovy sítě 3/3 Velkou roli při učení hraje okolí: topologické uspořádání, vzdálenost sousedů. Okolí se v čase mění: jeho průměr s časem klesá (až k nulovému). změna se realizuje sdruženým učicím parametrem η(t).
Příklad okolí: Gaussovské η ij * ( t) = α( t) r * j. exp 2 2 σ r i ( t) 2, Člen α(t) představuje učicí krok, druhý člen pak tvar okolí (v tomto případě Gaussova křivka s proměnným tvarem v čase).
Příklad okolí: Gaussovské Distance related learning Slide by Johan Everts
Visualizace: klasická SOM Problém jak zobrazit pozici neuronů (reprezentantů) Dimenze vah = dimenze vstupního vektoru Potřebuji zobrazit ve 2D, jak? U-matice, analýza hlavní komponenty (PCA), Sammonova nelineární projekce.
U-matice (Unified distance) Matice vzdáleností mezi váhovými vektory jednotlivých neuronů, typicky se vizualizuje, vzdáleností vyjádřeny barvou světlá barva = malá vzdálenost. Zobrazuje strukturu vzdáleností v prostoru dat. Poloha BMU odráží topologii dat. Barva neuronu je vzdálenost je váhového vektoru od všech ostatních váhových vektorů Tmavé váhové vektory jsou vzdáleny od ostatních datových vektorů ve vstupním prostoru. Světlé váhové vektory jsou obklopeny cizími vektory ve vstupním prostoru. Kopce oddělují clustery (údolí).
Příklad U-matice Data: Neurony Vzdálenosti mezi sousedními neurony
P-matrix (Pareto density estimation) Zobrazuje počet datových vektorů ze vstupního prostoru, které patří do koule kolem jeho váhového vektoru (s poloměrem nastaveným podle Paretova pravidla). Odráží hustotu dat. Neurony s velkou hodnotou jsou umístěny do hustých oblastí vstupního prostoru. Neurony s malou hodnotou jsou osamělé ve vstupním prostoru. údolí oddělují clustery ( náhorní plošiny ). Doplňuje informace získané z U-matice.
U*-Matrix Kombinace U-Matice a P-Matice Je to U-matice, korigovaná hodnotami v P- matici. Vzdálenosti mezi sousedními neurony (neurony a a b v mřížce) jsou vypočítány z U-matice a jsou váženy hustotou vektorů kolem neuronu a.
Nevýhody UMAT, PMAT, Zobrazují jen vzdálenosti mezi sousedy Při novém naučení sítě na stejných datech můžou vypadat jinak (můžou být např otočeny o 90 stupňů) Nejsou intuitivně interpretovatelné, pokud nevíte co přesně je barvou kódováno. Jak ale zobrazit n-rozměrná data ve 2D, abychom pokud možno zachovali originální vzdálenosti?
PCA nebo LDA Nové souřadnice vzniknou jako lineární kombinace původních dimenzí Algoritmus se jmenuje Analýza hlavní komponenty (Principal Component Analysis) špatná dobrá
Sammonova projekce Mějme N vektorů v L-dimenzionálním prostoru, které označme x i, i = 1,..., N. K nim nechť patří N dvoudimenzionálních vektorů označených y i, i = 1,..., N. Označme dále vzdálenost mezi vektory x i a x j v L-dimenzionálním prostoru D ij a vzdálenost odpovídajících si vektorů y i a y j symbolem d ij. Potom Sammonova projekce mapuje vstupní prostor na výstupní na základě minimalizace této chybové funkce: E sam = N 1 N i< j Dij i< j ( d D ) ij ij D ij 2..
Sammon leképezés Távolságtartó leképezés adatpontok közötti távolságok A Sammon stress célfüggvényt minimalizálja Nemlineáris optimalizálási feladat N(N-1)/2 távolság kiszámítása minden iterációs lépésben E = N 1 N i= 1 j= i+ 1 N 1 1 d( i, j) N i= 1 j= i+ 1 ( * d( i, j) d ( i, j) ) d( i, j) x 1 y 2 2 x 3 d( i, j) d * x 2 ( i, y 1 j)
Aplikace SOMU http://www.generation5.org/content/2007/kohonenimage.asp
Websom Podobnost stránek
ReefSOM http://www.brains-mindsmedia.org/archive/305
SOM vlastnosti VQ vektorová kvantizace, více vektorů se mapuje do jednoho neuronu (jeho váhového vektoru), jak přesně? -> kvantizační chyba. Komprese dimenze vstupního prostoru. Zachování topologie dat sousední (ve vstupním prostoru) vektory se mapují do sousedních (v mřížce) neuronů, jak kvalitně? -> topografická chyba. SOM má energetickou funkci, kterou minimalizuje -> zkreslení. Y336VD Vytěžování dat
Zkreslení SOM Průměrná vzdálenost mezi každým datovým vektorem a jeho BMU. Určuje přesnost mapování (vektorové kvantizace) už známe c i je váhový vektor neuronu m j je vektor dat h bij je funkce okolí Y336VD Vytěžování dat
Topografická chyba SOM Počet vstupních vektorů, pro které vítězný neuron a druhý vítězný neuron nejsou sousedi v mřížce. u(ci) je 1, když sousedi nejsou, jinak 0 V procentech počet vzorků, u nichž nebyla zachována topologie. Y336VD Vytěžování dat
Software: Zajímavý a hlavně použitelný SW SOM_PAK: http://www.cis.hut.fi/research/som_pak http://service.felk.cvut.cz/courses/36nan + český návod na ovládání Matlab SOM toolbox http://www.cis.hut.fi/projects/somtoolbox/ SOMPAK addon http://neuron.felk.cvut.cz/~jurikm Zooming SOM http://service.felk.cvut.cz/courses/36nan TKM, RSOM http://service.felk.cvut.cz/courses/36nan
Shlukování založené na modelech Např: Modelování hustoty pravděpodobnosti gaussovskou směsí (ukážeme si nyní) Model založený na samoorganizující se mapě (příští přednáška) MI-ADM Algoritmy data miningu (FIT CVUT)
Gaussovská směs Mnoharozměrná gaussovská hustota pravděpodobnosti 1D gaussovská funkce g ( x b) 2c ( x) = ae Vícedimenzionální směs 2 2 M a C? normalizace - pravděpodobnost MI-ADM Algoritmy data miningu (FIT CVUT) vážený průměr K gaussovek
Směs gausovských rozdělení M k a C k počítáme např. pomocí EM algoritmu http://www.neurosci.aist.go.jp/~akaho/mixtureem.html Každá gaussovka jeden shluk předpokládá normální rozdělení dat ve shluku MI-ADM Algoritmy data miningu (FIT CVUT)
K-Means a EM algoritmus K-means je speciální případ obecnější procedury nazývané Expectation Maximization (EM) algoritmus. Expectation: Použij aktuální parametry (a data) k rekonstrukci černé skříňky Maximization: Použij černou skříňku a data ke zpřesnění parametrů http://en.wikipedia.org/wiki/expectation-maximization_algorithm MI-ADM Algoritmy data miningu (FIT CVUT)
Aplikační oblasti shlukové analýzy Hledání podobností v datech Určování významnosti proměnných Detekce odlehlých instancí Redukce dat MI-ADM Algoritmy data miningu (FIT CVUT)
Demo Shlukování studentů FIT MI-ADM Algoritmy data miningu (FIT CVUT)