• Non ci sono risultati.

Scelta e acquisizione dei dati

Nel documento La Scienza dei Dati (pagine 53-71)

Capitolo 2 - Il ciclo di vita del dato digitale Carlo Batini

4. Scelta e acquisizione dei dati

Nel nuovo mondo dei big data, le fonti di dati sono un numero infinitamente più grande che nel passato, e sono caratterizzate da più elevati volume, velocità, varietà. Questa situazione di grande disponibilità di dati, peraltro, richiede maggiore attenzione rispetto al mondo dei sistemi informativi tradizionali nei due passi di cui si compone questa attività. Vediamoli:

1. Scelta delle fonti, in cui dobbiamo selezionare tra le tante fonti disponibili quelle che fanno al caso nostro, tenendo conto della loro eventuale disponibilità come dati aperti, e dunque gratuiti, del loro livello di aggiornamento, del formato in cui sono resi disponibili, dell’eventuale costo derivante dal fatto che i dati non risultano essere già disponibili; in questo caso, ad esempio, in una partita di pallacanestro in cui siamo interessati ad analizzare il tipo di gioco dei singoli giocatori e della squadra nel suo complesso, occorre dispiegare una rete di sensori sul pallone e sulle scarpe e le braccia dei giocatori, per essere in grado di misurare la velocità con cui le due squadre fanno girare la palla, le traiettorie dei giocatori, ecc.

2. Acquisizione dei dati grezzi, in cui si acquisiscono e si memorizzano i dati scelti nel passo precedente. In questo caso, qualora si acquisiscano dati caratterizzati da un flusso continuo, occorre dimensionare la memoria e gli elaboratori disponibili per essere in grado di elaborare dati per un determinato periodo temporale al termine del quale i dati non servono più, e fare spazio a nuovi dati in streaming che vengono caricati in pipeline rispetto ai precedenti. Alcune di queste problematiche saranno esaminate nel Capitolo 4.

Le fonti individuate e i dati acquisiti nei due passi precedenti potrebbero non essere sufficienti a descrivere le variabili del problema; in questo caso dobbiamo individuare nuove fonti, ovvero un nuovo problema che approssima il precedente.

Nell’esempio di Breezometer, le fonti riguardano tutti i fenomeni che influenzano l’inquinamento, e perciò il traffico, il riscaldamento, l’orografia, il vento, la presenza di arre verdi, tutti fenomeni che vanno monitorati nel tempo. Occorre poi acquisire una rappresentazione del territorio su cui “mappare” tutte le precedenti fonti (vedi Figura 7 in cui diamo una rappresentazione figurativa delle fonti).

54

Figura 7 – Fonti di dati per Breezometer

Nell’esempio dei professionisti, supponiamo che la anagrafe esista già e venga messa a nostra disposizione per effettuare le analisi attraverso un trasferimento di file, ovvero su supporto magnetico. Il relativo file è stato mostrato in Figura 5, che rappresenta un frammento della anagrafe nel suo complesso.

5. Gestione

La fase di gestione è la fase in cui occorre governare i problemi connessi alla varietà ed eterogeneità delle rappresentazioni dei dati digitali. Nella fase di gestione (anche chiamata di preparazione), i dati sono analizzati per renderne più comprensibile il significato (passi di Modellazione, Trasformazione, Arricchimento semantico), per «metterli insieme» (passo di Integrazione), per migliorarne la accuratezza (passo di Valutazione e miglioramento della qualità), per ridurne la dimensione. Questa è usualmente la fase più dispendiosa del ciclo di vita, e può corrispondere fino all’80 per cento dello sforzo complessivo.

5.1 Modellazione

In questo passo si decide il modello con cui rappresentare i dati grezzi. Nel prossimo Capitolo 3 vedremo diversi modelli di rappresentazione, il più semplice è il modello relazionale, che rappresenta i dati con tabelle; a ogni colonna nella tabella viene assegnato un nome della colonna, detto attributo.

Per il momento non abbiamo ancora molti elementi per poter assegnare nomi a colonne (mentre il nome della tabella può essere, in inglese European professionals, o, al singolare, European professional), per cui l’output del passo di modellazione è la tabella di Figura 8, in cui abbiamo inserito

Google Maps Sensori nei Comuni

Flussi di trasporto Fonti di dati

ambientali

55

una prima colonna che dà la posizione della riga nella tabella e una prima riga che fornisce la posizione della colonna nella tabella. Non riportiamo qui e nel seguito il nome della tabella.

Figura 8 – Output del passo di modellazione per la tabella European professional

Figura 9 – Output del passo di profilazione

1 2 3 4 5 6 7 8 9 10 11

Tuple #

1 Miroslav Konecny 1978 7 10 Street St. John 49 Prague 412776 null

2 Martin Necasky 1975 7 8 Sq. Vienna null Bratislava 101278 Slovensko

3 Miroslav Konecny null null null Str. Saint Jon 49 Prague 412776 null

4 Crlo Btini 1949 June 7 Street Dessiè 15 Roma 00198 Italia

5 Miroslav Knecy 1978 7 10 Sq. Budapest 23 Wien null Austria

6 Anisa Rula 1982 September 7 Via Sesto null Milano 20… Ital

7 Anita Rula 1982 9 7 Via Seto 23 Milan null Italy

8 Anna Rla null null null Via Sarca 336 Milano null Italy

9 Carlo Batini 1949 6 7 V. Beato Angelico 23 Milan 20133 Italy

10 Carla Botni 1949 June 7 Av. Charles null Prague 412733 null

11 Marta Necasky 1976 11 8 null null null Bratislava 112234 Slov.

1 2 3 4 5 6 7 8 9 10 11

Tuple # Year Month Day

1 Miroslav Konecny 1978 7 10 Street St. John 49 Prague 412776 null

2 Martin Necasky 1975 7 8 Sq. Vienna null Bratislava 101278 Slovensko

3 Miroslav Konecny null null null Str. Saint Jon 49 Prague 412776 null

4 Crlo Btini 1949 June 7 Street Dessiè 15 Roma 00198 Italia

5 Miroslav Knecy 1978 7 10 Sq. Budapest 23 Wien null Austria

6 Anisa Rula 1982 September 7 Via Sesto null Milano 20… Ital

7 Anita Rula 1982 9 7 Via Seto 23 Milan null Italy

8 Anna Rla null null null Via Sarca 336 Milano null Italy

9 Carlo Batini 1949 6 7 V. Beato Angelico 23 Milan 20133 Italy

10 Carla Botni 1949 June 7 Av. Charles null Prague 412733 null

56

5.2 Profilazione

In questo passo vengono prodotti dati statistici sulle caratteristiche dei dati, che forniscano elementi per ricostruirne il significato. Ad esempio, una analisi della terza colonna mostra che i valori sono tutti distribuiti tra 1949 e 1978, mentre una analisi della colonna successiva mostra che i valori numerici sono distribuiti tra 7 e 11 e i valori testuali sono relativi a mesi. Dall’esito di queste analisi possiamo assegnare i nomi alle colonne dalla terza alla quinta, rispettivamente Year, Month, e Day, vedi Figura 9 della pagina precedente. Si noti che per il momento possiamo soltanto dare nomi generici per i tre riferimenti temporali, non abbiamo elementi per specializzarli ulteriormente, come, ad esempio “Year of first employment” o altro.

5.3 Arricchimento semantico

In questo passo dobbiamo cercare di arricchire il significato dei dati. Nello studio di caso dei professionisti europei, l’esigenza è quella di completare i nomi degli attributi, aggiungendo eventualmente altre proprietà. Se ci concentriamo ad esempio sulla colonna 9, e confrontiamo i valori con quelli di domini (cioè insiemi di definizione di valori) di cui abbiamo una descrizione sul Web, possiamo facilmente scoprire che si tratta di Città europee. Osservando le colonne Year, Month, Day, scopriamo che le date sono compatibili con una interpretazione compatibile con le date di nascita delle persone descritte nella tabella; arriviamo perciò alla conclusione di sostituire i nomi generici delle tre colonne con nomi facenti riferimento alla data di nascita.

Figura 10 – Output del passo di arricchimento semantico

Più difficile è la interpretazione del significato delle altre colonne. Ad esempio, la colonna 11 ha valori che in parte troviamo nel dominio dei nomi in italiano delle nazioni europee, mentre altri valori come

Tuple # F.Name Last Name Y.of Birth M. Of Birth D. Birth Toponym Name of toponym Number T. City Zip Code Country

1 Miroslav Konecny 1978 7 10 Street St. John 49 Prague 412776 null

2 Martin Necasky 1975 7 8 Sq. Vienna null Bratislava 101278 Slovensko

3 Miroslav Konecny null null null Str. Saint Jon 49 Prague 412776 null

4 Crlo Btini 1949 June 7 Street Dessiè 15 Roma 00198 Italia

5 Miroslav Knecy 1978 7 10 Sq. Budapest 23 Wien null Austria

6 Anisa Rula 1982 September 7 Via Sesto null Milano 20… Ital

7 Anita Rula 1982 9 7 Via Seto 23 Milan null Italy

8 Anna Rla null null null Via Sarca 336 Milano null Italy

9 Carlo Batini 1949 6 7 V. Beato Angelico 23 Milan 20133 Italy

10 Carla Botni 1949 June 7 Av. Charles null Prague 412733 null

57

“Slovensko” sono valori di nazioni, ma espressi in una lingua diversa dall’italiano. Poiché i vari domini compatibili con i valori nella colonna fanno tutti riferimento a Nazioni, possiamo arrivare alla conclusione che la colonna rappresenti Nazioni, chiamandola così Country. Vediamo anche qui che per il ciclo di vita del dato possiamo sfruttare risorse disponibili nel Web; avevamo già fatto un esempio di questo uso del Web nel Capitolo 1 a proposito del termine Roma. L’esito del passo di arricchimento semantico è mostrato in Figura 10 della pagina precedente.

5.4 Normalizzazione

Il passo di normalizzazione ha lo scopo di uniformare i valori presenti nella tabella rispetto a versioni descritte attraverso domini o grammatiche standardizzate e condivise. Ad esempio, la colonna Month of Birth è espressa da valori che sono stati riconosciuti essere relativi a mesi, ma che sono eterogenei tra loro, in quanto in parte numerici e in parte testuali. In questo caso possiamo convertire i valori testuali in valori numerici, ottenendo la nuova colonna di Figura 11. Possiamo anche sostituire i valori Slovensko e Slov nella colonna Country con il valore Slovakia.

Figura 11 – Esito del passo di normalizzazione

Possiamo poi operare una normalizzazione sulla colonna Name of Toponym, in cui ad esempio compaiono i valori

 St. John e  Saint Jon

E’ frequente che per fretta o per imprecisione quando si inseriscono valori di parole composte si abbrevino le parole facenti riferimento a nomi comuni frequenti come ad esempio

 Saint St.

Tuple # F.Name Last Name Y.of Birth M. Of Birth D. Birth Toponym Name of toponym Number T. City Zip Code Country

1 Miroslav Konecny 1978 7 10 Street Saint John 49 Prage 412776 null

2 Martin Necasky 1975 7 8 Square Vienna null Bratislava 101278 Slovakia

3 Miroslav Konecny null null null Street Saint Jon 49 Prague 412776 null

4 Crlo Btini 1949 6 7 Street Dessiè 15 Roma 00198 Italia

5 Miroslav Knecy 1978 7 10 Square Budapest 23 Wien null Austria

6 Anisa Rula 1982 9 7 Street Sesto null Mian 20… Ital

7 Anita Rula 1982 9 7 Street Seso 23 Milan null Italy

8 Anna Rla null null null Street Sarca 336 Milano null Italy

9 Carlo Batini 1949 6 7 Street Beato Angelico 23 Milano 20133 Italy

10 Carla Botni 1949 6 7 Avenue Charles null Prague 412733 null

58

 Year of Birth Y. Of Birth

Nel passo di normalizzazione si devono anzitutto scoprire pattern di parole appartenenti a queste forme lessicali, parole che vanno successivamente ricondotte alla forma lessicale standard. E’ quello che abbiamo fatto con St. John nella prima riga della tabella di Figura 11. Si noti che non siamo intervenuti in questa fase sul termine Saint Jon perché, pur essendo visibilmente mancante di un carattere, risponde al formato standard dei nomi di toponimi.

5.5 Metadatazione

I metadati sono i dati sui dati; ad esempio i nomi degli attributi nella tabella di Figura 11 sono metadati,

perché esprimono il significato dei dati nella colonna. Altri tipici metadati sono rappresentati in Figura 12, riferiti al caso Breezometer; in questo caso facciamo riferimento a dati di tipo remote sensing (vedi [Barsi 2019], inviati da aereo o satellite. Per alcuni metadati di una immagine vengono riportati il nome del metadato e il tipo dei valori. In particolare:

 la fonte è un dato fondamentale, perché permette di risalire al soggetto o tecnologia che ha inizialmente prodotto l’immagine, ad es. un aereo o un satellite.

 Il tempo di inizio e fine forniscono informazioni sull’intervallo di tempo in cui la immagine è stata prodotta e acquisita;

 le longitudini, insieme alle latitudini, esprimono le coordinate spaziali dei quattro vertici della immagine, che supponiamo sia inviata in formato rettangolare.

Metadato Tipo di dato

Fonte Stringa di caratteri

Tempo di inizio Timestamp

Tempo di fine Timestamp

Longitudine punto in alto a sinistra Floating point Longitudine punto in basso a sinistra Floating point Longitudine punto in alto a destra Floating point Longitudine punto in basso a destra Floating point

Figura 12 – Metadati per il caso Breezometer

Esistono molti standard per la definizione di metadati, si veda ad esempio lo standard Dublin core, www.dublincore.org.

5.6 Trasformazione di modello

In questo passo si opera sui dati per trasformare il modello con cui sono rappresentati. L’esigenza connessa alla trasformazione di modello può derivare dal fatto che l’attuale modello non è più adatto a rappresentare i dati, in virtù del loro progressivo aumento, oppure che si vuole adottare un modello che descrive la semantica dei dati in modo più ricco, oppure ancora per uniformare il modello di un insieme di dataset inizialmente rappresentati con modelli diversi. In Figura 13 è mostrato il primo caso; inizialmente abbiamo un grafo rappresentato per mezzo di un insieme di nodi e archi; successivamente, man mano che il grafo cresce, è modellato inizialmente con una matrice di adiacenza, in cui i nodi

59

corrispondono alle righe e colonne della matrice e le celle rappresentano le coppie di nodi connessi, ed è modellato infine con una rappresentazione ibrida tra le due precedenti, che riprenderemo nel Capitolo 12 sulle astrazioni.

Figura 13 – Tre diversi modelli di rappresentazione di un grafo che cresce nel tempo (in parte tratta da V. Batagelij - Visual analysis of large graphs using (x, y)-clustering and hybrid visualizations, 2010)

5.7 Controllo di qualità

I dati che vengono rilevati nel ciclo di vita sono spesso soggetti ad errori o approssimazioni. Ad esempio, se vengono rilevati dati da un sensore di temperatura, è possibile che per qualche ragione la misurazione sia imprecisa, o errata. E’ anche possibile che nel caso i dati siano rilevati senza soluzione di continuità, il sensore si guasti, e quindi i dati siano non definiti per un intervallo temporale che dura fin quando il sensore non sia riparato. Il tema della qualità dei dati è molto vasto, come vedremo nel Capitolo 9. Qui ci focalizziamo su due proprietà dei dati nelle tabelle, la accuratezza e la completezza. Consideriamo la prima riga della tabella, e in particolare il nome della città, “Prage”. Questo nome non compare tra le città europee, e quindi possiamo fare la assunzione che sia errato. Per correggerlo, possiamo confrontare “Prage” con i nomi delle città europee, e cercare quella con il nome più vicino, che è “Prague”. Siccome disponiamo dello Zip code, ma non del Country, possiamo verificare per riscontro se effettivamente quello zip code sia associabile alla città di Praga. Dopo queste verifiche possiamo sostituire “Prage” con “Prague”; possiamo inoltre confrontare “Saint Jon” con le strade nello stradario di Praga, cercando quella più vicina come stringa di caratteri, che assumiamo sia “Saint John”, ottenendo infine la nuova tabella di Figura 14.

1 2

3 4

Rappresentazione

60

Figura 14 - Output del passo di verifica di accuratezza

Figura 15 - Output del passo di verifica di completezza

La seconda caratteristica di qualità dei dati che prendiamo in considerazione è la completezza, e fa riferimento alla presenza di valori nulli, che corrispondono ad assenza di informazione. E’ buona norma cercare di sostituire i valori nulli con valori espliciti e noti. Nel nostro caso, con riferimento alla prima e terza riga, possiamo sostituire i due valori null con il nome del paese in cui è localizzata Prague, da cui

Tuple # F.Name Last Name Y.Of Birth M. Birth D. Birth Toponym Name T.oponym Number T. City Zip Code Country

1 Miroslav Konecny 1978 7 10 Street Saint John 49 Prague 412776 null

2 Martin Necasky 1975 7 8 Square Vienna null Bratislava 101278 Slovakia

3 Miroslav Konecny null null null Street Saint John 49 Prague 412776 null

4 Crlo Btini 1949 6 7 Street Dessiè 15 Roma 00198 Italia

5 Miroslav Knecy 1978 7 10 Square Budapest 23 Wien null Austria

6 Anisa Rula 1982 9 7 Street Sesto null Mian 20… Ital

7 Anita Rula 1982 9 7 Street Seso 23 Milan null Italy

8 Anna Rla null null null Street Sarca 336 Milano null Italy

9 Carlo Batini 1949 6 7 Street Beato Angelico 23 Milano 20133 Italy

10 Carla Botni 1949 6 7 Avenue Charles null Prague 412733 null

11 Marta Necasky 1976 11 8 null null null Bratislava 112234 Slovakia

Tuple # F.Name Last Name Y.Of Birth M. Birth D. Birth Toponym Name T.oponym Number T. City Zip Code Country

1 Miroslav Konecny 1978 7 10 Street Saint John 49 Prague 412776 Czeck

2 Martin Necasky 1975 7 8 Square Vienna null Bratislava 101278 Slovackia

3 Miroslav Konecny null null null Street Saint John 49 Prague 412776 Czeck

4 Carlo Btini 1949 6 7 Street Dessiè 15 Roma 00198 Italy

5 Miroslav Knecy 1978 7 10 Square Budapest 23 Wien k2345 Austria

6 Anisa Rula 1982 9 7 Street Sesto null Milano 20127 Italy

7 Anita Rula 1982 9 7 Street Sesto 23 Milano 20127 Italy

8 Anna Rla null null null Street Sarca 336 Milano 20126 Italy

9 Carlo Batini 1949 6 7 Street Beato Angelico 23 Milano 20133 Italy

10 Carla Botni 1949 6 7 Avenue Charles null Prague 412733 Czeck

61

come risultato la tabella di Figura 15. Non abbiamo altre forme di conoscenza che ci permettano di sostituire altri valori nulli con valori espliciti.

A conclusione possiamo affermare che migliorare la qualità dei dati è fondamentale, in questo modo il problema che vogliamo risolvere sarà anche esso caratterizzato da maggiore qualità. Si veda anche [Barsi 2019] per una discussione sulle qualità dei dati acquisiti da remote sensing nel caso Breezometer. 5.8 Integrazione

La realtà che noi rileviamo acquisendo fonti di dati distinte, spesso da fornitori di dati diversi, è frammentata; per analizzare un problema, noi auspicabilmente dobbiamo disporre di dati integrati, che omogeneamente facciano riferimento al fenomeno da analizzare. Per ottenere ciò, occorre effettuare un passo di integrazione, il cui scopo è mettere insieme dati da diverse fonti, caratterizzate spesso da eterogeneità e differenze, ottenendo un nuovo insieme omogeneo di dati in cui tali eterogeneità sono risolte e le diverse rappresentazioni dei dati sono riconciliate. Ad esempio, la data di nascita potrebbe essere rappresentata con tre attributi <giorno, mese, anno> in una fonte e un unico attributo <data> in un’altra fonte. Oppure, gli impiegati di una organizzazione potrebbero essere identificati in una fonte da un numero progressivo, e in un’altra dal codice fiscale.

L’attività di integrazione si diversifica in due casi:

1. Quello in cui noi vogliamo integrare due o più fonti; è il passo di integrazione vero e proprio

2. Quello in cui la fonte sia unica, ma si ha il fondato sospetto che vi siano diversi record nella fonte che rappresentano la stessa persona, o luogo, o evento, a seconda del significato della fonte. Questo passo è chiamato di deduplicazione.

In entrambi i precedenti casi, l’attività di integrazione è completata solo quando tutti i gruppi di dati che fanno riferimento ad una stessa persona, luogo, evento, ecc. sono fusi in un’unica versione (si parla di unica versione della verità); ciò avviene con un passo chiamato di fusione. Vediamo ora i tre passi di integrazione, deduplicazione e fusione esemplificandoli nei nostri due studi di caso.

Passo di integrazione e fusione in Breezometer

Figura 16 – Integrazione di diversi tipi di rappresentazioni del territorio

Google Maps Sensori nei Comuni

Flussi di trasporto Fonti di dati

ambientali

Dati satellitari

Google Maps Sensori nei ComuniFlussi di trasporto

Fonti di dati ambientali

62

Nel caso Breezometer le diverse fonti individuate in precedenza (vedi Figura 16) fanno tutte riferimento al territorio, ma potrebbero avere diverse scale e potrebbero essere in alcuni casi georeferenziate, cioè riferite ad un sistema di coordinate di riferimento, in altri no. La letteratura scientifica ha affrontato questo problema, chiamato nei sistemi informativi geografici con il termine di coalescenza. Vediamo in Figura 17 un esempio di coalescenza di due mappe, una georeferenziata e l’altra no. Per procedere alla integrazione e fusione, è necessario dapprima trovare un insieme di punti caratterizzati dalle stesse coordinate geografiche nelle due mappe, e poi, tramite algoritmi di matching, unificare le due mappe rispetto allo stesso sistema di riferimento (questo, nella nostra terminologia, è il passo di fusione).

Figura 17 – Integrazione di diversi tipi di rappresentazioni del territorio (tratta da Chen C.C. et al. – Automatically and efficiently matching road networks with spatial attributes in unknown geometry systems, 2006)

Passo di deduplicazione nella tabella dei professionisti europei

Figura 18 – Output del passo di deduplicazione della tabella Tuple # Candidate

tuples

F.Name Last Name

Y.Of Birth M. Birth D. Birth Toponym Name T.oponym Number T. City Zip Code Country

5 M1 Miroslav Knecy 1978 7 null Square Budapest 23 Wien k2345 Austria 1 M1 Miroslav Konecny 1978 7 10 Street Saint John 49 Prague 412776 Czech 3 M1 Miroslav Konecny null null null Street Saint John 49 Prague 412776 Czech 10 NM Carla Botni 1949 6 7 Avenue Charles null Prague 412733 Czeck 4 M3 Carlo Btini 1949 6 7 Street Dessiè 15 Roma 00199 Italy 6 M2 Anisa Rula 1982 9 7 Street Sesto null Milano 20127 Italy 7 M2 Anita Rula 1982 9 7 Street Sesto 23 Milano 20127 Italy 8 NM Anna Rla null null null Street Sarca 336 Milano 20126 Italy 9 M3 Carlo Batini 1949 6 7 Street Beato

Angelico

23 Milano 20133 Italy

2 NM Martin Necasky 1975 7 8 Square Wien null Bratislava 101278 Slovakia 11 NM Marta Necasky 1976 11 8 null null null Bratislava 112234 Slovakia

63

Assumendo che i dati siano organizzati in tabelle, come nel caso dei professionisti europei, nel passo di deduplicazione si individuano le differenti righe della tabella che fanno riferimento agli stessi oggetti

Nel documento La Scienza dei Dati (pagine 53-71)