Clustering Salvatore Orlando Data Mining. - S. Orlando 1 Cos’è un’analisi di clustering • Cluster: collezione di oggetti/dati – Simili rispetto a ciascun oggetto nello stesso cluster – Dissimili rispetto agli oggetti in altri cluster • Analisi di clustering – Raggruppare oggetti in cluster • Clustering è anche definito come unsupervised classification: – Non abbiamo classi predefinite • Applicazioni tipiche – Come uno strumento stand-alone per cercare di capire come i dati sono distribuiti – Come passo di preprocessing per altri algoritmi Data Mining. - S. Orlando 2 Applicazioni • • • • Image Processing & Pattern Recognition Analisi di dati spaziali – Creazione di mappe tematiche nei GIS Scienze Economiche (market research) WWW – Classificazione di documenti – Clustering di Weblog per scoprire gruppi di pattern accessi simili Data Mining. - S. Orlando 3 Esempi • Marketing: Scopri gruppi distinti, e poi usa questa conoscenza per sviluppare programmi di targeted marketing • Land use: Identifica aree terrestri simili rispetto al loro uso all’interno di database di osservazione della terra (satellite) • Assicurazioni: Identifica gruppi di assicurati con caratteristiche comuni • City-planning: Identifica gruppi di case sulla base di tipo, valore, e localizzazione geografica • Studi di terremoti: Clustering di epicentri Data Mining. - S. Orlando 4 Bontà del clustering • Un buon metodo di clustering produrrà cluster di alta qualità con – Alta similarità intra-class – Bassa similarità inter-class • La qualità del risultato del clustering dipende – dalla misura di similarità usata – dallo specifico algoritmo usato • La qualità del clustering è anche misurato in base alla sua abilità di scoprire – alcuni o tutti i pattern nascosti Data Mining. - S. Orlando 5 Requisiti di un buon metodo di clustering • Scalabilità • Abilità di trattare con tipi di attributi differenti • Scoprire cluster con forme arbitrarie • Dovrebbe essere minima la conoscenza di dominio per determinare gli attributi in input • Robusto per poter trattare con rumori e outlier • Non sensibile all’ordinamento dei record in input • Capacità di trattare con alta dimensionalità • Capacità di incorporare vincoli specificati dagli utenti • Interpretabilità e usabilità dei risultati Data Mining. - S. Orlando 6 Tipi di dati Matrice dei dati – (two modes) – n oggetti con p attributi – Tabella relazionale Matrice di dissimilarità – (one mode) – d(i, j) misura di dissimilarità tra oggetti i e i – d(i, j) ≅ 0 x 11 ... x i1 ... x n1 ... x 1f ... ... ... ... x if ... ... ... ... ... ... ... 0 d(2,1) d(3,1 ) : d ( n ,1) x nf 0 d ( 3,2 ) : d ( n ,2 ) 0 : ... x 1p ... x ip ... x np ... 0 oggetti molto simili Data Mining. - S. Orlando 7 Misura la qualità del clustering • Metrica di Dissimilarità/Similarità: – Similarità espressa in termini di una funzione di distanza: d(i, j) • Funzione qualità che misura la “bontà” di un cluster. • Le definizioni di funzioni di distanza sono molto differenti per – interval-scaled, booleane, categoriche, ordinali, ecc. • Pesi dovrebbero essere associati con variabili differenti in base all’applicazione o alla semantica dei dati Data Mining. - S. Orlando 8 Tipi di dati • Variabili numeriche • Variabili binarie • Variabili categoriche: nominali, ordinali • Variabili di tipo misto Data Mining. - S. Orlando 9 Variabili numeriche (interval-scaled) • Standardizzazione dei dati – per evitare la dipendenza sull’unità di misura scelta per ogni variabile f • Calcola la deviazione assoluta s f = 1n (| x1 f − m f | + | x2media: − m f | +...+ | xnf − m f |) f dove: m f = 1n (x1 f + x2 f + ... + xnf ) . • Calcola la misura standardizzata (z-score) • La deviazione assoluta media è più robusta della deviazione standard xif − m f zif = sf – |xif - mf| non è elevato al quadrato, riducendo i problemi dovuti a outliers Data Mining. - S. Orlando 10 Variabili numeriche: distanza • Distanze per misurare similarità o dissimilarità tra coppie oggetti • Minkowski distance d (i, j) = q (| x − x |q + | x − x |q +...+ | x − x |q ) i1 j1 i2 j2 ip jp dove i = (xi1, xi2, …, xip) e j = (xj1, xj2, …, xjp) sono due oggetti pdimensionali, e q è un intero positivo • Se q = 1, d è la distanza Manhattan d(i, j) =| x − x | +| x − x | +...+| x − x | i1 j1 i2 j2 ip jp Data Mining. - S. Orlando 11 Variabili numeriche: distanza (cont.) • Se q = 2, d è la Distanza Euclidea: d (i, j) = (| x − x |2 + | x − x |2 +...+ | x − x |2 ) i1 j1 i2 j2 ip jp • Proprietà – d(i,j) ≥ 0 – d(i,i) = 0 – d(i,j) = d(j,i) – d(i,j) ≤ d(i,k) + d(k,j) • Possiamo pesare le variabili, ottenendo così una misura di distanza pesata Data Mining. - S. Orlando 12 Variabili binarie • Una tabella di contingenza per coppie di dati binari: Oggetto j Oggetto i 1 0 sum 1 q r q+r 0 s t s +t sum q + s r + t • p Coefficiente di matching semplice (variabili simmetriche): d ( i , j ) = r +p s • Coefficiente di Jaccard (variabili asimmetriche, valori 0 sono meno significativi): r+s d (i , j ) = q + r+s Data Mining. - S. Orlando 13 Dissimilarità usando Jaccard • Esempio Nome Jack Mary Jim Sesso M F M Febbre Y Y Y Tosse N N P Test-1 P P N Test-2 N N N Test-3 N P N Test-4 N N N – Sesso è un attributo simmetrico (non considerato) – Gli altri attributi sono asimmetrici – Y e P corrispondono a 1, mentre N corrisponde a 0 0 + 1 d ( jack , mary ) = = 0 . 33 2 + 0 + 1 1 + 1 d ( jack , jim ) = = 0 . 67 1 + 1 + 1 1 + 2 d ( jim , mary ) = = 0 . 75 1 + 1 + 2 Data Mining. - S. Orlando 14 Variabili nominali • Una variabile che può avere più stati – Es.: rosso, giallo, blu, verde – Possiamo pensare ad una generalizzazione delle var. binarie, da 2 a n • Anche le misure ottenute sono generalizzazioni • m: # di matches, p: # totale di variabili • Possiamo decodificare le variabili nominali con un gran numero di variabili binarie − m p d (i, j ) = p – Una nuova var. binaria per ciascuno dei valori assunti da una variabile nominale – Possiamo così usare le stesse misure usate per le var. binarie Data Mining. - S. Orlando 15 Variabili ordinali • Una variabile ordinale è in pratica una variabile nominale con un ordine tra i valori assunti – Può essere discreta o continua – Possiamo assegnare un rango numerico (rank) ad ogni valore assunto • Possiamo così trattare tali variabili come interval-based – rimpiazziamo xif con il suo rango, dove Mf sono i valori diversi assunti da xif rif ∈ {1,..., M f } – Mappiamo i valori di ciascuna variabile sull’intervallo [0, 1] rimpiazzando l’ i-esimo valore della f-esima variabile con z if r if − 1 = M f − 1 – Possiamo quindi calcolare la dissimilarità tra variabili ordinali come se fossero variabili numerico di tipo interval-scaled Data Mining. - S. Orlando 16 Variabili numeriche (ratio-scaled) • Sono valori numerici misurati su una scala non lineare di valori – Scala esponenziale • Questo può essere problematico per le misure di distanza associate, a causa della distorsione della scala – Distanze piccole tra valori consecutivi vicini allo zero – Distanze grandi tra valori lontani dallo zero • Soluzioni – applicare una trasformazione (logaritmica) in modo da trasfomarli in interval-scaled, oppure – considerare i valori come ordinali, assegnando un rango … e applicare la distanza usata per variabili numeriche di tipo interval-scaled Data Mining. - S. Orlando 17 Variabili di tipo diverso • Oggetti caratterizzati da p attributi diversi – Numerici, nominali, ordinali, ecc. • Si può usare una formula pesata per rappresentare gli effetti delle distanze calcolate con metodi diversi d (i, j ) = Σ δ d p ( f ) ( f ) f = 1 ij ij p ( f ) f = 1 ij Σ δ – δij(f) = 0 • se xif o xjf non esistono nei due oggetti i e j • se xif = xjf = 0 ed f è binaria asimmetrica – altrimenti δij(f) = 1 Data Mining. - S. Orlando 18 Variabili di tipo diverso d (i, j ) = Σ δ d p ( f ) ( f ) f = 1 ij ij p ( f ) f = 1 ij δ Σ – Se f è binaria o nominale: dij(f) = 0 se xif = xjf , dij(f) = 1 altrimenti – Se f è numerica interval-based: usa distanza normalizzata d ( f ) ij = | x if − x jf | max h x hf − min h x hf – f è ordinale o ratio-scaled: calcola i ranghi rif e tratta zif come numerica interval-scaled z if = r M −1 if f −1 – In pratica • tutti i vari dij(f) saranno compresi nell’intervallo [0-1] • il denominatore sarà maggiore del numeratore, e sarà uguale a p’, dove p’ < p è il numero di variabili che esistono in entrambi gli oggetti, e che non sono binarie asimmetrici Data Mining. - S. Orlando 19 Una categorizzazione dei più importanti metodi di clustering • Partitioning algorithms: Costruisci varie partizioni e poi valutali sulla base di qualche criterio. Metodi iterativi. • Hierarchy algorithms: Crea una decomposizione gerarchica degli oggetti sulla base di qualche criterio • Density-based: basata su funzioni di densità degli oggetti • Grid-based: basata su una discretizzazione dello spazio multi-dimensionale (griglia composta da celle che ospitano i vari oggetti) • Model-based: Metodo statistico. Si ipotizza via via un modello per ciascun cluster: l’idea è quella di trovare il migliore assegnamento dei dati rispetto al modello Data Mining. - S. Orlando 20 Partional vs. Hierarchical • Una prima distinzione è tra un tipo di clustering hierarchical o partitional • Partitional Clustering – Gli oggetti sono suddivisi in sottoinsiemi (cluster) che non si sovrappongono – Ciascun oggetto appartiene ad un solo cluster • Hierarchical clustering – I cluster sono annidati, e organizzati all’interno di albero gerarchico Data Mining. - S. Orlando 21 Partitional clustering 6 6 4 4 5 5 2 2 1 1 3 Punti originali 3 Partitional Clustering Data Mining. - S. Orlando 22 Hierarchical Clustering 5 6 0.2 4 3 4 2 5 2 1 3 0.15 1 0.1 0.05 0 Traditional Hierarchical Clustering 1 3 2 5 4 6 Traditional Dendrogram Data Mining. - S. Orlando 23 Altre caratterizzazioni dei metodi di clustering • Esclusivo vs. Non-esclusivo – Nel clustering non esclusivo, i punti possono appartenere a più cluster • Fuzzy vs. non-fuzzy – (fuzzy=sfuocato) – In fuzzy clustering, un punto appartiene ad ogni cluster con un peso compreso tra 0 e 1 – La somma dei pesi deve essere 1 – Probabilistic clustering • Parziale vs. completo – In alcuni casi vogliamo soltanto effettuare il clustering di una parte dei dati – Ad esempio, possiamo tralasciare punti che sono outliers rispetto agli altri Data Mining. - S. Orlando 24 Tipi di Cluster: Ben-Separati • Cluster ben-separati – Un cluster è costituito da un insiemi di punti tali che per ogni punto appartenente ad un cluster, questo punto è più vicino (o più simile) ad ogni altro punto del proprio cluster rispetto a tutti gli altri punti Data Mining. - S. Orlando 25 Tipi di Cluster: Center-based • Center-based – Un cluster è costituito da un insiemi di punti tali che per ogni punto appartenente ad un cluster, questo punto è più vicino (più simile) al “centro” del proprio cluster rispetto a tutti gli altri centri – Possibili centri: • Centroid: è una media di tutti i punti nel cluster • Medoid: il punto più rappresentativo Data Mining. - S. Orlando 26 Tipi di Cluster: Contiguos Cluster • Contiguous Cluster (Nearest neighbor) – Un cluster è costituito da un insiemi di punti tali che per ogni punto appartenente ad un cluster, questo punto è più vicino (più simile) ad uno o più punti appartenenti al proprio cluster rispetto a tutti gli altri punti Data Mining. - S. Orlando 27 Tipi di Cluster: Density based • Density-based – Un cluster è una regione densa di punti – I cluster sono separati da regioni a bassa densit – Si usa questa nozione se i cluster sono irregolari, e se sono presenti rumori o outlier • Nota che, rispetto alla slide precedente – Le tre curve non formano dei cluster, e diventano rumore scartato dall’algoritmo – Non abbiamo il collegamento tra i due piccoli cluster circolari Data Mining. - S. Orlando 28 Partitioning method • Partitioning method: Partiziona il database D di n oggetti in un insieme di k cluster • Dato un k, trova un partizionamento in k cluster che ottimizza il criterio di partizionamento scelto – Ricerche dell’ottimo globale (non fattibili): enumerazione esaustiva di tutte le partizioni possibili – Metodi di ricerca euristici (più fattibili): algoritmi k-means e kmedoids – k-means (MacQueen’67): Ogni cluster è rappresentato dal centro (media) del cluster – k-medoids o PAM (Partition around medoids) (Kaufman & Rousseeuw’87): Ogni cluster è rappresentato da uno degli oggetti del cluster Data Mining. - S. Orlando 29 Algoritmo K-Means • Dato k, l’algoritmo k-means è implementato in passi iterativi: Scegli in modo casuale k punti che rappresentano i centroidi (means) iniziali dei cluster Repeat 1. Assegna ciascun oggetto al cluster più vicino (il cui centro risulta il più vicino all’oggetto dato) 2. Calcola i centroidi (punti medi) dei cluster. Until Gli assegnamenti non cambiano (o cambiano poco) Data Mining. - S. Orlando 30 Algoritmo K-Means • Esempio Data Mining. - S. Orlando 31 Commenti sul K-Means • Forze – Relativamente efficiente: O(tknd), dove n è il # di oggetti, k è il # di cluster, t è il # di iterazioni, e d è il # di attributi. Normalmente abbiamo che k e t << n. Il calcolo può diventare oneroso per valori di d grandi. – Spesso termina su un ottimo locale. L’ ottimo globale può essere trovato usando tecniche come: deterministic annealing e genetic algorithm • Debolezze – Può essere applicato solo quando il tipo di dato permette di definire la media (che serve per determinare i centroidi del cluster) • Problemi con dati categorici – Bisogna specificare in anticipo k, il numero di cluster – Ha altri problemi che dipendono dalle caratteristiche dei cluster presenti nei dati Data Mining. - S. Orlando 32 Variazioni dei metodi K-Means • Esistono alcune varianti di k-means che hanno a che fare con – La selezione dei k means iniziali – Nuove misure di dissimilarità per trattare dati categorici – Strategie per calculare i centroidi dei cluster Data Mining. - S. Orlando 33 Valutare il clustering prodotto • La misura di valutazione più comune è – Sum of the Squared Error (SSE) • Calcolo di SSE – Per ciascun punto, l’errore è la distanza rispetto al centro (centroide, medoide) del cluster di appartenenza – Per ottenere SSE, eleviamo al quadrato e sommiamo i vari errori – Dati due clustering ottenuti con diversi run di K-means, possiamo scegliere quello che minimizza l’errore – Un modo semplicistico per ridurre SSE è aumentare K, il numero di cluster • In ogni caso un buon clustering (con una valore piccolo di K) può risultare avere un SSE migliore di un clustering cattivo (con un grande valore di K) Data Mining. - S. Orlando 34 Problemi legati ai cluster presenti nei dati • K-means ha problemi quando i cluster hanno differenti – Dimensioni – Densità – Forma non globulare • K-means ha ancora problemi quando i dati presentano outliers • Una soluzione è usare K alti (molti clusters) – I cluster trovati sono partizioni dei cluster effettivamente presenti – Necessario rimettere assieme le partizioni trovate Data Mining. - S. Orlando 35 Limiti di K-means: Dimensioni differenti Original Points K-means Clusters Data Mining. - S. Orlando 36 Limiti di K-means: Densità differenti Original Points K-means Clusters Data Mining. - S. Orlando 37 Limiti di K-means: Forme non globulari Original Points K-means Clusters Data Mining. - S. Orlando 38 Aumentiamo K per superare i problemi di K-means Original Points K-means Clusters Data Mining. - S. Orlando 39 Aumentiamo K per superare i problemi di K-means Original Points K-means Clusters Data Mining. - S. Orlando 40 Aumentiamo K per superare i problemi di K-means Original Points K-means Clusters Data Mining. - S. Orlando 41 Algoritmo K-Medoids • Trova oggetti rappresentanti, chiamati medoids, per ogni cluster cluster – Rispetto a K-means, possiamo applicare l’algoritmo anche se il tipo di dato non permette di definire la media (es. dati categorici) – Metodo più robusto in presenza di outliers • PAM (Partitioning Around Medoids, 1987) – Inizia da un insieme iniziale di medoids – Iterativamente tenta di • rimpiazzare uno dei medoid con un non-medoids • se il rimpiazzamento migliora la distanza totale del nuovo clustering, mantieni la modifica – PAM funziona bene per piccoli dataset, ma non scala bene Data Mining. - S. Orlando 42 Algoritmo K-medoids Scegli in modo arbitrario k medoids dagli oggetti da raggruppare Repeat 1. Assegna i rimanenti oggetti al medoid più vicino (o più simile) 2. Seleziona in modo random un oggetto non-medoid (orandom) da scambiare con oj (vecchio medoid) 3. Calcola il costo totale SSE relativo allo nuovo clustering ottenuto scambiando oj con orandom 4. Se guadagno rispetto ad SSE, allora mantieni lo scambio Until non riusciamo a modificare i medoid Data Mining. - S. Orlando 43 Casi possibili in seguito al riassegnamento di un medoid Scambiamo Oj con Orandom Oi P Oj Oi Oi Oj P Oi Oj P Orandom P riassegnato a Oi Orandom P riassegnato a Orandom Oj Orandom P non viene riassegnato P Orandom P riassegnato a Orandom Oggetto Medoid Relazione prima dello scambio Relazione dopo lo scambio Data Mining. - S. Orlando 44 Hierarchical Clustering • Due tipi di clustering gerarchico – Agglomerative: • • • • Inizia con punti considerati come cluster individuali A ciascun passo, unisci le coppie di clusters più vicini Fino a quando rimane un solo cluster (o k cluster) E’ necessaria una nozione di prossimità tra cluster – Divisive: • • • • Inizia con un singolo cluster che ingloba tutti i punti A ciascun passo, spezza un cluster Fino a quando ogni cluster contiene un punto (o ci sono k cluster) E’ necessario scegliere quale cluster spezzare ad ogni passo • I metodi agglomerativi sono più usati Data Mining. - S. Orlando 45 Hierarchical Clustering • • Usa la matrice delle distanze come criterio di clustering. Non bisogna specificare il numero k di cluster come input, ma è necessaria una condizione di terminazione Step 0 a b Step 1 Step 2 Step 3 Step 4 ab abcde c cde d de e Step 4 agglomerative (AGNES) Step 3 Step 2 Step 1 Step 0 divisive (DIANA) Data Mining. - S. Orlando 46 AGNES (Agglomerative Nesting) • Usa il metodo Single-Link (MIN) e la matrice delle distanze relative • Unisci i nodi che hanno la dissimilarità minima • Alla fine tutti i nodi appartengono allo stesso cluster • Sensibile a rumori e outlier 5 6 0.2 4 3 4 2 5 2 1 3 0.15 1 0.1 0.05 0 Hierarchical Clustering 1 3 2 5 4 6 Dendrogram Data Mining. - S. Orlando 47 Tipico algoritmo gerarchico agglomerativo • L’algoritmo è semplice 1. Calcola la matrice di prossimità 2. All’inizio, ogni punto è un singolo cluster 3. Repeat 4. Unisci i cluster più vicini 5. Aggiorna la matrice di prossimità 6. Until fino a quando rimane un singolo cluster • L’operazione chiave è il calcolo della vicinanza tra due cluster – Questo concetto di vicinanza costituisce la differenza principale tra algoritmi differenti Data Mining. - S. Orlando 48 Algoritmo gerarchico agglomerativo: inizio • Iniziamo con cluster costituiti da punti individuali e una matrice di prossimità p1 p2 p3 p4 p5 ... p1 p2 p3 p4 p5 . . . Proximity Matrix Data Mining. - S. Orlando 49 Algoritmo ger. agglomerativo: fase intermedia • Dopo qualche passo abbiamo dei cluster C1 C2 C3 C4 C5 C1 C3 C2 C4 C3 C4 C1 C5 C2 C5 Proximity Matrix Data Mining. - S. Orlando 50 Algoritmo ger. agglomerativo: fase intermedia • Vogliamo unire C2 e C5, ma dobbiamo aggiornare la matrice C1 C2 C3 C4 C5 C1 C3 C2 C4 C3 C4 C1 C5 C5 C2 Proximity Matrix Data Mining. - S. Orlando 51 Algoritmo ger. agglomerativo: dopo l’unione • Il problema è come aggiornare la matrice – Diverse misure per stabilire distanza/similarità C1 C1 C3 C2 U C5 C4 C2 U C5 C3 C4 ? ? ? ? ? C3 ? C4 ? C1 Proximity Matrix C2 U C5 Data Mining. - S. Orlando 52 Come definire la similarità Inter-Cluster ? p1 Similarity? p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . • p5 Distance Between Centroids . Proximity Matrix Data Mining. - S. Orlando 53 Come definire la similarità Inter-Cluster ? p1 p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . • Distance Between Centroids p5 . Proximity Matrix Data Mining. - S. Orlando 54 Come definire la similarità Inter-Cluster ? p1 p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . p5 . • Distance Between Centroids • Other methods driven by an objective function Proximity Matrix – Ward’s Method uses squared error Data Mining. - S. Orlando 55 Come definire la similarità Inter-Cluster ? p1 p2 p3 p4 p5 ... p1 p2 p3 p4 • MIN • MAX . • Group Average . p5 ∑ distance(p , p ) distance(Clusteri , Clusterj ) = • pi ∈Clusteri p j ∈Clusterj i j Proximity Matrix . |Clusteri |∗|Clusterj | Distance Between Centroids Data Mining. - S. Orlando 56 Confronto tra metodi gerarchici 1 3 5 5 1 2 2 1 2 3 4 4 MIN 6 5 5 MAX 2 3 3 4 6 1 4 1 5 2 5 2 3 3 4 Group Average 6 1 4 Data Mining. - S. Orlando 57 DIANA (Divisive Analysis) • Algoritmo gerarchico divisive introdotto nel 1990 • Ordine inverso rispetto ad AGNES • Alla fine ciscun node forma un cluster 10 10 10 9 9 9 8 8 8 7 7 7 6 6 6 5 5 5 4 4 4 3 3 3 2 2 2 1 1 1 0 0 0 1 2 3 4 5 6 7 8 9 10 0 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 Data Mining. - S. Orlando 58 Complessità dei metodi gerarchici • Non scala bene: la complessità in tempo è O(n2), dove n è il numero totale di oggetti • Una volta che una decisione è stata presa relativamente all’agglomerazione/divisione di cluster, non possiamo disfarla • Schemi differenti hanno mostrato uno o più di questi problemi: – Sensibilità al rumore o agli outliers – Difficoltà nel gestire cluster di dimensioni differenti e forme convesse – Grandi cluster possono risultare suddivisi Data Mining. - S. Orlando 59 Metodi di clustering basati sulla densità • Clustering basato sulla densità – Concetto di punti connessi sulla base della densità • Caratteristiche principali – Scopre cluster di forma arbitraria – Gestisce bene i rumori presenti nel dataset – Singola scansione – Abbiamo bisogno di parametri riguardanti la densità come condizione di terminazione Data Mining. - S. Orlando 60 Density-Based Clustering: Background • Due parametri per definire la densità: – Eps: Massimo raggio di vicinato di un certo punto – MinPts: Minimo numero di punti all’interno di un certo raggio Eps • Numero di punti all’interno di un certo raggio: – NEps(p): • {q ∈ D | dist(p,q) ≤ Eps} Directly density-reachable: Un punto p è directly density-reachable da un punto q rispetto a (Eps, MinPts) se – 1) p ∈ NEps(q) p – 2) q è un punto core, ovvero: |NEps (q)| ≥ MinPts MinPts = 5 q Eps = 1 cm Data Mining. - S. Orlando 61 Density-Based Clustering: Background (II) • Density-reachable: (proprietà transitiva) – Un punto p è density-reachable da q se c’è una catena di punti p1, …, pn dove p1 = q e pn = p tali che pi+1 è directly density-reachable da pi • p p1 q Density-connected – Un punto p è density-connected ad un punto q se c’è un punto o tale che sia p e sia q sono density-reachable da o p q o Data Mining. - S. Orlando 62 DBSCAN: Density Based Spatial Clustering of Applications with Noise • DBSCAN si basa sulla nozione di cluster basata sulla densità – Un cluster è definito come l’insieme massimo di punti connessi rispetto alla nozione di densità Scopre cluster di forma arbitraria in database spaziali con rumore/outlier • Data Mining. - S. Orlando 63 DBSCAN: L’algoritmo • Seleziona arbitrariamente un punto p • Individua tutti i punti density-reachable da p rispetto a Eps e MinPts. • Se p è un punto core, forma un cluster • Se p è un punto border, nessun punto è density-reachable da p, per cui passa a considerare il prossimo punto del database. • Continua fino alla completa visita di tutti i punti Data Mining. - S. Orlando 64 DBSCAN: esempio di funzionamento corretto Clusters Original Points Data Mining. - S. Orlando 65 DBSCAN: punti core, border e noise Point types: core, border and noise Original Points Eps = 10, MinPts = 4 Data Mining. - S. Orlando 66 Conclusioni • • • • • • Le analisi di clustering raggruppano oggetti in base alla loro similarità Abbiamo visto che è possibile valutare la similarità rispetto a vari tipi di dati E’ possibile categorizzare gli algoritmi di clustering in metodi partitioning, hierarchical, density-based, grid-based, e model-based – Abbiamo solo visto una parte di questi metodi La scoperta di outlier è utile per vari campi, come scoperta di frodi ecc. – Algoritmi per la scoperta di outlier sono collegati a quelli di clustering – Esistono metodi basati sulla distanza, ma anche metodi basati su misure statistiche Clustering con vincoli – Le analisi di clustering possono avere vincoli da rispettare – Ad esempio, vincoli naturali esistono in database spaziali (ponti o strade in un GIS) che impediscono il clustering di oggetti “vicini” Clustering in database spazio-temporali – Necessitano di nuove nozioni di distanza, che considerino anche la dimensione tempo Data Mining. - S. Orlando 67