Sunteți pe pagina 1din 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

pentru organizarea obiectelor similare în grupuri • Cluster = mulţime de obiecte asemănătoare între

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

▫ “Usefulclusters

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(C i , C j ) = min{d(x ip , x jq )}

Complete linkage

d(C i , C j ) = max{d(x ip , x jq )}

Average linkage

d(C i , C j ) = avg{d(x ip , x jq )}

Centroid linkage

Ward linkage

▫ Average linkage  d(C i , C j ) = avg{d(x i p , x

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
Step 0
Step 1
Step 2
Step 3
Step 4
Agglomerative
a a b b a b c d e c c d e d d
a
a b
b
a b c d e
c
c d e
d
d e
e
Step 4
Step 3
Step 2
Step 1
Step 0

Divisive

Dendograma

Diagramă bidimensională care ilustrează

fuziunile sau divizările din fiecare pas

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 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

Exemplu – CA single linkage   BA FI MI NA RM TO BA 0 662 877
 

BA

FI

MI

NA

RM

TO

BA

0

662

877

255

412

996

FI

662

0

295

468

268

400

MI

877

295

0

754

564

138

NA

255

468

754

0

219

869

RM

412

268

564

219

0

669

TO

996

400

138

869

669

0

Pas 1

Pas 1

Pas 2

Pas 2

Pas 3

Pas 3

Pas 4

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 „nearest result”

Folosirea metodei „cut” (1)

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

Se taie cluster-ul inițial rezultând două clustere

distincte

Folosirea metodei „cut” (2)

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

Se taie încă o dată clusterul mai mare,

rezultând 3 clustere

distincte

Folosirea metodei „cut” (3)

Folosirea metodei „cut” (3) • Algoritmul se poate opri în momentul în care există 3 clustere

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(n 2 )

▫ Pentru stocarea matricei de distanţe

Complexitate temporală: O(n 3 )

n paşi, la fiecare pas se parcurge şi actualizează matricea de distanţe de dimensiune n 2

▫ Complexitatea poate fi redusă la O(n 2 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

CUDA/GPU

Parallel computing speed-up 48x (față de Intel Pentium CPU)

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(n 3 ) î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?

Intrebări?