You are on page 1of 28

Clustering ierarhic

Bogdan Ivaşcu (SSA) Mircea Lupaşcu (SSA)

Cuprins
• Despre clustering • Clustering ierarhic
▫ Aglomerativ ▫ Diviziv

• Algoritmi de clustering ierarhic
▫ Exemple

• • • •

Complexitate Optimizări Implementări Concluzii

Ce înseamnă clustering?
• Tehnică de învăţare nesupervizată, folosită pentru organizarea obiectelor similare în grupuri

• Cluster = mulţime de obiecte asemănătoare între ele şi diferite de cele ale altui cluster

La ce se foloseşte?
• Probleme rezolvabile prin clustering
▫ ▫ ▫ ▫ Data reduction “Natural” clusters “Useful” clusters Outlier detection

• Aplicaţii
▫ ▫ ▫ ▫ Marketing Biologie Asigurări Internet

Clustering ierarhic
• Gruparea obiectelor in mod iterativ, utilizând o anumită legatură – linkage
▫ Single linkage
 d(Ci, Cj) = min{d(xip, xjq)}

▫ Complete linkage
 d(Ci, Cj) = max{d(xip, xjq)}

▫ Average linkage
 d(Ci, Cj) = avg{d(xip, xjq)}

▫ Centroid linkage ▫ Ward linkage

Tipuri de clustering ierarhic
• Clustering aglomerativ
▫ Se începe cu puncte considerate clustere individuale ▫ La fiecare pas, se unește cea mai apropiată pereche de clustere până când rămâne un singur cluster

• Clustering diviziv
▫ Se pornește cu un singur cluster, ce conține toate punctele ▫ La fiecare pas se divizează un cluster până când fiecare cluster conține un singur punct

Clustering ierarhic (1)
Step 0 Step 1 Step 2 Step 3 Step 4

Agglomerative

a b

ab

abcde
cde de

c
d e
Step 4
Step 3 Step 2

Divisive
Step 1 Step 0

Dendograma
• Diagramă bidimensională care ilustrează fuziunile sau divizările din fiecare pas

Avantaje & dezavantaje
• Avantaje:
▫ generează o ierarhie, o structură informativă care poate fi ușor vizualizată ▫ nu este necesar să fie setat numărul de clustere ▫ metodă deterministă de clustering

• Dezavantaje:
▫ unirea sau divizarea clusterelor nu poate fi anulată ▫ deciziile greșite pot duce la clustere de calitate redusă

Clustering aglomerativ
• Abordare bottom-up • Cea mai populară metodă de clustering ierarhic • Algoritm:
Compute the distance matrix between the input data points Let each data point be a cluster Repeat Merge the two closest clusters Update the distance matrix Until only a single cluster remains

• Operația de bază: calculul distanţei dintre clustere

Exemplu – CA single linkage
BA
BA 0

FI 0

MI

NA RM

TO
996

662 877 255 412

FI
MI NA TO

662

295 468 268
0 754 564 0 219 0

400
138 869 669 0

877 295

255 468 754

RM 412 268 564 219

996 400 138 869 669

Pas 1

Pas 2

Pas 3

Pas 4

Clustering diviziv
• Abordare top-down • Algoritmi computaţional intensivi, mai puţin utilizaţi decât cei aglomerativi • Algoritm:
Put all objects in one cluster Repeat Choose a cluster to split Replace the chosen cluster with the sub-clusters Until all clusters are singletons

• Diverse metode de split

▫ Metoda monotetică – se ia în calcul o singură variabilă - Nearest result ▫ Metoda politetică – se iau în calcul toate variabilele clusterului Cut

Folosirea metodei „nearest result”

Folosirea metodei „cut” (1)
• Se taie cluster-ul inițial rezultând două clustere distincte

Folosirea metodei „cut” (2)
• Se taie încă o dată clusterul mai mare, rezultând 3 clustere distincte

Folosirea metodei „cut” (3)
• Algoritmul se poate opri în momentul în care există 3 clustere distincte • Daca se vrea, se poate continua până când fiecare cluster conține un singur punct (singleton)

Optimizare cut-based
• Se preferă slăbilrea legăturilor dintre obiecte din clustere diferite • Se calculează costul unei tăieturi pe baza similarităților interne și externe • Se folosește o anumită euristică • Optimizare min-max a tăieturilor – se alege clustering-ul cu costul optim

Clustering diviziv VS K-means
• Similarități:
▫ Numărul de clustere, k, poate fi ales la început ▫ Un cluster inițial trebuie ales (posibil random) ▫ Se poate îmbunătăți iterativ

• Diferențe:
▫ Algoritmul de tăiere min-max minimizează costul tăieturilor ▫ K-means maximizează similaritățile dintr-un singur cluster (nu ia în calcul costul tăieturilor)

Complexitate clustering ierarhic
• Pentru un set de date X format din n puncte • Complexitate spaţială: O(n2)
▫ Pentru stocarea matricei de distanţe

• Complexitate temporală: O(n3)
▫ n paşi, la fiecare pas se parcurge şi actualizează matricea de distanţe de dimensiune n2 ▫ Complexitatea poate fi redusă la O(n2 log(n) ) folosind structuri de date adecvate (heap)

Optimizări
• Variante ale clustering-ului ierarhic:
▫ BIRCH: se folosește un arbore de caracteristici și se ajustează incremental calitatea sub-clusterelor; ușor scalabil pentru seturi mari de date ▫ ROCK: se utilizează un clustering pe bază de categorii, analizând vecinii și legăturile; nu este sensibil la zgomot și la puncte izolate ▫ CHAMELEON: clustering ierarhic folosind modelare dinamică, ce integrează metoda ierarhică cu alte metode de clustering

Implementări clustering ierarhic
• MATLAB
▫ Găsirea similarităților între fiecare pereche de obiecte din setul de date ▫ Gruparea obiectelor într-un arbore binar de clustering ierarhic ▫ Determinarea tăieturilor pentru a împărți arborele ierarhic în clustere ▫ Parallel computing – speed-up 48x (față de Intel Pentium CPU)

• CUDA/GPU
• Limbajul R

▫ Statistici și analiză ▫ Metode de bibliotecă – hclust()

Concluzii
• Metodă deterministă de clustering • Proces iterativ • 2 abordări
▫ Clustering aglomerativ ▫ Clustering diviziv

• Complexitate – O(n3) în general • Util în diverse domenii
▫ Statistică ▫ Rețelistică

Bibliografie
• D.T. Larose. An Introduction to Data Mining, Wiley. 2004 • Ke Chen. Hierarchical Clustering, University of Manchester. 2007 • Johan Everts. Clustering Algorithms, Rijksuniversiteit Groningen. 2008 • H. Fang, Y. Saad. Farthest Centroids Divisive Clustering, University of Minnesota. 2008 • Y. Zhao, G. Karypis. Comparison of Agglomerative and Partitional Document Clustering Algorithms, University of Minnesota. 2008 • G. Karypis, E.H. Han, V. Kumar. Chameleon: A hierarchical clustering algorithm using dynamic modeling.,IEEE Computer. 1999 • S. Guha, R. Rastogi, K. Shim. ROCK: a robust clustering algorithm for categorical attributes, In Proc. of the 15th Int’l Conf. on Data Eng. 1999 • D. Chang, M. Ouyang. Hierarchical clustering with CUDA/GPU, University of Louisville. 2009

Intrebări?