ROCK A Robust Clustering Algorithm for Categorical Attributes Sudipto Guha, Rajeev Rastogi, Kyuseok Shim Sistemi Informativi per le Decisioni a.a. 2005/2006.

Slides:



Advertisements
Presentazioni simili
Problema dellordinamento Input: Sequenza di n numeri Output: Permutazione π = tale che: a 1 a 2 …… a n Subroutine in molti problemi E possibile effettuare.
Advertisements

Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Sistemi di supporto alle decisioni 4. Clustering
Alberi binari di ricerca
Insiemi disgiunti.
Algoritmi e Strutture Dati
Stato di Avanzamento dello sviluppo del modulo Concretizator
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Apprendimento Non Supervisionato
Apprendimento Automatico: Apprendimento Pigro (Lazy Learning)
Algoritmo di Ford-Fulkerson
ANALISI DEI GRUPPI seconda parte
ALBERI DECISIONALI prima parte
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Il problema.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. A)
Brescia, lunedì 10 Maggio ^ Giornata dellinnovazione Il Distretto Biomedicale.
Seminario su clustering dei dati – Parte I
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
PATTERN RECOGNITION.
Metodi basati sulle similitudini per dedurre la funzione di un gene
GENERAZIONE CODICE MACCHINA
Tecniche e algoritmi di base per l’estrazione di conoscenza
Analisi dei gruppi – Cluster Analisys
Chapter 14, Hastie , Tibshirani and Friedman
Clustering Mercoledì, 24 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Density-Based Clustering.
Esercitazione Data Mining
Clustering Martedì, 30 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Clustering Lecture.
Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.
Strategia bottom-up Nella strategia bottom-up le specifiche iniziali sono suddivise in componenti via via sempre più piccole, fino a descrivere frammenti.
21 marzo 22 marzo 23 marzo 24 marzo. TCB TCB TCB marzo
MEMORIA. Organizzazione fisica della Memoria Decodi ficatore degli indirizzi … Sense/ Write Sense/ Write Sense/ Write Sense/
Elementi di Informatica di base
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Towards Robust Indexing for Ranked Queries aa 09/10 Candeloro D. Orlando M. Pedone A. Gruppo 5.
CLUSTERING WITH WEKA Branca Stefano Dosi Clio Gnudi Edward William.
Discovering Relative Importance of Skyline Attributes Gruppo 8 Altobelli Andrea (Relatore) Ciotoli Fabio Denis Mindolin, Jan Chomicki.
UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA PER LA GESTIONE D’AZIENDA Tesi di laurea: Progettazione.
Classificazione (aka Cluster Analysis)
Complessità di un algoritmo
Cammini minimi da un sorgente
Numeri figurati Numeri triangolari fine
ALGORITMI a.
Sistemi Informativi Per Le Decisioni LS, Prof. Marco Patella Presentazione di Alessandro Mariucci, Massimiliano Bertocchi, Michele Federici.
Metaclassificazione Giovedì, 18 novembre 2004 Francesco Folino ( Combinare Classificatori Lecture 8.
Algoritmi CHE COS’è UN ALGORITMO di ORDINAMENTO?
Complessità degli algoritmi (cenni) CORDA – Informatica A. Ferrari.
Sistemi Informativi A. A. 2013/14 WEKA. WEKA Explorer.
Lez.13: Unsupervised classification: clustering gerarchico
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Allievi Elettrici - AA Le funzioni ricorsive in C
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases1 GRUPPO 13: Relatore: Mengoli Dario Mengoli Dario Rovatti Fabrizio Tassoni Davide.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Tecniche di analisi matematica. Gli studi di autenticazione e di tracciabilità sugli alimenti sono generalmente effettuati individuando variabili chimico-fisiche.
Automi temporizzati.
CURE: AN EFFICIENT CLUSTERING ALGORITHM FOR LARGE DATABASES GRUPPO 12 Filippo Bindi Massimiliano Ceccarini Andrea Giuliodori PRESENTAZIONE Sistemi Informativi.
GLI ALGORITMI DI ORDINAMENTO
L’analisi di regressione e correlazione Prof. Luigi Piemontese.
Self-Organizing Map (SOM Kohonen, 1981) è una tecnica di visualizzazione dei dati multidimensionali SOM è una mappa mono- (bi-)dimensionale che rappresenta.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

ROCK A Robust Clustering Algorithm for Categorical Attributes Sudipto Guha, Rajeev Rastogi, Kyuseok Shim Sistemi Informativi per le Decisioni a.a. 2005/2006 Prof. Marco Patella Presentazione di Sara Liparesi e Francesco Nonni

Sviluppato da Sudipto Guha, Rajeev Rastogi e Kyuseok Shim nel 1999 Algoritmo gerarchico agglomerativo Adatto allo studio dei dati categorici Basato su misure di similarità non metriche ROCK Clustering Algorithm RObust Clustering using linKs

Limiti degli algoritmi di clustering tradizionali Algoritmi gerarchici: Non sempre adatti a trattare attributi categorici La distanza fra i centroidi dei cluster, nel caso di attributi categorici, è una povera stima della similarità fra i clusters Ripple Effect Alcuni algoritmi usano delle misure di distanza diverse da quelle euclidee (es. Jaccard coefficient), ma si concentrano solo su due punti per volta ignorando il vicinato dei punti stessi (approccio locale) MARKETING Dati categorici ???? dati Algoritmi partizionanti: Non adatti ad attributi categorici

Concetti fondamentali Neighbors Links Criterion Function Goodness Measure

I vicini di un punto sono quei punti che possono essere considerati ragionevolmente simili ad esso: Neighbors Esempio: Market Basket Data Date due transazioni T 1, T 2 una possibile funzione di similarità è: Dove: sim è una generica funzione di similarità che indica la vicinanza tra coppie di punti; Θ è un valore di soglia.

Links Il concetto di links viene introdotto per definire il numero di vicini in comune fra una coppia di punti p i, p j. Tale numero viene espresso da link(p i,p j ). Questa proprietà permette all’algoritmo di individuare le coppie di punti che potenzialmente possono essere unite in un unico cluster. In generale, punti appartenenti a un singolo cluster avranno un grande numero di vicini in comune e conseguentemente un alto numero di links. Esempio

Links: esempio IDGenereRegistaAttore Disponibilità al noleggio Mr e Mrs Smith T1adrenalinaLimanPitt non disponibile TroyT2adrenalinaPetersenPittdisponibile La Storia Infinita T3 in famiglia PetersenGunndisponibile The Bourne Identity T4adrenalinaLimanDamondisponibile La Tempesta Perfetta T5adrenalinaPetersenClooneydisponibile Air Force One T6adrenalinaPetersenForddisponibile I Fratelli Grimm T7 in famiglia GilliamDamon non disponibile Fonte: Blockbuster.itsim(T1,T3)0sim(T2,T3)0,5sim(T3,T4)0,25sim(T4,T6)0,5sim(T1,T4)0,5sim(T2,T4)0,5sim(T3,T5)0,5sim(T4,T7)0,25 sim(T1,T5)0,25sim(T2,T5)0,75sim(T3,T6)0,5sim(T5,T6)0,75 sim(T1,T6)0,25sim(T2,T6)0,75sim(T3,T7)0,25sim(T5,T7)0 sim(T1,T7)0,25sim(T2,T7)0sim(T4,T5)0,5sim(T6,T7)0

Links: esempio (2) Ponendo θ=0,5 i vicini sono: T4T2 T6T5T4T3T1 T6T5T2 T6T5T2T1 T6T4T3T2 T5T4T3T2 T1 T2 T3 T4 T5 T6 Link(T3,T4)=3 Link(T1,T5)=2 …

Criterion Function Dove: k = n° di clusters, n i = n° di punti nel cluster C i (n i ) 1+2f(θ) è il numero atteso di links tra coppie di punti in Ci Obiettivo: Massimizzare il numero di links tra i punti appartenenti allo stesso cluster Minimizzare il numero di links tra punti appartenenti a cluster diversi

Goodness Measure La criterion function misura la bontà della soluzione trovata: il clustering migliore è quello che ha il più alto valore della funzione obiettivo. Ad ogni step è però necessaria una indicazione su quali sono i migliori 2 clusters da fondere. Per la coppia di cluster C i,C j si definisce la goodness measure g(Ci,Cj) Intuitivamente possiamo pensare di unire due cluster che hanno molti vicini in comune

Goodness Measure (2) E’ necessario anche un denominatore che rappresenti il numero atteso di cross-links fra clusters. Dove: (n i +n j ) 1+2f(θ) è il numero di links atteso tra coppie di punti nel cluster unione dei singoli cluster C i e C j e composto da n i +n j elementi.

ROCK Clustering Algorithm Le fasi principali di questo algoritmo sono: L’algoritmo ROCK non lavora su tutti i punti del data set, ma ne estrae un campione e esegue il clustering solo su di essi E’ necessario fornire a ROCK diversi parametri, tra cui il numero di clusters desiderati La nozione di links tra punti permette un approccio globale al problema del clustering I restanti punti sono inseriti nei clusters trovati da ROCK in un secondo momento

ROCK Clustering Algorithm (2) Dati di input: (k,S) 1.Viene richiamata la procedura compute-links(S)

Procedura compute-links Con questa procedura viene calcolato, per ogni coppia di punti, il numero di vicini in comune L’idea di base è che se considero un punto (A) e calcolo quali sono i suoi vicini (ad esempio B e C) allora ogni coppia di vicini (B e C in questo caso) avrà sicuramente un vicino in comune che è il punto stesso (A) La procedura deve essere ripetuta per ogni punto campionato e il contatore deve essere incrementato per ogni coppia di vicini

Procedura compute-links : esempio Ponendo θ=0,5 i vicini sono: T1 T4T2 T6T5T4T3T1T6T5T2 T3 T6T5T2T1 T6T4T3T2 T5T4T3T2 T4 T5 T6 Link(T2,T4)=1 Link(T1,T3)=1 Link(T1,T4)=1 Link(T1,T5)=1 Link(T1,T6)=1 Link(T3,T4)=1 Link(T3,T5)=1 Link(T3,T6)=1 Link(T4,T5)=1 Link(T4,T6)=1 Link(T5,T6)= 1 Link(T2,T5)=1 Link(T2,T6)= 1 2

ROCK Clustering Algorithm (2) Dati di input: (k,S) 4.Viene inoltre costruita una pila globale Q contenente tutti i clusters/punti ordinati in modo decrescente secondo la loro miglior goodness measure. 1.Viene richiamata la procedura compute-links(S) 2. For each-loop Per ogni valore campionato s viene costruita una pila locale q[s] contenente tutti i punti j con link[s,j]≠0, ordinati in maniera decrescente secondo la goodness measure rispetto a s.

ROCK Clustering Algorithm (3) 5. While-loop Mediante questo loop si effettua la vera e proprio operazione di clustering. Vengono identificati i clusters u e v come clusters che più si prestano a diventare un unico cluster. Viene creato un nuovo cluster w che contiene tutti i punti di u e v. Esempio

q[3] q[4] … Q u Q u 3 q[u] v v 1 Q w 1 U 3 Esempio: scelta dei miglior clusters da unire Q

ROCK Clustering Algorithm (4) 10. for each sub-loop E’ ora necessaria una fase in cui viene considerato il cluster unico w invece che i singoli clusters u e v. Tutti i clusters x che precedentemente avevano relazioni con i singoli clusters u o v devono ora prendere in considerazione il cluster unico w. 16. Infine viene aggiornato Q con il nuovo custer w in base alla sua miglior goodness measure (locale). Inoltre vengono deallocate le memorie che contenevano i local heap dei singoli cluster u e v.

Labeling dei dati Non tutti i punti del data set sono stati forniti in input a ROCK Sono stati generati dei cluster a partire da un sottoinsieme del data set Come assegnare i punti che sono sul disco ai clusters individuati? 1.Estraggo da ogni cluster i un frazione dei punti (L i ) 2.Per ogni punto p del data set letto da disco calcolo per ogni cluster i: 3.Il punto p è assegnato al cluster i dove la funzione precedentemente calcolata assume valore massimo

Complessità spaziale e temporale Nel caso peggiore la complessità temporale dell’algoritmo ROCK è: Dove: n è il numero di punti in input m m è il numero massimo di vicini m a è il numero medio di vicini La complessità spaziale è:

Risultati Sperimentali L’algoritmo ROCK è stato testato su diversi data set: Sono stati confrontati i risultati dell’algoritmo ROCK e di altri algoritmi di clustering gerarchico, applicati agli stessi data set.

Risultati Sperimentali