Shlukování - eAMOS
Shlukování - eAMOS
Shlukování - eAMOS
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)