Time Series Discords Algoritmi e Applicazioni De Benedetto Benedetta Giombetti Nicola Corso di Sistemi Informativi per le Decisioni L-S Anno accademico.

Slides:



Advertisements
Presentazioni simili
Elementi di complessità
Advertisements

Problema dellordinamento Input: Sequenza di n numeri Output: Permutazione π = tale che: a 1 a 2 …… a n Subroutine in molti problemi E possibile effettuare.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
1 Introduzione Ottimizzazione di un sistema (per es. di calcolo) (1) Analisi dellimpatto delle varie soluzioni possibili (2) Legge di Amdhal (3) Scelta.
1 Introduzione Il concetto di prestazione si presta facilmente a valutazioni soggettive, spesso fuorvianti Metriche di analisi oggettive sono utili per.
TEORIA RAPPRESENTAZIONALE DELLA MISURA
Corso di Tecniche e Sistemi di trasmissione Fissi e Mobili
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi e strutture Dati - Lezione 7
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 Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Processi Aleatori : Introduzione – Parte I
Algoritmi e Strutture Dati (Mod. A)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Scene Modelling, Recognition and Tracking
“Riconoscimento di Facce”
Apprendimento di movimenti della testa tramite Hidden Markov Model
EQUAZIONI PER IL MOTO DEI FLUSSI GEOFISICI
Studente Claudia Puzzo
Laboratorio di El&Tel Elaborazione numerica dei segnali: analisi delle caratteristiche dei segnali ed operazioni su di essi Mauro Biagi.
QuickSort Quick-Sort(A,s,d) IF s < d THEN q = Partiziona(A,s,d) Quick-Sort(A,s,q-1) Quick-Sort(A,q + 1,d)
Analisi delle corrispondenze
Analisi dei gruppi – Cluster Analisys
Algoritmi su Tipi Semplici
Clustering Mercoledì, 24 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Density-Based Clustering.
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
APPLICAZIONI DI INTELLIGENZA ARTIFICIALE ALLA MEDICINA
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Elementi di Informatica di base
Statistica economica (6 CFU) Corso di Laurea in Economia e Commercio a.a Docente: Lucia Buzzigoli Lezione 4 1.
Passo 3: calcolo del costo minimo
Superfici nascoste Daniele Marini.
UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA PER LA GESTIONE D’AZIENDA Tesi di laurea: Progettazione.
ROCK A Robust Clustering Algorithm for Categorical Attributes Sudipto Guha, Rajeev Rastogi, Kyuseok Shim Sistemi Informativi per le Decisioni a.a. 2005/2006.
Studio degli indici per query di similarità basati su matrici di distanze Esame di Sistemi Informativi per le Decisioni L-S Presentato da: Ing. Marco Patella.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
“Exact Indexing of Dynamic Time Warping” di E.Keogh G. Fregnan, T. Splendiani 17/03/06 Exact Indexing of Dynamic Time Warping Eamonn Keogh Computer Science.
DAC A RESISTORI PESATI.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Risoluzione dei Problemi (parte 2) Agostino Poggi.
Intelligenza Artificiale Risoluzione di Problemi
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Allineamento di sequenze
Bit singolo e burst u un canale che trasmette voce tollera bene gli errori distribuiti uniformemente –perche’ errori singoli hanno effetti simili al rumore.
Automi temporizzati.
CURE: AN EFFICIENT CLUSTERING ALGORITHM FOR LARGE DATABASES GRUPPO 12 Filippo Bindi Massimiliano Ceccarini Andrea Giuliodori PRESENTAZIONE Sistemi Informativi.
Problema dell’Ordinamento. Problema dell’ordinamento Formulazione del problema –Si vuole ordinare una lista di elementi secondo una data proprietà P Esempio:
GLI ALGORITMI DI ORDINAMENTO
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Sistemi e Tecnologie Informatiche Complessità di calcolo.
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
REALIZZAZIONE DI UN SISTEMA DI CLASSIFICAZIONE Prof. Roberto Tagliaferri Studente: Ragognetti Gianmarco Corso di Reti Neurali e Knowledge Discovery A.A.
Tecniche di Gestione della Qualità Prof. Alessandro Ruggieri Prof. Enrico Mosconi A.A
Analisi matematica Introduzione ai limiti
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
ANALISI DEI SEGNALI Si dice segnale la variazione di una qualsiasi grandezza fisica in funzione del tempo. Ad esempio: la pressione in un punto dello spazio.
Tecniche di Gestione della Qualità Prof. Alessandro Ruggieri Prof. Enrico Mosconi A.A
Transcript della presentazione:

Time Series Discords Algoritmi e Applicazioni De Benedetto Benedetta Giombetti Nicola Corso di Sistemi Informativi per le Decisioni L-S Anno accademico Prof. M. Patella

Time series sequenze di rilevazioni effettuate nel tempo Esempio di serie temporale: Elettrocardiogramma In letteratura l’analisi delle serie temporali è mirata alla ricerca della similarità tra sequenze di valori allo scopo di: Predire ed estrapolare valori futuri Ricercare occorrenze di pattern conosciuti Individuare nuovi pattern …

Finding Time series discords Applicazioni per DM: Clustering improving quality Data cleaning Anomaly Detection Ricerca di sottosequenze che si discostano maggiormente da tutte le altre

Alcune definizioni Time Series: Time Series: una time series T = t 1,…,t m è un set ordinato di m variabili a valori reali Subsequence: Subsequence: una subsequence C di T è un campione di elementi contigui appartenenti a T di lunghezza n ≤ m: C = t p,…,t p+n-1 con 1 ≤ p ≤ m – n + 1 Sliding Window: Sliding Window: finestra di dimensione n che individua tutte le possibili subsequence scorrendo su T Dist(C,M): Dist(C,M): funzione distanza tra due subsequence C ed M che supponiamo simmetrica

Discords e Trivial Matches La ricerca di Time series discord implica: Il confronto di ogni subsequence con la sua subsequence più simile l’identificazione della coppia di subsequence più differente Problema: Tipicamente i valori minori di Dist si rilevano tra subsequence slittate tra loro di pochi punti (Trivial Matches) a b c a b c a b c a b c X X X a b c a b c a b a c a b XXX è “vicino” a XXa!!

Esempio Utilizziamo la distanza di Hamming a b c a b c a b c a b c X X X a b c a b c a b a c a b b c a Min( ) = 0 a 0 b 0 c 0 a 0 b 0 c 0 a 0 b 0 c 0 a 0 b 1 c 1 X 1 X 1 X 1 a 0 b 0 c 0 a 0 b 0 c 0 a 1 b 2 a 1 c 0 ab a b c a b 0 c a b c a b c X X X a b c a b c a b a c ab Ripetendo il procedimento per tutte le subsequence otteniamo… COME ELIMINARE I TRIVIAL MATCHES?!

Esempio(2) a 0 b 0 c 0 a 0 b 0 c 0 a 0 b 0 c 0 a 0 b 1 c 1 X 1 X 1 X 1 a 0 b 0 c 0 a 0 b 0 c 0 a 1 b 2 a 1 c 0 ab I confronti fuorvianti (trivial matches) sono così eliminati!! Applicazione del Non_Self Match: a 0 b 0 c 0 a 0 b 0 c 0 a 0 b 0 c 0 a 0 b 1 c 2 X 3 X 2 X 1 a 0 b 0 c 0 a 0 b 0 c 0 a 1 b 2 a 1 c 0 abc Non-Self Match: Non-Self Match: data una serie T, contenete due subsequence C ed M di lunghezza n, che iniziano rispettivamente alle posizione p e q, M è un Non-Self Match di C alla distanza Dist(M,C) se |p-q|>=n Non_Self Match:

Definizione formale: Time Series Discord Data una time series T, si definisce Discord di T la subcequence D che ha la distanza maggiore con il suo non-self match più vicino. Ovvero: Data ogni subsequence C di T, ogni non-self match MD di D ogni non-self match MC di C Vale: min(Dist(D, MD)) > min(Dist(C, MC)) Indicheremo con D.l: posizione del Discord D.dist: distanza rispetto al non-self match più vicino Dn: lunghezza del Discord

Discords e densità Discords e densità Immaginiamo di proiettare tutte le subsequence di lunghezza 50 in uno spazio vettoriale 50-dimensionale e di misurare la densità di ciascuna Le discords non si trovano in regioni a bassa densità!!! Al contrario la non-self distance riesce ad identificarle chiaramente

Brute Force algorthm Function [dist,loc] = Brute_Force(T.n) best_so_far_dist = 0 best_so_far_loc = NaN For p=1 to |T|-n+1//Begin Outer loop nearest_neighbor_dist = infinity For q=1 to |T|-n+1//Begin Inner loop IF |p-q| ≥ n//Non self match IF Dist(tp,...,tp+n-1.tq,...,tq+n-1) < nearest_neighbor_dist nearest_neighbor_dist = Dist(tp,...,tp+n-1.tq,...,tq+n-1) End End//End of non self match End//End of Inner loop IF nearest_neighbor_dist > best_so_far_dist best_so_far_dist = nearest_neighbor_dist best_so_far_loc = p End End//End of Outer loop Return[best_so_far_dist, best_so_far_loc]

Caratteristiche del Brute Force Richiede un unico parametro (n) Richiede un unico parametro (n) L’algoritmo non è combinabile L’algoritmo non è combinabile Complessità O(m 2 ) Complessità O(m 2 ) Osservazione1: nell’inner loop non è necessario trovare il miglior match, non appena troviamo un segmento tale che Dist<best_so_far_dist possiamo abbandonare l’istanza Osservazione2: l’utilità della precedente ottimizzazione dipende dall’ordine di valutazione dei segmenti nell’outerloop Come migliorare l’algoritmo?? INSOSTENIBILE!

Heuristic algorithm Function [dist,loc] = Heuristic_Search(T.n,Outer,Inner) best_so_far_dist = 0 best_so_far_loc = NaN For Each p in T ordered by heuristic Outer//Begin Outer loop nearest_neighbor_dist = infinity For Each q in T ordered by heuristic Inner//Begin Inner loop IF |p-q| ≥ n//Non self match IF Dist(tp,...,tp+n-1.tq,...,tq+n-1) < best_so_far_dist Break End IF Dist(tp,...,tp+n-1.tq,...,tq+n-1) < nearest_neighbor_dist nearest_neighbor_dist = Dist(tp,...,tp+n-1.tq,...,tq+n-1) End End//End of non self match End//End of Inner loop IF nearest_neighbor_dist > best_so_far_dist best_so_far_dist = nearest_neighbor_dist best_so_far_loc = p End End//End of Outer loop Return[best_so_far_dist, best_so_far_loc]

Strategie di ordinamento Random O(m)÷O(m 2 ) Magic O(m) Perverse O(m 2 ) Osservazione3: nell’outer loop è sufficiente trovare un valore di distanza abbastanza grande nelle prime iterazioni Osservazione4: nell’inner loop è sufficiente trovare un valore di distanza minore del valore corrente di best_so_far_dist nelle prime iterazioni Tale ordinamento richiede almeno O(mlogm)!! Come approssimare l’ordinamento “Magic”??

SAX (Symbolic Aggregate approXimation) Rappresenta una time series C di lunghezza n in uno spazio vettoriale w-dimensionale ottenendo un vettore  A ciascuna partizione α è associato un simbolo  Ogni subsequence sarà rappresentata da una parola di w simboli equiprobabili

Approssimare “Magic” tramite SAX Outer loop: Individuare subsequence meno frequenti Vettore delle occorrenze delle parole individuate Inner loop: Trovare subsequence simili a quella considerata nel punto precedente Albero per la mappatura Quanti bit per simbolo?Solo Strutture significativamente piccole rispetto alla serie temporale di partenza Scelte le prime subsequence le altre possono essere ordinate casualmente

Perfezionamento dell’algoritmo Per simmetricità della funzione distanza: individuato nell’inner loop un item C j sufficientemente vicino al candidato dell’outer loop possono essere scartati entrambi Scelta dei parametri α e w : α ottimale: 3 o 4 (empiricamente) w ottimale: dipende dai dati Per dataset con valori relativamente piatti  w ridotto Per dataset con maggiore complessità  w elevato Si osservi che La velocità dell’algoritmo dipende solo marginalmente da w variando w dal 60% al 150% otteniamo un decremento della velocità del 12%

Applicazioni (1) Trovare anomalie nella Telemetria Spaziale Rilevazione di enormi quantità di dati mediante sensoristica Problemi più o meno evidenti ad occhio nudo sono facilmente individuati dall’algoritmo con velocità decisamente superiore rispetto al precedente brute force

Applicazioni (2) Monitoraggio delle fasi del sonno dei pazienti Problema: non si tratta della classica anomaly detection!!! Al passare del paziente da uno stato all’altro il segnale si modifica  individuare i punti di transizione L’algoritmo di anomaly detection è utilizzabile in quanto vi saranno forme d’onda ‘inusuali’ al passaggio da uno stato all’altro

Applicazioni (3) Anomaly detection in ECG Complessità dell’andamento… semplicità nell’individuare le discord …specialmente in caso di riduzioni significative del passo di campionamento!!! Grande aiuto per l’analisi di lunghe serie di dati

Utilità dell’ordinamento euristico Il confronto delle distanze tra subsequence corrente e best _so_far_dist occupa più del 99% del tempo di entrambi gli algoritmi Calcolando il numero di chiamate di tale operazione nei 2 algoritmi… Guadagno di almeno 3 ordini di grandezza sulla velocità di esecuzione! Il guadagno aumenta al crescere della dimensione del dataset Nota: nell’heuristic search consideriamo trascurabile il tempo impiegato dall’algoritmo di ordinamento

Conclusioni L’algoritmo Heuristic search: Richiede un solo parametro d’ingresso: n Riduce notevolmente i tempi grazie all’ordinamento Richiede un’ulteriore complessità O(m) per l’ordinamento, tuttavia eseguito una sola volta Nella pratica, ha dato risposte concordanti con le annotazioni dei tecnici Future direzioni di sviluppo:  Estensione alla multidimensionalità  Utilizzo di diverse misure di distanza

Grazie per l’attenzione…