09.09.2014 Views

Shlukování - eAMOS

Shlukování - eAMOS

Shlukování - eAMOS

SHOW MORE
SHOW LESS

Transform your PDFs into Flipbooks and boost your revenue!

Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.

DATA MINING<br />

SHLUKOVÁ ANALÝZA


Shluková analýza<br />

• podobné jako klasifikace<br />

• třídy nejsou dané<br />

• hledají se přirozené shluky dat (clusters)<br />

• odkrývání přirozené struktury dat


Shluk – cluster – co to je<br />

• a number of similar things growing together or of things or<br />

persons collected or grouped closely together: BUNCH.<br />

• two or more consecutive consonants or vowels in a segment<br />

of speech.<br />

• a group of buildings and esp. houses built close together on<br />

a sizable tract in order to preserve open spaces larger than<br />

the individual yard for common recreation.<br />

• an aggregation of stars, galaxies, or super galaxies that<br />

appear close together in the sky and seem to have common<br />

properties (as distance).<br />

WEBSTER dictionary


<strong>Shlukování</strong><br />

• Forma reprezentace dat, při které dochází za cenu jisté ztráty<br />

informace ke snížení objemu relevantních dat<br />

• Zpracovávaná data lze obvykle reprezentovat jako množinu X<br />

objektů, z nichž každý obsahuje stejnou množinu A atributů.<br />

Podle hodnot vybraných atributů jsou data dále<br />

zpracovávána<br />

• Speciálním případem shlukování je histogram (každý prvek<br />

představuje jeden shluk)<br />

• <strong>Shlukování</strong> netvoří samostatnou oblast, ale spadá do více<br />

oblastí vědy, jako je například matematika, statistika,<br />

numerická analýza či umělá inteligence


Shluk<br />

Skupina objektů, které<br />

• jsou podobné<br />

• souvisejí spolu (jsou spolu nějak svázány)<br />

• liší se od objektů z jiných skupin<br />

Minimální<br />

vzdálenosti mezi<br />

objekty uvnitř shluku<br />

Mezishlukové<br />

vzdálenosti<br />

maximální


Použití<br />

• biologie (klasifikace zvířat a rostlin)<br />

• meteorologie<br />

• medicína<br />

• marketing<br />

• pojišťovnictví<br />

• vyhledávání dokumentů<br />

Srážková mapa ČR


Znázorňování shluků<br />

Kolik shluků rozlišíme 2<br />

6 shluků<br />

2 shluky<br />

4 shluky


Typy shlukování<br />

<strong>Shlukování</strong> – vytváření množiny shluků<br />

• hierarchické shlukování – shluky jsou hierarchicky<br />

uspořádány<br />

• rozdělovací (přihrádkové) shlukování – objekty (všechny)<br />

jsou roztříděny (rozděleny) do jednotlivých přihrádek<br />

• pravděpodobnostní shlukování – objekty jsou do skupin<br />

rozděleny dle pravděpodobnosti


Rozdělené nepřekrývající se shluky<br />

Původní objekty<br />

Vyznačení shluků


Hierarchické shlukování<br />

p1<br />

p3<br />

p4<br />

p2<br />

p1 p2 p3<br />

p4<br />

Tradiční hierarchické shlukování<br />

Tradiční dendrogram<br />

p1<br />

p3<br />

p4<br />

p2<br />

p1 p2<br />

p3<br />

p4<br />

Netradiční hierarchické shlukování<br />

Netradiční dendrogram


Pravděpodobnostní shlukování<br />

Pro každou instanci je určena pravděpodobnost příslušnosti do<br />

shluku<br />

Instance C 1 C 2 C 3<br />

x 1 0.3 0.2 0.5<br />

x 2 0.7 0.3 0.3<br />

x 3 0.4 0.8 0.3<br />

x 4 0.2 0.1 0.3<br />

x 5 0.3 0.3 0.6<br />

…<br />

x N 0.1 0.5 0.4


Další varianty shlukování<br />

• nepřekrývající se (exkluzivní) a překrývající se shlukování<br />

• fuzzy shlukování (opak je non-fuzzy)<br />

– objekty patřící do každého shluku mají stanovenu váhu z int. <br />

– součet vah je 1<br />

– varianta podobná pravděpodobnostnímu shlukování<br />

• částečné (event. úplné) shlukování<br />

– ve speciálních případech se shlukují pouze vybraná data (ne<br />

všechna)<br />

• heterogenní (homogenní) shlukování<br />

– shluky různých velikostí, tvarů a hustot


Určení vzdálenosti mezi objekty<br />

• numerická data – nutná normalizace<br />

• mělo by platit pro každý shluk C:<br />

x, y C z C : dis(x,y) dis(x, z)<br />

• numerická data, obyčejně se požadují metrická data<br />

(trojúhelníková nerovnost)<br />

• vzdálenosti mezi shluky – jak určit vzdálenost


Definice<br />

Centroid<br />

c<br />

j<br />

N<br />

j 1<br />

N<br />

x<br />

ji<br />

Je dán shluk C j a x j1 , …, x jN<br />

Cj<br />

Poloměr (Radius)<br />

r<br />

j<br />

j<br />

N<br />

1<br />

( x<br />

ji<br />

N<br />

c<br />

j<br />

2<br />

)<br />

Průměr (Diametr)<br />

d<br />

j<br />

N N<br />

i 1 k 1<br />

( x<br />

ji<br />

N * ( N<br />

x<br />

1)<br />

jk<br />

)<br />

2<br />

Medoid – instance, jejíž vzdálenost<br />

k ostatním instancím je minimální<br />

m<br />

j<br />

x<br />

ji<br />

, x<br />

arg<br />

jk<br />

i<br />

min<br />

C<br />

j<br />

N<br />

j<br />

k 1<br />

dis<br />

( x<br />

ji<br />

, x<br />

jk<br />

)


Vzdálenosti mezi shluky<br />

• Single link – nejkratší vzdálenost mezi instancemi ze dvou<br />

shluků<br />

dis(C j ,C m ) = min(dis(x ji ,x mk )<br />

x ji Cj a x mk C m ; C j C m<br />

• Complete link – nejdelší vzdálenost mezi instancemi ze dvou<br />

shluků<br />

dis(C j ,C m ) = max(dis(x ji ,x mk )<br />

x ji Cj a x mk C m ; C j C m


Vzdálenosti mezi shluky<br />

• Average - průměrná vzdálenost mezi instancemi ze dvou<br />

shluků<br />

dis ( Cj , Cm )<br />

N<br />

j<br />

N<br />

m<br />

i 1 k 1<br />

dis ( x<br />

N<br />

x ji Cj a x mk C m ; C j C m ; N j = |C j |; N m = |C m |<br />

j<br />

ji<br />

, x<br />

N<br />

m<br />

mk<br />

)<br />

• Centroid – vzdálenost mezi centroidy dvou shluků<br />

dis(C j ; C m ) = dis(c j ; c m )<br />

• Medoid – vzdálenost mezi medoidy dvou shluků<br />

dis(C j ; C m ) = dis(m j ; m m )


Vzdálenosti pro binární data<br />

• koeficienty asociace - instance s binárními atributy (z<br />

intervalu < 0; 1 >)<br />

• založené na počtu atributů, ve kterých se shodují<br />

• Hammingova vzdálenost<br />

k<br />

M<br />

1<br />

x<br />

ik<br />

XOR<br />

M<br />

x<br />

jk<br />

• Tanimotova míra rozmanitosti:<br />

1<br />

a<br />

c<br />

b<br />

c<br />

kde<br />

a počet 1 v x i ,<br />

b počet 1 v x j ,<br />

c počet atributů,<br />

pro které x i a x j 1


Problémy při shlukování<br />

• odlehlé hodnoty (outliers)<br />

– nespadají přirozeně do žádného shluku<br />

– sám v shluku<br />

– shluky jsou deformované<br />

• dynamicky se měnící data<br />

• shluky nemusí být srozumitelné<br />

• neexistuje jedno správné řešení<br />

• počet shluků třeba často určit dopředu


Metody shlukování<br />

• Hierarchické metody<br />

– aglomerativní algoritmy<br />

– rozdělovací algoritmy<br />

• Rozdělovací metody<br />

– pravděpodobnostní shlukování<br />

– k-medoids metody<br />

– k-means metody<br />

• Algoritmy založené na hustotě prvků<br />

• Metody založené na mřížkách<br />

• Jiné metody (například metody pro mnohorozměrná data, různé<br />

metody založené na strojovém učení či metody využívající<br />

neuronové sítě)


Hierarchické shlukování<br />

• přístupy<br />

– aglomerativní - zdola nahoru – slučování menších shluků<br />

– rozdělovací – shora dolů – postupné rozdělování větších shluků<br />

• Proces výstavby stromu shluků je zastaven po splnění určité podmínky<br />

(typicky po dosažení určitého počtu shluků)<br />

• Tento přístup umožňuje zkoumat data na různých úrovních granularity<br />

Výsledkem je dendrogram - kompletní strom<br />

– kořen – 1 shluk obsahující všechny instance<br />

– list – shluk obsahující 1 instanci<br />

– vnitřní uzly - shluky vzniklé spojením/rozdělením shluku (shluků)


Aglomerativní shlukování - příklad<br />

E<br />

A<br />

B<br />

C<br />

D<br />

F<br />

A B C D E F


Aglomerativní shlukování<br />

• vstup: matice sousednosti A : A[i,k] = dis(x i , x k )<br />

• výstup: dendrogram DE je uspořádaná množina trojic<br />

< d, c, C ><br />

d prahová vzdálenost<br />

c počet shluků<br />

C množina shluků


Reprezentace dendrogramu<br />

{< 0; 6; {{A}; {B}; {C}; {D}; {E}; {F}} >,<br />

< 1; 4; {{A;B}; {C;D}; {E}; {F}} >;<br />

< 2; 3; {{A;B}; {C;D; E}; {F}} >;<br />

< 3; 2; {{A;B; C;D; E}; {F}} ><br />

< 4; 1; {{A;B; C;D; E; F}} >}<br />

A B C D E F


Algoritmus aglomerativního shlukování<br />

1. Vypočti matice podobnosti objektů. Počáteční rozklad je<br />

tvořen jednoobjektovými shluky.<br />

2. Urči nejmenší vzdálenosti shluků v aktuální úrovni<br />

hierarchie.<br />

3. Sluč nejbližší shluky do jediného shluku ve vyšší úrovni<br />

hierarchie, ostatní shluky se nemění<br />

4. Vypočti charakteristiky shluků v aktuální hladině rozkladu<br />

5. Pokud existuje více než jeden shluk, opakuj od bodu 2


Typy aglomerativního shlukování<br />

• graf –<br />

– uzly - instance<br />

– hrany – spojení mezi instancemi vážené vzdáleností<br />

• single link<br />

– hledání spojených komponent - graf, kde existuje cesta<br />

mezi každou dvojicí uzlu (nejbližší soused)<br />

• complete link<br />

– hledání kliček – maximální graf, kde existuje hrana mezi<br />

každou dvojicí uzlu (nejvzdálenější soused)


Rozdělovací metody<br />

• rozdělují datové prvky do několika podmnožin.<br />

• obecně není možné testovat všechny kombinace rozložení<br />

prvků do daného počtu podmnožin. Používají se proto různé<br />

heuristiky ve tvaru iteračních optimalizací.<br />

• v jednotlivých krocích iterace je možné využít různá relokační<br />

schémata.<br />

• v každém kroku se pracuje se všemi shluky – rozdělení prvků<br />

se postupně vylepšuje.


<strong>Shlukování</strong> rozdělováním<br />

partitional clustering<br />

• nehierarchické shlukování<br />

• počet shluků se určuje předem (k)<br />

– nejmenší kostra<br />

– k-means<br />

– PAM a CLARA<br />

• měření kvality rozdělení – např.<br />

j<br />

k<br />

1<br />

x<br />

ji<br />

C<br />

dis ( C<br />

j<br />

j<br />

,<br />

x<br />

ji<br />

2<br />

)<br />

• vyzkoušení všech možností - složité<br />

– pro 19 instancí a 4 shluky: 11 259 666 000 možností


Algoritmus minimální kostry<br />

• graf<br />

– uzly – instance<br />

– hrany – spojení mezi instancemi s váhou rovnou<br />

vzdálenosti<br />

• algoritmus<br />

– nalezení minimální kostry grafu<br />

– odstranění k – 1 nekonzistentních hran<br />

• nekonzistentní = nejdelší


Algoritmus minimální kostry<br />

E<br />

B<br />

C<br />

D<br />

F<br />

A


Algoritmus k-means clustering<br />

• jednoduchý iterativní algoritmus<br />

• konverguje k lokálnímu minimu<br />

• citlivý na inicializaci – spustit vícekrát


Algoritmus k-means clustering<br />

Pro zadané k lze algoritmus implementovat pomocí těchto čtyř<br />

kroků:<br />

1. Rozděl objekty do k neprázdných shluků.<br />

2. Spočítej těžiště každého shluku při tomto rozdělení.<br />

3. Přiřaď každý objekt do shluku, k jehož těžišti je nejblíže.<br />

4. Pokud došlo ke změně přiřazení, opakuj od kroku 2.


Algoritmus PAM<br />

Partitioning Around Medoids<br />

• podobný k-means, ale shluk je reprezentovaný medoidem<br />

• medoid se dobře se vypořádává s odlehlými hodnotami


Algoritmus PAM<br />

• náhodně se vyber k instancí { m 1 ; …m k } představujících<br />

medoidy shluků<br />

• opakuj<br />

– přiřaď instance do shluků:<br />

x i je přiřazeno do shluku C j , pro j = arg k min dis(x i ;m k )<br />

– najdi nové medoidy: změna medoidu může způsobit i<br />

změnu přirazení instancí do shluků<br />

• dokud se už m 1 ; ... ;m k nemění


Algoritmus CLARA<br />

Clustering Large Applications<br />

• zlepšuje výpočetní složitost (počítání vzdálenosti)<br />

• aplikuje PAM na podmnožinu dat - nalezené medoidy<br />

používá jako medoidy v rámci celé množiny<br />

• na zlepšení úspěšnosti – více podmnožin je vybraných a<br />

nakonec se použije nejlepší


Pravděpodobnostní shlukování<br />

• cílem je najít nejvěrohodnější množinu shluku pro daná data<br />

• instance nejsou kategoricky přiřazené do shluku, ale<br />

příslušnost do shluku vyjadřuje pravděpodobnost<br />

• smíšený model (angl. mixture model)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!