Framework per l'analisi visuale e l'elaborazione di serie temporali
by Riccardo Zorzato
Serie temporali e file CSV
Il progetto di tesi di Riccardo Zorzato prende spunto dal fatto che nel machine learning, l’apprendimento supervisionato richiede un dataset etichettato. Questo tipo di dataset si ottiene tipicamente svolgendo una operazione manuale chiamata “labelling”.
Le serire temporali sono tra i tipi di informazione più frequentemente trattati con tecniche di machine learning. Si tratta di sequenze di valori che possono essere rappresentati su un grafico che riporta il tempo sull’asse delle ascisse. Esempi di serie temporali sono l’andamento della temperatura in una stanza oppure la percentuale di apertura di una valvola.
Il labelling di una serie temporale consiste nell’associare delle etichette ad specifici intervalli temporali. Questo richiede spesso un notevole sforzo in termini di tempo.
Uno dei formati di file più frequentemente utilizzato per memorizzare delle serie temporali sono i file con formato CSV (Comma Separated Values), che possono essere aperti e manipolati con Microsoft Excel oppure con Libreoffice. Quest’ultimo gestisce la lettura e il salvataggio dei file CSV in modo molto più accurato. I file CSV permettono di memorizzare le serie temporali come colonne di valori associati a dei marcatori temporali, detti timestamp.
Obiettivi
Realizzazione di uno strumento che permetta le seguenti operazioni:
- Lettura e scrittura dei file CSV, con ricerca automatica dei file all’apertura all’interno dell’albero della directory specificata.
- Visualizzazione delle serie temporali con allineamento sull’asse delle X.
- Inserimento di label agli eventi di interesse, con possibilità di personalizzare le etichette.
- Uso di file di configurazione condivisi.
- Utilizzo combinato di mouse e tastiera per un più efficace e rapido svolgimento delle varie operazioni.
- Confronto fra dati in sotto-grafici sovrapponibili.
- Rappresentazione di più serie nello stesso grafico.
- Normalizzazione dei diagrammi.
- Salvataggio della configurazione.
- Sottocampionamento di serie ampie per rendere più Efficiente l’utilizzo delle risorse del sistema.
- Calcolo di funzioni sui dati a disposizione.
- Modularità ed estensibilità per insiemi di funzioni definite dall’utente.
Sotto-campionamento
Le serie temporali memorizzate nei file CSV possono spesso contenere un numero elevatissimo di punti, anche milioni. La visualizzazione di un numero così elevato di punti può essere un compito pesante da svolgere, richiedendo molto tempo e anche bloccando temporaneamente il computer.
Per ovviare a questo inconveniente, TSL effettua un sottocampionamento dei dati da gestire prima di visualizzarli. Per questo viene utilizzata la libreria LTTB (Largest-Triangle-Three-Buckets), che implementa l’algoritmo di Sveinn-Steinarsson per il sotto-campionamento.
Architettura software
Il software realizzato è composto da vari moduli che si implementano le diverse funzionalità. In particolare, le funzioni per la visualizzazione grafica sono state curate per fornire una esperienza di utilizzo del programma il più semplice e immediata possibile.
Esempi
Labelling
Nel video seguente sono mostrate le funzionalità di TSL relative al labelling di serie temporali memorizzate in diversi file CSV.
Personalizzazione del layout
Il video seguente mostra le funzionalità relative alla personalizzazione del layout di visualizzazione.
Ciascun pannello può contenere più serie temporali per meglio confrontare i due andamenti. Inoltre la stessa serie temporale può essere inserita in più pannelli diversi.
Applicazione di funzioni definite dall’utente
Il video seguente presenta la modalità con cui possono essere inserite nella visualizzazione delle funzioni di calcolo applicate alle serie temporali caricate da file CSV.