Sei sulla pagina 1di 125

Universita degli Studi Mediterranea di Reggio Calabria

Dipartimento di Ingegneria dellInformazione, delle Infrastrutture e


dellEnergia Sostenibile
Corso di Laurea in Ingegneria dellInformazione

Tesi di Laurea

Big Data e Predizione: Teoria, Modelli, Tool e Case Study

Relatore Candidato

Prof. Domenico Ursino Rosario Laface

Anno Accademico 2014-2015


A chi mi vuole bene,
a colei che ha reso possibile tutto cio,
e a colui che avrebbe voluto esserci, e che sara sempre nel mio cuore.
Indice

Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1 Predictive Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Cose la Predictive Analytics? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Le Data Science dietro la Predictive Analytics . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Statistica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Applicazioni Pratiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 I Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Il processo di analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.1 Identificazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.2 Strutturazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.3 Preparazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.4 Scelta del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.5 Implementazione del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.6 Valutazione del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6 Critiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2 Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1 Cosa sono i Big Data? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Big Data e Predictive Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Hardware e Calcolo distribuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 Strumenti di Analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.1 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.2 Apache Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.3 Ecosistema Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3 I Modelli di Previsione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1 I Modelli come Strumento di Previsione . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Data Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.2.1 K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.2 K-nearest neighbors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
VI Indice

3.2.3 DBSCAN clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47


3.3 Data Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.1 Reti Neurali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Support Vector Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3.3 Alberi di decisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4 Metodi Probabilistici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4.1 Naive Bayes Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4.2 Il Modello di Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.5 Recommendation Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4 Analisi della Regressione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69


4.1 I Modelli di Regressione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2 Regressione Lineare Semplice e Multipla . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3 Regressione Logistica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5 Tool di Analisi Predittiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79


5.1 Caratteristiche Generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2 R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3 Weka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.4 Orange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5 Analisi Predittiva Basata sul Cloud Computing . . . . . . . . . . . . . . . . . . 92

6 Case study: Utilizzo di R per Predire i Ritardi dei Voli . . . . . . . . . 95


6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.2 Definizione degli Obiettivi ed Acquisizione dei Dati . . . . . . . . . . . . . . . 96
6.3 Analisi e Preparazione dei Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.4 Estrazione di Nuove Variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 Suddivisione dei Dati ed Implementazione del Modello . . . . . . . . . . . . 102
6.6 Analisi della Regressione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7 Conclusioni e uno Sguardo al Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Ringraziamenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Riferimenti bibliografici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115


Elenco delle figure

1.1 Predictive Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1 Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


2.2 Andamento della quantita di ricerche Google riguardo il termine
Big Data negli ultimi anni, a testimonianza del crescere della
popolarita del tema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Dati su un generico prodotto X raccolti da varie fonti . . . . . . . . . . . . . . 25
2.4 Aumento della capacita degli hard disk nel corso del tempo . . . . . . . . . 27
2.5 Processo diviso in piu sottoparti (task ). . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Flusso dei dati lavorati tramite MapReduce . . . . . . . . . . . . . . . . . . . . . . . 32
2.7 Lecosistema di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.8 Il logo di Apache Mahout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1 Algoritmo di clustering che individua gruppi di appartenenza


esaminando gli attributi dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Collezione di documenti in formato tabulare; gli attributi, in questo
caso, rappresentano le parole piu frequenti allinterno del testo. Le
lettere da A a F indicano le istanze dei documenti . . . . . . . . . . . . . . . . . 45
3.3 Un dataset relativo a dei clienti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4 Risultato dellalgoritmo K-means . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5 Densita del dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6 Sottoinsieme di elementi che identificano un cluster . . . . . . . . . . . . . . . . 48
3.7 Definizione di density-reachability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.8 Struttura di un neurone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.9 Struttura di un neurone artificiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.10 Funzione sigmoidea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.11 Classificatore lineare (a sinistra) e non lineare (a destra) . . . . . . . . . . . 55
3.12 Due diversi margini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.13 Vettore delle caratteristiche in uno spazio a 2 dimensioni . . . . . . . . . . . 57
3.14 Calcolo delliperpiano che fornisce il margine migliore . . . . . . . . . . . . . . 58
3.15 Albero di decisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.16 Albero di decisione per la previsione dellesito di un investimento . . . . 60
3.17 Catena di Markov a tre stati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
VIII Elenco delle figure

4.1 Modello di regressione lineare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71


4.2 Retta di regressione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3 Punti campione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.1 Il logo di R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2 Lesempio di un dataset utilizzato da R . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 Risultati della funzione predict() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.4 Albero di decisione realizzato tramite R . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.5 Il logo di Weka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.6 Linterfaccia Explorer di Weka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.7 Alcuni dei modelli di classificazione disponibili in Weka . . . . . . . . . . . . 89
5.8 Il logo di Orange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.9 Linterfaccia grafica di Orange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.10 Linterfaccia grafica di Azure Machine Learning . . . . . . . . . . . . . . . . . . . 93
5.11 Il logo di Google Cloud Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.12 Metodo richiamato dallinterfaccia di Google Prediction API . . . . . . . . 94

6.1 Dataset prelevato allinterno dellambiente di sviluppo di R . . . . . . . . . 97


6.2 Matrice delle correlazioni tra gli attributi del dataset . . . . . . . . . . . . . . 102
6.3 Risultati della Previsione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.4 Residual vs Fitted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.5 Q-Q plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.6 Scale-Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.7 Residual vs Leverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Elenco delle tabelle

4.1 Dati campione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6.1 Attributi relativi alle osservazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97


Introduzione

E risaputo come il possesso di informazioni determini notevoli vantaggi allinterno di


qualsiasi settore. Nellera digitale le informazioni vengono trasmesse attraverso flussi
di dati dovuti al sempre maggiore utilizzo di strumenti elettronici connessi tra di
loro. Tali informazioni rappresentano loggetto del desiderio di molte compagnie, le
quali tentano di utilizzarle al fine di conoscere meglio i propri clienti ed incrementare
le richieste dei propri servizi.
Una tendenza in continuo aumento e quella di tentare di estrarre il maggior
numero possibile di informazioni da un insieme scelto di dati. Questultimi posso-
no trovarsi, senza alcuna semantica particolare, allinterno di pagine web o email,
oppure (in maniera ben definita) allinterno di strutture dati, database; gli stes-
si possono essere, ancora, prelevati da sensori. Oltre alle informazioni intrinseche,
estraibili da ciascuna sorgente di dati, integrando le varie sorgenti e possibile far
emergere ulteriori significati ed informazioni non ben evidenti.
Questo e lo scopo dellanalisi dei dati (data analysis). Questultimo e un processo
di ispezione, pulizia, trasformazione e modellazione di dati con il fine di evidenziare
nuove informazioni. Tale analisi viene realizzata mediante molti approcci e molte
tecniche diverse, le quale variano in funzione dello scopo che ci si prefigge di ottenere.
Con il passare del tempo sono emerse numerose potenzialita di un simile ap-
proccio. Oltre ad uno scopo descrittivo di semplice estrazione di nuove informazio-
ni, infatti, spesso si ricorre allanalisi dei dati per ottenere risultati particolarmente
convenienti, ossia, la previsione di eventi futuri. Molte tecniche di analisi permet-
tono di descrivere una rappresentazione di uno o piu particolari eventi e, quindi,
di riproporre tali rappresentazioni al fine di prevedere, con una ben determinata
precisione, simili comportamenti durante il futuro.
Il Data Mining e quel particolare settore di analisi dei dati il quale si focalizza
sulla modellazione e sulla scoperta di conoscenza per scopi predittivi. A questulti-
mo si affianca la disciplina dellapprendimento automatico (machine learning) che
rappresenta una delle aree fondamentali dellintelligenza artificiale; essa si occupa
della realizzazione di sistemi ed algoritmi i quali catturano caratteristiche di inte-
resse allinterno dei dati, in maniera automatica, al fine di analizzarle e valutare
le relazioni tra le variabili osservate. Entrambi sfruttano, in molti casi, tecniche di
analisi statistica al fine di descrivere laffidabilita dei modelli che rappresentano le
informazioni a venire.
2 Introduzione

Lanalisi predittiva e una scienza, relativamente recente, che integra tecniche


di data mining e machine learning per determinare particolari informazioni ancora
sconosciute a partire da dati attuali. Lanalisi dei dati, necessaria allottenimento di
simili risultati, prevede fasi ben precise. Le prime cominciano con la raccolta dei dati
e, successivamente, portano alla manipolazione di questi ultimi al fine di eliminare
valori mancanti, oppure non coerenti con la particolare tecnica di analisi adottata.
Dopo essere stati adeguatamente preparati, i dati vengono impiegati da determi-
nati algoritmi al fine di sviluppare una rappresentazione del loro comportamento
chiamata modello di previsione. A partire da questultima vengono individuate le
informazioni che riguardano eventi non ancora trascorsi.
Poiche, dunque, la spinta necessaria a realizzare previsioni e data proprio dalle
informazioni, nessuna fonte risulta essere efficace tanto quanto la fonte dei Big Da-
ta. Questo termine viene utilizzato per rappresentare enormi raccolte di dati i quali
sono caratterizzati, oltre che dallelevato volume di informazioni contenute, da une-
levata velocita di aggiornamento e da unestrema varieta. Simili collezioni di dati,
pur essendo determinanti ai fini dellanalisi predittiva, non possono essere analizzati
mediante tradizionali algoritmi. Le caratteristiche dei Big Data impongono lutilizzo
di strumenti che possiedono capacita di elaborazione molto elevata o, in alternativa,
di reti di calcolatori che permettono di suddividere le diverse operazioni svolte sui
dati su piu macchine. Proprio su questultimo tipo di sistema si basa la piattafor-
ma Apache Hadoop la quale consente lelaborazione distribuita degli algoritmi di
predizione.
Tali algoritmi permettono di realizzare diversi modelli in base alle diverse esi-
genze. In alcune applicazioni pratiche, e necessario analizzare i dati allo scopo di
individuare particolari somiglianze tra gli oggetti e, dunque, associare ciascuno di
essi ad una particolare categoria. E questo il caso degli algoritmi di clustering i
quali consentono di individuare diversi possibili gruppi di appartenenza dei dati.
A tali categorie e spesso necessario ricondurre le diverse osservazioni raccolte (ad
esempio, al fine di concedere un prestito, dopo aver ottenuto i dati di un particolare
cliente, si vuole stabilire se questultimo puo essere etichettato come affidabile o
no). Il compito di individuare le caratteristiche di appartenenza di un oggetto ad
un gruppo, piuttosto che ad un altro, e svolto dai modelli di classificazione. Esistono
diversi altri tipi di modelli di previsione quali, ad esempio, i modelli probabilistici,
i quali affrontano la problematica della previsione mediante metodi statistici. Par-
ticolare interesse pratico possiede una determinata categoria di modelli denominati
modelli di regressione. Questi ultimi consentono di prevedere quantita numeriche,
basando le proprie assunzioni su metodi geometrici e matematici.
Allo scopo di semplificare luso dei modelli appena citati, sono stati implementati
tool specifici per lanalisi dei dati. Alcuni di essi servono come strumenti per svol-
gere compiti semplici che coinvolgono quantita relativamente piccole di dati. Altri
servono, invece, per analizzare situazioni complesse. Questultimi vengono imple-
mentati sulle piattaforme software per lanalisi dei Big Data, citate in precedenza,
e permettono dunque di suddividere gli obiettivi dellanalisi in piu task secondari.
Nella presente tesi, verra utilizzato uno di questi tool al fine di mettere in atto
le procedure appena citate in un case study. In particolare, si cerchera di prevedere
i ritardi negli arrivi in aeroporto durante i viaggi aerei. Verranno impiegati dati
corrispondenti ai precedenti voli, i quali comprendono, al loro interno, anche i ritardi
Introduzione 3

osservati in passato, al fine di costruire un modello capace di utilizzare dati piu


recenti per prevedere periodi di ritardo non ancora noti.
Tutte le tematiche appena affrontate verranno riproposte, con maggiore detta-
glio, allinterno della presente tesi. In particolare, essa e strutturata come di seguito
specificato:
Nel Capitolo 1 viene esposta una descrizione generale dei processi di analisi
predittiva, facendo riferimento alle discipline che ne stanno alla base ed alle
applicazioni di uso comune.
Nel Capitolo 2 vengono descritte le caratteristiche dei Big Data, le problematiche
legate alla loro analisi e gli strumenti realizzati a tale scopo.
Nel Capitolo 3 vengono mostrati i principali modelli di predizione citando, per
ciascuno di essi, i principali impieghi, i vantaggi e gli svantaggi.
Nel Capitolo 4 viene dato spazio alla particolare tipologia dei modelli di
regressione.
Nel Capitolo 5 vengono esaminati alcuni dei principali tool di analisi predittiva,
facendo riferimento ai motivi che spingono allutilizzo di ciascuno di essi.
Nel Capitolo 6 viene esposto il case study, partendo dalla raccolta dei dati fino
allanalisi dei risultati finali.
Nel Capitolo 7, infine, viene proposto un riassunto dellevoluzione moderna
dellanalisi predittiva e delle possibili applicazioni future.
1
Predictive Analytics

In questo capitolo vengono presentate le caratteristiche generali della Predictive


Analytics o analisi predittiva, vengono mostrate le discipline dalle quali ha avuto
origine, i principali obiettivi e gli utilizzi piu promettenti; viene inoltre fatto un bre-
ve resoconto sulle tipologie di dati utilizzati dagli strumenti di analisi e di predizione.
Viene quindi illustrato in dettaglio il processo generale di analisi predittiva, infine,
viene fatto un accenno alle critiche mosse contro questa nuova disciplina.

Figura 1.1. Predictive Analytics

1.1 Cose la Predictive Analytics?


La Predictive Analytics e un insieme di tecniche e discipline che ha lo scopo di
prevedere il comportamento di un qualunque sistema o di una qualsiasi variabile o
insieme di variabili[17]. E ovvio che i vantaggi di tutto questo sono praticamente
illimitati se non fosse che lanalisi predittiva non riesce a prevedere perfettamente
il futuro ma riesce comunque a fare delle previsioni con un livello di precisione
piu che accettabile. Un po come gli scienziati usano modelli fisici e matematici per
determinare il comportamento di un sistema, con lanalisi predittiva, che invece si
basa su dati empirici ottenuti dalle stesse entita sulle quali si vogliono fare previsioni,
6 1 Predictive Analytics

in particolare dati storici e attuali, e possibile estrarre nuove informazioni, il che


significa, sostanzialmente, vedere cio che agli altri e invisibile.
Ad esempio, applicando lanalisi al mondo del marketing, che rappresenta circa
un terzo delle reali applicazioni di questa disciplina, si possono ottenere principal-
mente tre vantaggi. Il primo consiste nella lungimiranza, anticipare il comporta-
mento dei clienti, dei quali possiamo conoscere, ad esempio, gli articoli che sono
interessati ad acquistare o sapere in anticipo quando e perche non sono piu inte-
ressati a un determinato servizio. Il secondo consiste nel poter categorizzare tali
clienti in base alle loro necessita, comprendere meglio i loro bisogni migliorando la
cosidetta customer experience, migliorare i prodotti, identificare potenziali rischi
e opportunita per la compagnia. Come terzo e ultimo vantaggio, scavare a fondo nel
passato dei clienti permette di associare i dati gia in possesso alla compagnia a dati
che potrebbero esserlo; conoscere tali informazioni permette di affinare le strategie
e massimizzare i profitti.
Unaltra possibilita offerta e quella di prevedere in anticipo i possibili sviluppi
di una malattia, analizzando i possibili fattori determinanti.
Inoltre, molte organizzazioni, attualmente, utilizzano determinate regole guidate
dai dati in loro possesso per prevedere lesito delle decisioni prese. Un tipico esempio
di utilizzo di analisi predittiva e dato dalluso che ne fanno le compagnie bancarie
che, analizzando dati provenienti dai movimenti nelle carte di credito dei clienti,
prevedono in modo efficiente lesito della decisione di concedere o meno un prestito,
spesso in tempo reale tramite dei tool di predizione.
Analogamente, nel mondo delle assicurazioni, lanalisi predittiva permette di
accelerare i meccanismi di valutazione delle richieste di indennizzo e, allo stesso
tempo, di prevenire possibili frodi; queste categorie rappresentano un altro terzo
delle applicazioni.
Infatti, per estensione, lanalisi predittiva puo essere utilizzata per calcolare qual-
siasi tipo di incognita riguardante sia il futuro che il presente, in quanto il processo
di predizione consiste nellindividuare degli schemi tra i dati che vengono analiz-
zati ed estrapolare da essi innumerevoli informazioni nascoste che, altrimenti, non
verrebbero mai evidenziate nei dati grezzi.
Oltre ai vantaggi insiti nella previsione degli eventi futuri, infatti, non bisogna
dimenticare che dalla preventiva azione di estrazione dei dati (data mining), carat-
teristica del processo di analisi predittiva, derivano altri vantaggi; possiamo immagi-
nare, infatti, quante risorse e quanto tempo possono essere risparmiati analizzando
grandi quantita di dati in maniera automatica tramite dei tool specializzati, senza
contare di quanto viene ridotta la possibilita di errore umano e di quanto aumenta
la precisione. I dati che vengono considerati sono di diverso genere e vengono forniti
dagli esperti del settore; in genere, pero, si tratta di dati caratteristici dellelemen-
to sul quale si sta cercando di fare previsioni e che provengono dal passato dello
stesso; tramite questi dati viene istruito un modello che simula il comportamento
del soggetto che si sta osservando, e da questi comportamenti vengono dedotti degli
schemi che sono, poi, le previsioni vere e proprie.
Tutto questo determina unelevata affidabilita per quanto riguarda sia dati de-
terministici che casuali. I vari modelli sono scelti in base alle varie situazioni e sono
descritti dalle varie discipline che stanno alla base della predictive analytics.
1.2 Le Data Science dietro la Predictive Analytics 7

1.2 Le Data Science dietro la Predictive Analytics


La predictive analytics fa ampiamente uso di tre discipline che sono strettamente le-
gate a essa: statistica, data mining e machine learning. Il legame tra queste discipline
e cos forte che, spesso, si indica una per fare riferimento a unaltra, questo perche
lanalisi predittiva combina molte tecniche, strumenti e algoritmi caratteristici delle
altre.
La differenza fondamentale e lobiettivo: mentre statistica, data mining e ma-
chine learning cercano di comprendere i dati, analizzarli, estrapolare informazioni
e imparare da essi, la predictive analytics ha come scopo quello di utilizzare queste
informazioni e i modelli ricavati per fare previsioni utili.
Fra i comuni denominatori delle tre discipline ce sicuramente, la matematica,
che fornisce strumenti a ciascuna di esse, come anche la preventiva analisi dei dati,
necessaria per fornire i dati piu adatti per prendere le decisioni piu accurate. Nelle
prossime sottosezioni verranno analizzate in dettaglio ciascuna delle tre discipline
di cui sopra:

1.2.1 Statistica

Comprende metodi per la raccolta e lanalisi dei dati relativi a determinati fenomeni
al fine di studiarli quando non e possibile avere una completa conoscenza di essi.
Utilizza formule matematiche per studiare tali fenomeni quando e presente una
incertezza, cioe quando non e possibile osservare in modo deterministico la quantita
o la qualita degli attributi del fenomeno. Essa quinti strettamente legata alle teoria
delle probabilita. Tramite la statistica e possibile identificare relazioni tra i dati,
cosa molto utile nella fase di comprensione degli stessi. Al contrario del data mining,
tuttavia, la statistica non prevede il filtraggio e la preparazione dei dati.
La statistica si puo suddividere in due branchie principali: statistica descrittiva
e statistica inferenziale. La prima ha come obiettivo quello di descrivere gli aspetti
piu rilevanti dei dati osservati e sintetizzarli attraverso strumenti grafici e indica-
tori come media, varianza, etc. La seconda cerca di stabilire dei comportamenti e
delle caratteristiche delle variabili ottenute con un certo grado di precisione prede-
terminato e, quindi, spesso descrivendoli in termini di densita di distribuzione di
probabilita. Usando solo un campione dei dati in nostro possesso e possibile, tramite
la statistica, avere una base per avanzare ipotesi su cio che potra avvenire.

1.2.2 Data Mining

Con questo termine si intende linsieme di tecniche analitiche che mirano a trovare
schemi (pattern) utili o nuove relazioni nei dati al fine di estrarre informazioni na-
scoste, cioe non direttamente esplicitate dai dati stessi. A differenza della statistica,
che analizza informazioni generali nel dominio di interesse, il data mining analizza
possibili correlazioni tra piu variabili come, ad esempio, gli acquisti che vengono
fatti da un determinato cliente o gli oggetti di interesse comuni a piu clienti. Il data
miner utilizza una serie di metodi specializzati nello scoprire particolari significati
che assumono certe combinazioni di variabili, metodi ereditati dalla statistica e dal
machine learning (che possiamo definire come una sorta di intelligenza artificiale).
8 1 Predictive Analytics

Gli algoritmi esistenti prendono spunto da queste discipline; esistono molte tec-
niche come la regressione, gli alberi di decisione, il clustering etc., ciascuna delle
quali restituisce un modello che descrive in che modo certe variabili si collegano ad
altre.
La maggior parte delle attivita di data mining puo essere portata a termine
grazie a poche tecniche che si basano sulla regola 80\20 [13, pag.4], che ci suggerisce
che la maggior parte dei problemi, in genere proprio l80%, puo essere risolto con
luso di una piccola parte degli strumenti a disposizione, cioe il 20%; in questo caso,
infatti, e possibile modellare la maggior parte delle situazioni con le tecniche piu
comuni; tuttavia, e importante anche considerare ulteriori strategie che possono fare
emergere schemi ancora piu nascosti.
Uno degli aspetti chiave del data mining e la generalizzazione degli schemi, cioe
lestensione delle relazioni trovate per uno o piu particolari valori del dataset, sui
quali si applicano i metodi per la creazione dei modelli, a nuove e sconosciute istanze
dei dati.
Nellottica della predictive analytics i modelli creati hanno due obiettivi prin-
cipali: stabilire una relazione tra i dati di input osservati e la tipologia di dati di
output desiderata e, tramite questa relazione, prevedere loutput dato da valori non
ancora conosciuti.
Al fine di ottenere un processo di estrazione delle informazioni soddisfacente e
necessario possedere una conoscenza preliminare sui dati e sui processi che li hanno
generati (subject matter expertise). In questo modo si puo rendere il processo di
estrazione un processo iterativo e capace di modificare i vari modelli una volta
ottenute le prime informazioni per identificare nuovi schemi.
Il data mining opera frequentemente su grandi quantita di dati strutturati, af-
fiancandosi, spesso, a tecniche (come la computazione parallela e distribuita) che
giocano spesso un ruolo fondamentale nellelaborazione.

1.2.3 Machine Learning

Questo termine fu coniato nel 1959 da Arthur Samuel, pioniere dellIntelligenza Ar-
tificiale, per indicare quel campo che studia labilita dei computer a imparare senza
essere stati esplicitamente programmati a farlo. In altre parole, il Machine Learning
cerca nuovi modi con i quali il computer puo acquisire conoscenza direttamente dai
dati e da essi imparare a risolvere i problemi [15, pag.12].
James N. Morgan e John A. Sonquist nel 1963 proposero un metodo per trovare
schemi e relazioni nei dati. Tale metodo si chiamava AID (Automatic Interaction
Detection) e consisteva in un algoritmo che cerca automaticamente un modo per
categorizzare i dati in due gruppi detti cluster e ricorsivamente analizza ogni gruppo
per cercare un modo per dividerlo ulteriormente, creando un albero di cluster. Tut-
tavia questo metodo utilizza, per le proprie scelte, dei metodi puramente statistici;
percio, indipendentemente dal lavoro di Morgan e Sonquist, i ricercatori sono stati
capaci di introdurre degli algoritmi che rendono il computer capace di imparare
mimando il modo di pensare umano; questi algoritmi costituiscono le tecniche di
Machine Learning.
Il Machine Learning e unaltra disciplina che ha come obiettivo lanalisi dei dati e
la scoperta di nuove informazioni provenienti da essi, ma questo scopo e raggiunto in
1.3 Applicazioni Pratiche 9

maniera automatica, tramite degli algoritmi implementati. Anche in questo caso si


tratta di un meccanismo iterativo in quanto piu la macchina apprende dai dati e piu
e capace di apprendere in un continuo ciclo in cui il sistema, ad ogni analisi, riceve
un feedback e migliora se stesso. Utilizzare il machine learning equivale a insegnare
le regole di un gioco a un sistema e poi permettergli di fare pratica giocando a vari
livelli, fino a fargli raggiungere un livello avanzato [7, pag.53].
Il machine learning ha innumerevoli applicazioni pratiche [12]; in particolare,
sono due le tipologie di algoritmi di apprendimento automatico di nostro interesse,
gli algoritmi di apprendimento supervisionato e gli algoritmi di apprendimento non
supervisionato. I primi hanno come vantaggio il fatto di agire su dati in input che
tra i loro attributi contengono una descrizione che ci permette di conoscere a prio-
ri a quale istanza i possibili risultati della previsione si riferiscono (label o target
features), quindi hanno gia a disposizione, in input, le possibili variabili di output.
I restanti attributi saranno quelli utilizzati dallalgoritmo per prendere le decisioni
(descriptive features). Questultimi rappresentano gli scenari piu frequenti e hanno
un vantaggio; infatti, avere gia a disposizione i possibili risultati della previsione pri-
ma ancora di lanciare lalgoritmo permette di avere, in un certo modo, una sorta di
riscontro. La seconda tipologia, ovvero quella degli algoritmi di apprendimento non
supervisionato, non permette questa possibilita, e senza label non e possibile rap-
presentare a priori i dati in output. In questo caso e, quindi, necessario individuare
delle similitudini tra le varie istanze; questo processo e noto come clustering.
Gli algoritmi di machine learning operano cercando il migliore, tra una serie
di possibili modelli, cioe quello che meglio rappresenta le relazioni tra descriptive
feature e target feature in un dataset e che riesce a far si che tali modelli siano
validi per ogni possibile istanza del dataset. In questo caso si dice che il modello e
consistente con il dataset.
Tra i metodi supervisionati e quelli non supervisionati esistono altre due cate-
gorie importanti ai fini della predictive analytics, cioe le categorie di algoritmi di
apprendimento semi-supervisionato e quelli di apprendimento rinforzato. La prima
opera su dati una parte dei quali contiene un attributo label mentre laltra parte
e completamente senza etichetta. In genere questi algoritmi utilizzano prima i dati
con etichetta per istruire il modello e trovare le relazioni che legano ogni istanza a
un tipo di label; in seguito, adottano quelli senza etichetta proiettando le proprieta
che hanno determinato le relazioni gia trovate su questi ultimi.
In un algoritmo di apprendimento rinforzato, invece, non esistono target feature,
ma sono fornite ulteriori informazioni per dirottare i dati di output verso un deter-
minato risultato. Un tipico esempio si ha quando si cerca di prevedere la prossima
mossa utile in una partita di scacchi partendo da dati inerenti le precedenti parti-
te. Per ogni singola mossa fornita in input non esiste una relazione diretta con la
prossima mossa piu conveniente che si sta cercando di prevedere, ma lalgoritmo ha
a disposizione le sequenze di mosse che hanno portato alla vittoria nei precedenti
incontri, il che aiuta nella scelta.

1.3 Applicazioni Pratiche


Dalle innumerevoli strategie accennate finora emerge come la predictive analytics
sia una disciplina molto versatile; questo perche e applicata in innumerevoli campi,
10 1 Predictive Analytics

cosa ovvia se si pensa alla possibilita di ottenere in anticipo informazioni sul proprio
futuro.
Le varie compagnie e organizzazioni hanno bisogno di una certa esperienza nel
proprio lavoro, o possibilmente anche di consulenze esterne, per avere la conoscenza
adatta (business knowledge) a selezionare i dati sui quali applicare i vari modelli
in modo da dare i risultati migliori in termini di schemi utili e, di conseguenza, di
nuove informazioni estrapolate.
Tramite queste conoscenze, e in congiunzione con le tecniche di data mining e
machine learning, ogni organizzazione ha lopportunita di possedere un formidabile
strumento costituito dalle informazioni. Il successo che questa nuova opportunita
ha riscosso ha portato a un incremento delle richieste di analisi predittiva. Fra le
innumerevoli richieste, nel seguito si elencano [18, pag.14] quelle per le quali ha
avuto un impatto maggiore:
CRM : il CRM, cioe Content Managment System, e una strategia vincente di
mercato che pone al centro del business il cliente, invece che il prodotto. Essa
mira ad individuare i profili dei clienti, attuali o potenziali, cos da mettere a
punto nuove attivita o strategie che, da un lato, aiutino a catturare nuovi clienti
e, dallaltro, consentano di massimizzare i profitti sui clienti fedeli, cercando di
comprenderne esigenze e aspettative [4].
Il CRM e unapplicazione commerciale di analisi predittiva. Infatti, i suoi metodi
ed i suoi strumenti possono essere applicati ai dati dei clienti per conseguire
obiettivi che includono la creazione di efficienti campagne di marketing e di
servizi al cliente. Le compagnie devono riuscire ad analizzare e comprendere i
dati dei loro prodotti, individuando quelli di maggior successo, reale o potenziale,
ed utilizzandoli per conoscere in anticipo le abitudini di acquisto dei clienti e,
di conseguenza, per dare maggiore promozione a quei prodotti che si prevede
verranno acquistati piu frequentemente o per individuare nei prodotti potenziali
problemi che possono portare alla perdita di fiducia da parte del cliente.
Supporto alle decisioni in ambito clinico: gli esperti usano lanalisi predittiva in
ambito medico principalmente per individuare i pazienti che potrebbero correre
il rischio di contrarre particolari patologie: diabete, asma, problemi cardiaci, e
altre. Molti sistemi di supporto incorporano strumenti di analisi predittiva come
mezzo di rinforzo alle decisioni; si tratta, in questi casi di trovare un collegamento
tra conoscenze e osservazioni mediche e le scelte che dovranno essere fatte per
meglio affrontare o prevenire i disturbi.
I dati raccolti provengono spesso da visite in ospedale, sintomi mostrati dai
pazienti, esiti di trattamenti a cui essi vengono sottoposti; questi dati possono
essere utilizzati in particolare per prevenire la diffusione di malattie epidemiche.
Un caso di studio interessante e rappresentato dal possibile utilizzo dei dati
derivanti dalle ricerche fatte sul motore di ricerca di Google come strumento di
predizione per le epidemie [7, pag.81].
Le persone usano Google per cercare praticamente qualsiasi cosa, tra cui anche la
prossima localita che visiteranno, le persone che hanno incontrato o i sintomi dei
disturbi che pensano di avere. Tali ricerche hanno assunto una certa importanza
dal punto di vista medico; infatti, come mostrato nel recente articolo di ricerca
Detecting Influenza Epidemics Using Search Engine Query Data pubblicato
sulla rivista Nature da Jeremy Ginsberg, i ricercatori di Google hanno scoperto
1.3 Applicazioni Pratiche 11

che queste ricerche sono un buon indicatore della diffusione, corrente o futura,
di una determinata malattia.
Ginsberg con il suo team di ricerca ha scoperto una forte correlazione tra il
numero di individui che ricercano termini collegati allinfluenza e il numero di
persone che hanno contratto realmente linfluenza. Come Google stesso ha di-
chiarato: ce un incremento nel numero di ricerche correlate alle allergie durante
le stagioni in cui esse colpiscono, o un incremento di ricerche sulle bruciature
della pelle durante i mesi estivi; questo ci puo far capire come sia plausibile
pensare di trovare un collegamento tra le ricerche su una determinata malattia
e i casi di malattia stessa.
Google riesce a vedere questi schemi e utilizza i dati estratti dalle ricerche per
costruire modelli che permettono di prevedere eventi reali, quali, per lappunto,
la diffusione di una malattia in una determinata regione. Basandosi su un da-
taset costituito da dati raccolti dal motore di ricerca e da altre fonti, in piu di
cinque anni, Google e riuscito a costruire un modello che funge da strumento di
sorveglianza internazionale per la prevenzione delle epidemie.
Gli impieghi dellanalisi predittiva in ambito medico non finiscono qui: il pro-
fessor Abdelghani Bellaachia e il suo team alluniversita di Washington, nel
loro articolo Predicting Breast Cancer Survivability Using Data Mining Tech-
niques, mostrano come lanalisi predittiva possa essere usata per minimizzare
i rischi di contrarre il cancro al seno. Utilizzando dati storici raccolti, disponi-
bili al pubblico, sui vari tipi di cancro, dati contenenti svariati attributi, come
tempi di sopravvivenza, cause di morte, parametri vitali, etc., e implementan-
do, tramite questi dati, degli algoritmi basati su modelli di classificazione come
classificatori bayesiani, reti neurali e alberi di decisione, i ricercatori sono riu-
sciti a creare due classi di pazienti, sopravvissuti e non, trovando le relazioni che
legano gli attributi osservati a una di queste due categorie e quindi riuscendo
a individuare le principali cause che determinano linsorgere del cancro, almeno
per quanto riguarda i pazienti contenuti nel dataset per la creazione del modello.
Gli algoritmi ottenuti usando le varie tecniche sono stati confrontati e i risultati
migliori in termini di conformita del modello sono stati raggiunti dal modello ad
albero di decisione.
Analisi per le riscossioni dei crediti: un gran numero di risorse finanziarie ven-
gono spesso sprecate su clienti fraudolenti; lanalisi predittiva puo aiutare a
ottimizzare la cessione dei crediti, identificando le strategie e le azioni lega-
li piu efficienti per ogni cliente, incrementando significativamente le entrate e
riducendo le perdite.
Cross-Selling: e una strategia di marketing che consiste nel mettere a dispo-
sizione dellutente beni o servizi in qualche modo collegati a un prodotto gia
esistente; per unazienda usare lanalisi predittiva per analizzare le abitudini dei
clienti puo essere utile per offrire prodotti di interesse, per aumentare il profitto
sul singolo cliente e incrementare la fedelta.
Fidelizzare i clienti: per affrontare la concorrenza le aziende devono concentrare i
loro sforzi nel mantenere alta la customer satisfaction, premiando la lealta del
clienti e minimizzando cio che puo farli allontanare. Tuttavia, quando un cliente
ha deciso di allontanarsi da un certo servizio, e praticamente gia impossibile
fargli cambiare idea; lanalisi predittiva puo far si che non si arrivi a questo pun-
12 1 Predictive Analytics

to; analizzando i precedenti utilizzi del servizio e, infatti, possibile individuare


schemi che permettono di riconoscere i fattori che determinano lallontanamento
da parte dei clienti.
Rilevamento delle frodi: le frodi rappresentano un grosso problema per ogni ge-
nere di attivita, si va dalle transazioni finanziarie fraudolente alle false richieste
di indennizzo. Lanalisi predittiva puo ridurre le esposizioni a tali rischi. Il go-
verno statunitense usa da molti anni questa analisi per identificare eventuali
evasioni fiscali.

1.4 I Dati
Nellera dellinformazione i dati vengono raccolti con grande rapidita e varieta e
vengono accumulati in database, documenti, e-mail, file audiovisivi, e molti altri
supporti.
Conoscere le varie tipologie di dati con cui si ha a che fare e essenziale per
comprenderli al meglio e per categorizzarli in modo da poterli utilizzare duran-
te il processo di previsione. Le compagnie, spesso, negli anni accumulano grandi
quantita di dati grezzi; piu cose si sanno su questi dati e piu si e in grado di ana-
lizzarli e usarli. Per questi motivi e utile descrivere i dati secondo delle importanti
caratteristiche distintive:
Dati strutturati e non strutturati: tutte le tipologie di dati finora elencati posso-
no essere distinti in dati strutturati e non; i primi sono sempre ben organizzati;
essi appaiono come formalmente ben definiti; su di essi e semplice fare ricerche
o modifiche; essi sono efficienti da analizzare. In definitiva sono facilmente ac-
cessibili da persone o macchine, ma non sono disponibili spesso; lesempio piu
tipico e costituito dai dati contenuti nei database relazionali che mettono bene in
evidenza i vari attributi di ogni dato nelle varie colonne con una visualizzazione
tabulare.
La seconda tipologia, ovvero quella dei dati non strutturati, e costituita da tutti
quei dati non rappresentati in tabelle, non ben organizzati, non ben definiti,
non facilmente accessibili per ricerche o modifiche, poco efficienti da analizzare,
come e-mail, pagine web, documenti vari, file di vario genere, sparsi senza una
ben precisa disposizione logica. Essi richiedono molto piu tempo e molte piu
risorse per essere elaborati, inoltre, tra tutti i tipi di dati, sono quelli che si
trovano in quantita maggiore; per questo motivo uno dei punti di forza piu
apprezzati dellanalisi predittiva e proprio il fatto che i suoi strumenti sono
capaci di processare tali dati, dando loro un significato e uno scopo.
Ovviamente, e molto piu efficiente avere a che fare con dati strutturati in quan-
to quelli non strutturati devono essere preventivamente analizzati e organizzati
in modo che gli algoritmi e gli strumenti utilizzati possano estrarre facilmente
informazioni da essi. Allo stesso tempo, poiche si tratta di una grande e variega-
ta quantita di dati contenenti sicuramente unenorme quantita di informazioni
inutili, essi devono essere filtrati in modo da individuare solo le informazioni
utili alla previsione che si intende fare e buttare via tutto il resto. La discipli-
na del data mining contiene una moltitudine di approcci per processare i dati
non strutturati, strumenti e algoritmi utili per trovare schemi nei contenuti, per
1.4 I Dati 13

raggrupparli e per dare ad essi un senso. Inoltre, i motori di ricerca forniscono


ulteriori strumenti per indicizzare i dati e per strutturarli.
Non bisogna farsi spaventare dalla complessita dei dati non strutturati, in quanto
e sempre possibile trovare un modo per formalizzare i loro contenuti e dare,
quindi, loro una struttura, ad esempio, utilizzando i metadati dei documenti,
i titoli, le date di creazione e di modifica, le date di spedizione delle e-mail, i
destinatari e gli allegati. Tutte queste caratteristiche possono essere usate come
attributi per dare un senso alla moltitudine di informazioni contenute nei dati
non strutturati, in pratica e sempre presente una struttura ma bisogna saperla
trovare.
Non sempre i dati a nostra disposizione si trovano in una forma o nellaltra:
spesso, infatti, essi si trovano in forme miste. Possiamo trovare dati strutturati
che contengono al loro interno, ad esempio nelle loro tabelle, dati non struttura-
ti; allo stesso modo, esistono dati strutturati allinterno di quelli non strutturati,
o perche si cerca di dare loro uno scopo ben preciso o perche tali dati ne riflet-
tono il contenuto. Prendiamo in considerazione una pagina web dove allinterno
troviamo un form tramite il quale i visitatori possono fornire un feedback per
valutare un prodotto o un servizio tramite dei pulsanti; questi rappresentano un
insieme di dati strutturati allinterno di una serie di informazioni non strutturate
rappresentate proprio dalla pagina web.
In definitiva, possiamo concludere che nel flusso di informazioni al giorno doggi
e quasi impossibile trovare dei dati che si trovano in una forma o nellaltra in
maniera indistinta; al contrario, ci troviamo quasi sempre di fronte a situazioni
miste. Resta, comunque, di grande utilita fare una distinzione tra le due categorie
per sapere come gestire ogni evenienza.
Dati statici e dinamici: i dati statici sono quei dati che non cambiano mai nel
tempo; essi possono essere analizzati allo stesso modo in qualsiasi momento. I
problemi che riguardano questo tipo di dati consistono nel fatto che essi conten-
gono spesso lacune, errori, valori anomali o incompleti, e tali resteranno. Questi
dati richiedono, quindi, una certa preparazione e una pulizia preventiva prima
di essere utilizzati per unanalisi. I dati dinamici, al contrario, vengono aggior-
nati continuamente, spesso a grande velocita. Ad esempio, possiamo considerare
dinamiche le pagine web di Facebook o Twitter che vengono aggiornate conti-
nuamente. Anche questo tipo di dati presenta dei problemi. Infatti, il costante
flusso di informazioni determina un enorme volume di dati; inoltre le continue
modifiche rendono difficile lanalisi.
Esistono due tipi di approcci per analizzare questo tipo di dati, che rappresen-
tano la tipologia piu utile per chi vuole utilizzare lanalisi predittiva. Il primo
approccio consiste nellesaminare solo le ultime istanze dei dati, ovvero quelle
piu recenti, e aggiornare lo stato del modello solo in base ad essi questo permette
di creare uno schema che riflette solo gli aggiornamenti piu recenti. Il secondo
approccio consiste nel realizzare il modello utilizzando lintero dataset, compresi
i dati passati oltre a quelli piu recenti, e aggiornarne lo stato solo in base a questi
ultimi.
I due approcci vengono scelti in base alla natura del settore al quale interessa
lanalisi: in molti casi e preferibile concentrarsi sui dati appena raccolti e analiz-
zarli in tempo reale riplasmando, di volta in volta, il modello per rappresentare
14 1 Predictive Analytics

la situazione corrente. Un tipico esempio e dato dal prezzo dei prodotti che si
vuole far variare in base alle condizioni del mercato.
A queste categorie appartengono tutti i dati che vengono raccolti, in maniera auto-
matica o meno, e che fanno parte della cosidetta Business Intelligence. Questi dati
possono, ad esempio, riguardare acquisti effettuati, metodi di pagamento, oggetti
acquistati insieme ad altri, dati sui clienti stessi che forniscono informazioni sulle lo-
ro abitudini, dati raccolti nei sondaggi, cronologie di navigazione web, e molto altro
ancora. Se correttamente interpretati e preparati essi servono per la realizzazione
di un modello efficiente.

1.5 Il processo di analisi


Prima di illustrare i vari passi nella realizzazione di un processo di analisi predittiva
e utile fare una distinzione tra due possibili tipi di analisi, ciascuno dei quali e
caratterizzato da una serie di vantaggi e svantaggi:
Data-Driven Analytics: e unanalisi che non richiede la definizione di un par-
ticolare obiettivo per essere realizzata. Parte dai dati utilizzando strumenti di
data mining e cercando di estrapolare quante piu informazioni possibili, siano
essi dati interni al settore interessato o esterni, provenienti da altre fonti. Questo
processo appare fondamentale se si ha a che fare con grosse collezioni di dati che,
altrimenti, sarebbero impossibili da interpretare a causa delle elevate dimensioni
e complessita; inoltre, piu i dati sono completi e ridondanti e piu risultati questo
tipo di analisi riesce a fornire.
Il vantaggio principale della data-driven analytics e che non e necessario pos-
sedere una conoscenza preliminare del settore per individuare i dati piu utili
allanalisi, ma si parte da tutti i dati in possesso e si cerca di ottenere il maggior
numero di informazioni; se continuano a emergerne di nuove si continua fino a
quando e possibile, procedendo, sempre, con losservazione dei risultati durante
il procedimento.
User-Driven Analytics: in questo caso si parte da un obiettivo ben preciso e non
dai dati, anzi si ricercano i dati piu adatti a supportare tale scopo. Al contrario
dellanalisi basata sui semplici dati, in questo caso e necessaria una profonda
conoscenza del settore interessato alle previsioni, per capire quali risorse possono
andare a favore dellobiettivo.
Parte dei dati vengono usati per la realizzazione del modello; unaltra parte viene
usata per effettuare dei test su di esso; quindi si valutano i risultati, sempre in
base a conoscenze specifiche.
Lo svantaggio di questo tipo di analisi e che, concentrandosi su unidea ben pre-
cisa, e utilizzando solo una parte ben definita dei dati a favore di essa, si rischia
di perdere di vista molte possibili informazioni che sarebbero potute emergere
da un esame piu approfondito dellintero dataset a disposizione. Conviene, quin-
di, se il tempo e le risorse lo permettono provare a farsi unidea su cio che puo
emergere da unanalisi piu approfondita.
Una volta scelto il tipo di analisi piu adatta a supportare gli obiettivi del setto-
re il processo puo iniziare. Esso prevede vari passi che vanno dalla scelta e dalla
preparazione dei dati alla visualizzazione del risultato finale.
1.5 Il processo di analisi 15

1.5.1 Identificazione dei dati

I dati che vengono utilizzati provengono da tantissime fonti e in formati molto di-
versi tra loro, ma non tutti sono adatte a costruire il modello. Per avere unidea
chiara di cio che puo essere utile bisogna avere bene in mente quali sono gli obiettivi
da raggiungere e capire quali sono le informazioni necessarie al loro raggiungimen-
to di tale scopo. A tal fine puo essere utile interrogare gli esperti del settore; ad
esempio, nel mondo del marketing, una tipica richiesta e quella di voler individuare
preventivamente i clienti che nellimmediato futuro non saranno piu interessati a
una determinata offerta o ad uno specifico servizio; in questo caso potrebbe esse-
re utile interrogare gli esperti del settore clienti. Le risorse raccolte devono essere
capaci di soddisfare il modello che si vuole costruire e, infine, il progetto stesso.
Importantissimo, quindi, conoscere come reperire i dati grezzi, come potervi
accedere (spesso tramite luso di strumenti adatti) e la qualita di questi dati. Inoltre,
e possibile doverli integrare a dati gia provenienti da altri dataset esterni al settore
interessato per riuscire a ottenere quante piu informazioni possibili.
Il dataset che si viene a creare deve contenere tutte quelle informazioni che
si stima possano essere rilevanti ai fini del calcolo predittivo, per rispondere al
problema che ci si e posti. Per riprendere lesempio gia citato, se si sta cercando di
prevedere quali clienti avranno un calo di interesse nei confronti di un determinato
servizio, il dataset che dovranno creare dovra contenere sicuramente informazioni
sui clienti che hanno gia rinunciato a tale servizio e quelli che, invece, non lo hanno
ancora fatto. In genere, i dati piu rilevanti sono quelli che riguardano gli eventi
passati e che coincolgono lentita, o linsieme di entita sulle quali si sta cercando di
fare previsioni.
Infine, una volta in possesso di una certa quantita di dati, e necessario indi-
viduare tra questi quali variabili sono utili e quali, invece, non forniscono alcuna
informazione utile. Un tipico approccio consiste nel prendere in considerazione, ini-
zialmente, una grossa quantita di variabili e, quindi, procedendo con la realizzazione
e con il collaudo del progetto, una volta acquistite alcune informazioni chiave, elimi-
nare quelle che non hanno nessun valore ai fini della predizione. Questi dati verranno
dati in pasto al modello che si sta cercando di realizzare, cercando di ottenere i
risultati desiderati con la maggiore precisione e affidabilita possibili.

1.5.2 Strutturazione dei dati

Una volta individuati i dati che si considerano essere piu rilevanti ai fini del pro-
getto di analisi predittiva, e necessario, per poterli utilizzare, estrarli dalle sorgen-
ti nelle quali sono stati individuati e inserirli in strutture organizzate, realizzate
appositamente.
In questo modo linsieme di dati grezzi non strutturati, provenienti da fonti ete-
rogenee, diventa un insieme di dati strutturati, inseriti in tabelle e con gli attributi
in evidenza. Questo e utile non solo per organizzare i dati in modo da poter essere
utilizzabili dai vari algoritmi, ma anche per esaminarne le proprieta. In base a ta-
li caratteristiche, infatti, viene scelto lalgoritmo usato per realizzare il modello di
previsione. Per alcuni tipi di dati, infatti, e necessario implementare un determinato
tipo di algoritmo.
16 1 Predictive Analytics

A volte e possibile che le fonti che vengono usate per lestrazione dei dati con-
tengano dati gia strutturati, in tal caso, ma anche nel caso in cui ci troviamo di
fronte a dati non strutturati, e consigliabile realizzare separatamente un database
che contenga quelli estratti, in questo modo anche nel caso in cui si dovranno mo-
dificare o eliminare i dati, ad esempio durante la fase di filtraggio dei dati errati, la
sorgente dei dati verra conservata intatta e sara possibile recuperarli in un secondo
momento.

1.5.3 Preparazione dei dati


Questo passo consiste nellindividuare, allinterno del dataset, valori errati, valo-
ri mancanti o valori ripetuti, allo scopo di poter realizzare una previsione il piu
possibile basata su dati reali e integri.
I valori mancanti devono essere inseriti nei limiti del possibile; dove e facile
intuirne il significato e possibile inserire valori ben precisi (ad esempio, se manca il
valore di un codice postale esso puo essere ricavato a partire dallindirizzo); dove,
invece, non e possibile individuarne il valore e possibile adottare valori di default.
Indicare esplicitamente un valore e preferibile rispetto a lasciare un campo vuoto, in
quanto un valore mancante puo avere piu possibili significati e, quindi, puo portare
a sviluppi imprevisti durante limplementazione dellalgoritmo.
I valori anomali, cioe non coerenti con le informazioni che dovrebbero contenere,
nella maggior parte dei casi devono essere identificati e rimossi. Esistono, pero,
alcuni casi in cui essi possono essere addirittura utili, ad esempio quando si cerca
di identificare e prevenire azioni illegali; in tal caso i valori anomali sono necessari
in quanto la loro presenza e indice di qualcosa che non dovrebbe avvenire.
Ultima categoria di dati da tenere sotto osservazione in questa fase e rappresenta-
ta dai dati ridondanti; anchessi, a volte, possono essere necessari ai fini dellanalisi.
Tuttavia quando non contribuiscono al processo di analisi, ma anzi appesantiscono
inutilmente il dataset, e opportuno eliminarli. E, spesso, necessario usare lintuizione
per individuare quali tra questi dati conservare e quali eliminare, senza dimenticare
che in qualsiasi momento e possibile recuperare nuovamente le informazioni escluse
e riproporle al modello per verificare se e possibile che la loro presenza determini
nuovi risultati utili. Questo dimostra come il processo di analisi predittiva sia un
processo dinamico in continua evoluzione. La fase di pulizia e filtraggio dei dati
dovrebbe essere eseguita piu volte durante il processo di analisi per evitare che
eventuali nuovi valori contengano errori o incoerenze.
Una volta identificate le variabili piu utili per la costruzione del modello, prima
di procedere ulteriormente, conviene effettuare alcuni controlli che garantiscano
maggiore efficacia ed efficienza al modello stesso durante la sua esecuzione. Un
aspetto al quale prestare particolare attenzione e quello rappresentato dai dati che
vengono derivati da altri dati; e utile, infatti soffermarsi su alcuni dati ed estrarre da
essi ulteriori informazioni che possono fornire un ulteriore incentivo alla precisione
del modello finale. Un esempio banale e quello delleta di una persona che viene
derivata dalla propria data di nascita; questa operazione fa parte del processo di data
mining. Spesso questi dati sono molto importanti per la costruzione del modello;
possono essere presi in considerazione anche durante una o piu fasi di esecuzione
successive alla prima, ma, probabilmente, forniranno potere di previsione aggiuntivo
al modello finale.
1.5 Il processo di analisi 17

Unulteriore strategia utile per garantire lefficienza del modello consiste nel ri-
durre il piu possibile le dimensioni del dataset o, dove cio non fosse possibile, nel
cercare di ottimizzare laccesso ai dati. Questo si traduce in operazioni di ristruttu-
razione e normalizzazione del dataset; in particolare, una strategia spesso utilizzata
per ridurre la quantita di dati in presenza di relazioni uno a molti tra di essi, che
causano un eccessivo ingrandimento del dataset, e loperazione di appiattimento.
Tale operazione consiste nellinserire i dati ripetuti relativi ad una stessa istanza
di unentita come attributi aggiuntivi di essa; cio permette di eliminare le relazioni
uno a molti che non fanno alto che rallentare il modello ma che in genere non
portano alcun vantaggio alla costruzione di un modello valido.

1.5.4 Scelta del modello

Un modello e una rappresentazione statistica o matematica di un fenomeno; esso


rappresenta una descrizione del comportamento di unentita e puo essere usato per
prevedere alcune azioni. Costruire un modello consiste nellindividuare una rela-
zione matematica tra le variabili in ingresso e quelle di uscita. Analizzando i dati
in possesso e utilizzando dei modelli gia a disposizione coerenti con determinate
tipologie di dati, si puo stabilire una relazione tra le piu diffuse categorie di dati
utilizzati attualmente e alcune azioni, quindi valutare la percentuale di occorrenza
di quelle azioni e stabilire una previsione statistica. Tutto questo diventa essenziale
quando, per una compagnia, non prevedere una determinata azione, o lesito di una
decisione, o una possibile frode puo determinare ingenti perdite.
La costruzione del modello rappresenta il cuore dellanalisi predittiva; essa parte
dalla scelta di un algoritmo matematico che permetta di indiduare schemi e relazioni
nellinsieme dei dati; in particolare, ci si interessa alla scoperta delle relazioni tra le
varibili in ingresso e cio che si desidera ottenere come variabile di uscita. Durante la
creazione del modello e bene tenere a mente quale lobiettivo della sua realizzazione;
un modello non e che una semplice rappresentazione matematica a meno che non ci
si domandi a cosa puo essere utile. Dare una precisa definizione allobiettivo che si
vuole raggiungere aiuta a costruire un modello efficace e a dare ad esso uno scopo,
inoltre e bene tenere a mente tutte le risorse che possono aiutare la realizzazione e
le varie caratteristiche.
Come gia detto, infatti, la scelta dellalgoritmo piu adatto dipende dalle carat-
teristiche dei dati con cui si ha a che fare; per fare degli esempi, quando i dati si
presentano in successione temporale continua e si vuole prevedere il prossimo valore
che la serie assumera e bene usare un algoritmo di regressione lineare; quando, al
contrario, si ha a che fare con dati che non presentano alcun legame con il tempo,
ma si vuole semplicemente individuare alcune caratteristiche o relazioni che potreb-
bero avere, allora si usano algoritmi di classificazione; infine, quando si usano dati
con molti attributi e bene usare algoritmi di clustering. Da questi esempi emerge
come avere bene in mente lobiettivo e avere una profonda conoscenza dei dati e
fondamentale per scegliere lalgoritmo che dara i risultati piu completi; alcuni algo-
ritmi sono perfetti per affrontare problemi specifici. Oltre a questo e utile, anche,
considerare come verra usato il modello, chi lo usera, cosa succederebbe se la previ-
sione fosse errata e, infine, come verranno utilizzati i dati; tutto questo sempre per
ottimizzare il processo di analisi predittiva.
18 1 Predictive Analytics

1.5.5 Implementazione del modello


Una volta scelto lalgoritmo adatto a realizzare il modello un passo fondamentale
nel processo di analisi predittiva e quello di dividere i dati in possesso in due gruppi,
il dataset sara quindi diviso in training data e test data. I primi vengono forniti al
modello per meglio definirlo; ogni dato che viene fornito serve a delineare una rap-
presentazione piu chiara del funzionamento dellalgoritmo, a trovare nuovi schemi
nei dati e a capire che relazione hanno tali dati con i risultati. La seconda categoria
serve a provare il modello cos ottenuto e a osservare se i risultati che emergono
soddisfano lobiettivo della previsione.
Limplementazione del modello prevede una tecnica iterativa; conviene, infatti,
ripetere piu volte lesecuzione dellalgoritmo cambiando ogni volta i dati in input.
Ogni tentativo permettera di avvicinarsi sempre di piu a quella che sara la realta,
in quanto permettera di scavare piu a fondo nei dati per dare alla luce nuovi schemi
e relazioni. Inoltre, se il tempo e le risorse lo permettono, sarebbe una buona prassi
quella di applicare piu di un algoritmo sempre con lo scopo di far emergere nuove
scoperte; e anche possibile, per un analisi ancor piu approfondita, evidenziare nuovi
schemi allinterno del dataset applicando un algoritmo di clustering che ha come
scopo quello di trovare nuove relazioni tra dati. Per non perdere traccia di ogni
esperimento conviene documentare ogni implementazione, riportando i dati e gli
algoritmi utilizzati.
Una tecnica particolare per testare il modello e far emergere piu risultati possibili
e la tecnica chiamata cross-validation; essa consiste nel dividere i dati in n gruppi,
quindi scegliere uno di questi gruppi che rappresentera i test data mentre tutti gli
altri gruppi saranno training data. Dopo aver fatto passare tutti i training data
dal modello si valuta la previsione sui test data; dopo di cio, i test data diventano
training data e viene scelto un altro tra gli n gruppi per fungere da test data. Si
continua cos finche ognuno degli n gruppi e stato usato come test dataset ; in questo
modo si riesce ad avere una visione piu ampia di cio che puo emergere dal dataset
senza trascurare nessuna risorsa e avendo contemporaneamente un quadro completo
di ogni possibile risultato.
I risultati delle varie implementazioni vanno valutati consultandosi con gli esperti
del settore per identificare quali tra le variabili in output hanno un valore maggiore
come possibile rappresentazione di cio che potra avvenire in futuro. Infine, verra
scelto lalgoritmo piu soddisfacente. In aggiunta, con il procedere delle varie prove
che vengono effettuate lesperienza gioca un ruolo fondamentale in quanto, a lungo
andare, aiuta a scegliere algoritmi sempre piu convenienti.
Tra i problemi piu comuni che possono sorgere durante ogni implementazione
ve ne sono, in particolare, due che si incontrano molto spesso osservando i risultati
forniti da ogni modello creato dai vari algoritmi. Il primo problema insorge dal
momento in cui il modello non riesce a trovare abbastanza relazioni nei dati e,
quindi, non riesce a fornire risultati significanti, questo e indice del fatto che i dati
con cui si ha a che fare non hanno niente a che vedere con lobiettivo che si cerca
di raggiungere; pertanto i risultati ottenuti non hanno niente a che vedere con
la previsione che ci si aspettava. Il secondo problema sussiste quando al modello
sono forniti troppi dati inutili che possiamo definire come una sorta di rumore per
il processo, questi dati determinano un calo nellefficienza ma, soprattutto, nella
precisione dei risultati che rischiano di non rispecchiare piu la realta a venire.
1.6 Critiche 19

1.5.6 Valutazione del modello

I vari risultati ottenuti vanno esaminati da esperti del settore; a questi verranno
mostrate le variabili che emergono da tutte le implementazioni di tutti i modelli
usati. Gli esperti dovranno verificare se cio che e emerso dallanalisi va a favore
della ragione per la quale e stato necessario cercare di fare delle previsioni; inoltre,
sara necessario verificare lefficienza dellalgoritmo anche quando si ha a che fare
con grossi dataset.
Per determinare quali misure adottare per migliorare la qualita del modello
e per vedere se esso incontra gli obiettivi prefissati, e utile osservare i risultati
di tutte le implementazioni tramite lutilizzo di grafici. Il modo in cui vengono
visualizzati i risultati e importante perche, se non viene scelto un metodo semplice e
immediato per la visualizzazione, a causa dellenorme mole di dati da includere nella
rappresentazione di cio che e emerso, sarebbe molto difficile fare delle valutazioni
sui risultati.
Ogni algoritmo prevede una rappresentazione diversa, ma tutte devono avere
delle caratteristiche comuni; in particolare, essi devono essere facili e immediati
da capire e devono semplificare la complessita dellanalisi svolta. Se costruiti in
questo modo i grafici finali saranno un ottimo punto di partenza dal quale prendere
decisioni.

1.6 Critiche
Dopo tutte le possibilita finora illustrate costruire un modello predittivo sembra
unoperazione conveniente in qualsiasi campo in cui venga applicato. Tuttavia, so-
no state mosse alcune critiche dalle quali emerge un certo scetticismo per quanto
riguarda labilita di un calcolatore di prevedere gli eventi futuri.
Il professor Gary King, docente alluniversita di Harvard e direttore dellInstitute
for Quantitative Social Science afferma [18, pag.19] come sia impossibile determina-
re con adeguata precisione le variabili che determineranno il comportamento futuro
di una persona, in quanto ciascuno di noi puo essere influenzato da innumerevoli
fattori in modo cos veloce che neanche noi stessi ce ne rendiamo conto. In pratica,
il modo in cui ognuno pensa e agisce puo essere modificato da qualsiasi evento,
dalle relazioni personali alle condizioni atmosferiche; questo renderebbe impossibi-
le prevedere in maniera accettabile qualsiasi comportamento e renderebbe lanalisi
predittiva solo una tecnica valida a livello teorico, durante le prove in laboratorio,
ma che non potrebbe mai avere alcun riscontro nel mondo pratico.
2
Big Data

Questo capitolo illustra brevemente il concetto sempre piu diffuso di Big Data:
enormi quantia di dati sempre piu diffusi sul web ma anche su altri sistemi utilizzati
al giorno doggi. Ne vengono illustrate le principali caratteristiche e gli scopi per cui
vengono raccolti e analizzati. Tra questi troviamo lanalisi predittiva, per la quale
lo sfruttamento dei Big Data rappresenta un vantaggio formidabile. Vengono infine
illustrati i principali strumenti hardware e software per il trattamento di una tale
mole di dati, in particolare al fine di fornire il maggior numero di informazioni
possibili ai modelli di previsione.

Figura 2.1. Big Data

2.1 Cosa sono i Big Data?


Negli ultimi venti anni lo sviluppo di nuove tecnologie, e servizi, insieme alla diffu-
sione capillare della rete internet hanno determinato un consistente aumento della
quantita di dati raccolti e, conseguentemente, della potenziale conoscenza che si
puo introdurre da essi. Si tratta di dati provenienti dalle interazioni con i clienti,
dati dei social network, dati prelevati dai siti web, in particolare dai motori di ri-
cerca o provenienti da vari sensori; tutti questi dati sono non strutturati, oppure
22 2 Big Data

contengono cos tante informazioni da non poter essere gestiti da normali DBMS
relazionali.
Nonostante molte organizzazioni governative, bancarie o di ricerca gia da mol-
tissimi anni abbiano a che fare con queste ingenti quantita di dati, solo da poco
piu di un decennio e stato coniato il termine Big Data, per sottolineare quanto
al giorno doggi si e sempre piu sommersi da un mare di dati di diverso genere. La
Figura 2.2 mostra una testimonianza di cio.

Figura 2.2. Andamento della quantita di ricerche Google riguardo il termine Big Data
negli ultimi anni, a testimonianza del crescere della popolarita del tema.

Gli eventi degli ultimi venti anni[8, pag.8], a partire dal 1991 con lintroduzione
del protocollo HTTP, hanno profondamente cambiato il modo in cui i dati vengono
creati e trattati. Solo per citare alcuni esempi, consideriamo lintroduzione di tecno-
logie come il GPS, il motore di ricerca Google, luso della rete denominato internet
of things, le pagine del sito web Wikipedia, la diffusione dei social network, lenorme
incremento dei dispositivi connessi alla rete (causato dalla diffusione degli smart-
phone e della tecnologia Wi-Fi). Tutti questi fattori hanno contribuito a creare un
flusso di dati immenso. Tali dati non sono prodotti di scarto ma rappresentano un
tesoro nascosto ricco di informazioni che possono essere scoperte ed utilizzate per
affrontare molte sfide attuali.
Nonostante non esista una definizione universale di big data, il termine si usa
per indicare tutte quelle situazioni in cui le tradizionali tecniche di memorizzazione
ed elaborazione dei dati (come, ad esempio, i tradizionali RDBMS, cioe i sistemi di
gestione di database relazionali) non sono sufficienti. Talvolta, infatti, tale difficolta
e data non solo dal volume ma anche da altre caratteristiche che rendono i dati
coinvolti particolarmente complessi da poter essere trattati; ad esempio, laltissima
velocita con la quale questi dati vengono aggiornati e lestrema varieta degli stessi,
possono essere alcune delle cause di tale ostacolo. In dettaglio, le principali grandezze
che caratterizzano i Big Data sono:
Volume: per dare un idea dellincremento che la quantita di dati ha visto negli
ultimi anni basti pensare che, secondo alcuni studi, la quantita di dati che sono
stati creati nel 2003 ha superato la quantita di dati digitali creati durante tutta
la storia precedente a quel momento. Nel 2011, inoltre, la stessa quantita di dati
e stata creata nel giro di soli due giorni.
Ogni database troppo grande per essere gestito da un normale PC o server
puo essere considerato un insieme di big data. Negli ultimi anni si e passato da
2.1 Cosa sono i Big Data? 23

database dellordine dei terabyte a collezioni di dati dellordine dei petabyte (un
petabyte corrisponde a 1.000 terabyte). Leccessiva quantita di dati rappresenta
un problema per molte compagnie che, spesso, sono costrette a scartare i dati in
eccesso non avendo le capacita e le risorse adeguate per contenerli. Ad esempio un
provider di telecomunicazioni con 100.000.000 di clienti raccoglie, ogni giorno,
circa 50 terabyte di dati; cio significa raccogliere 5 petabyte di dati ogni 100
giorni[16, pag.2]. Analizzare una tale quantita di dati porta, sicuramente, a un
gran numero di scoperte, ma per farlo e necessario possedere le risorse adeguate
in termini di capacita di memorizzazione ed elaborazione dei dati.
Velocita: alcuni tipi di dati sono relativamente statici, come, ad esempio, la data
di nascita o il genere di una persona. Altri tipi di dati cambiano occasionalmente,
cioe vengono aggiornati con poca frequenza, come, ad esempio, lindirizzo di
residenza di una persona, il numero di telefono e il numero dei componenti
familiari. Alcuni tipi di dati, tuttavia, cambiano in modo cos rapido da non
essere sempre percepibile dagli strumenti di analisi (ad esempio, la musica che
si sta ascoltando, la velocita di guida, e i dati biologici).
Con il termine velocita si vogliono rappresentare due aspetti utili allo studio
dei Big Data. Il primo e il throughtput cioe la quantita di dati che passa da
un determinato canale nellunita di tempo. Il secondo aspetto da prendere in
considerazione e la latenza, ossia il tempo massimo durante il quale i dati re-
stano immutati. Creare dei tool che riescano ad usare i dati nel minor tempo
possibile ed ottenere i dati in tempo reale, nonostante la complessita di questi
ultimi, rappresenta una grande sfida per gli analisti che si pongono lobiettivo
di scavare dentro i big data.
Varieta: i big data comprendono molti differenti tipi di dati, strutturati e non.
Inoltre, essi racchiudono un numero elevatissimo di possibili formati diversi in
cui si possono presentare i dati: testi, suoni, video e molti altri. Ulteriore compito
degli analisti e quello di formalizzare questa enorme varieta di informazioni in
modo da poter essere compresi anche in maniera automatica.
Ulteriore aspetto da prendere in considerazione e la sincerita dei dati. Molti
di essi, infatti, provengono da fonti interne allorganizzazione che sta realizzando il
processo di analisi; cio significa che essa ha il completo controllo sulla loro struttura
e sul loro formato. Molti altri dati (tra cui informazioni finanziarie, pagine web, da-
ti di navigazione dei GPS), provenendo da innumerevoli fonti esterne, sono spesso
completamente fuori dal controllo di chi li raccoglie. Risulta, quindi, indispensa-
bile verificare la credibilita di queste fonti e valutare se tali informazioni raccolte
rappresentano uno strumento utile ai fini della previsione che si vuole realizzare o,
semplicemente, un prodotto di scarto.
Tutte queste caratteristiche definiscono in maniera precisa cio che al giorno
doggi si intende quando si cerca di descrivere i Big Data. Senza prendere in con-
siderazione aspetti quali la quantita e la qualita dei dati, il termine Big Data puo
essere visto come una filosofia che prevede un modo particolare di reperire, memo-
rizzare e analizzare i dati, agendo in conseguenza a cio che e emerso da tale analisi.
Questa filosofia spinge ad esplorare, in maniera piu completa possibile, tutte le ri-
sorse che si hanno a disposizione (nonostante tali risorse consistano in quantita di
dati dellordine dei petabyte, provengano da innumerevoli fonti e si presentino in
formati eterogenei). Tutto cio si sposa perfettamente con gli obiettivi dellanalisi
24 2 Big Data

predittiva in quanto maggiori quantita di informazioni significano risultati migliori


e piu precisi risultati.
Tuttavia, non bisogna dimenticare che le grandi collezioni di dati sono intrin-
secamente piu difficili da analizzare rispetto ai dataset piu piccoli. Ad esempio, se
durante limplementazione di un modello di analisi fosse necessaria la lettura di una
serie di valori, trovandosi di fronte a grandi quantita di dati, i costi computazionali
aumenterebbero notevolmente; cio puo portare allincapacita di produrre risultati
utili. Sia che si tratti di dati strutturati o non strutturati, la sfida principale con-
siste nel riuscire ad analizzare tutti i dati per individuare schemi per permettano
di ottenere sempre piu informazioni utili. Resta, comunque, impensabile cercare di
gestire una tale mole di dati con metodi tradizionali; a tale scopo sono stati ideati
nuovi metodi per affrontare lo studio dei big data, come, ad esempio, alcuni tool,
basati sul linguaggio naturale, che vengono utilizzati per ottenere le informazioni
desiderate a partire dalla tipologia dei dati non strutturati.

I big data, visti come enormi collezioni di dati, oppure in senso esteso come termine
che indica un approccio per raccogliere piu informazioni possibili, costituiscono uno
strumento molto importante per avere un quadro completo degli eventi che si cerca
di prevedere. Se i vari settori sono capaci di analizzare petabyte di dati in modo
molto efficiente saranno capaci di individuare schemi o anomalie e tali scoperte
potranno essere usate per la costruzione di modelli validi.

2.2 Big Data e Predictive Analytics


Molte delle tecniche e dei metod accennati nel precedente capitolo possono essere
usati con ottimi risultati sui big data per lanalisi predittiva. Il successo di queste
tecniche nellambito dei big data e dovuto al fatto che maggiore e la quantita di dati
forniti agli algoritmi e piu questi ultimi diventano raffinati e precisi. Cio significa che
grandi quantita di dati implicano un migliore e piu affidabile esito nelle previsioni,
grazie anche ai moderni sistemi di computazione che garantiscono lelaborazione di
dati molto voluminosi e complessi.
Una tendenza in continuo aumento e quella che prevede lo svolgimento del-
lanalisi predittiva tramite dati raccolti da fonti molto diverse. Limplementazione
dellanalisi predittiva in questo ambiente distribuito richiede la raccolta di in-
formazioni, (preferibilmente e se le risorse a disposizione lo permettono, dai Big
Data, o, comunque, da piu fonti possibili). Ovviamente i dati, una volta raccolti
devono essere sempre pre-processati e controllati prima di poter essere considerati
utilizzabili per processi di previsione.
Gli analisti devono essere in grado di affrontare il problema della raccolta e
della preparazione dei dati quando essi provengono da piu di una fonte. Un tipico
esempio[7, pag.297] consiste nella situazione che vede una compagnia tentare di pre-
vedere il successo di una decisione riguardo uno dei suoi prodotti, decisione che puo
avere tre esiti diversi: investire molte risorse in tale prodotto per cercare di incre-
mentarne le vendite, terminare la produzione di tale prodotto o, infine, modificarne
lattuale strategia di vendita. Si puo facilmente intuire come una previsione sullesito
di tali opzioni possa influire significativamente sulla rendita della compagnia.
2.2 Big Data e Predictive Analytics 25

Al fine di costruire un modello che aiuti a prevedere lesito di ciascuna di que-


ste decisioni, potrebbe essere di aiuto prelevare le informazioni necessarie da una
moltitudine di fonti diverse, come mostrato in Figura 2.3: e qui che entra in gioco il
concetto di Big Data. Tra le varie fonti dalle quali converra cercare le informazioni
utili possono esserci: il reparto ingegneristico, dal quale sara possibile ottenere dati
tecnici quali le specifiche del prodotto, il suo tempo di vita, i tempi di produzio-
ne, e molto altro ancora; il reparto vendite, dal quale sara possibile ottenere dati
che riguardano i precedenti clienti che hanno acquistato il prodotto, il numero di
vendite per regione geografica, i profitti fino ad ora ottenuti; infine da fonti quali
recensioni sul prodotto, sondaggi, post sui social network o sui forum specializzati,
dalle quali sara possibile raccogliere gli indici di gradimento dei clienti nei confronti
del prodotto e vari attributi riguardo ai clienti stessi, anche in maniera automatica,
tramite dei tool specializzati (opinion mining).
Le varie fonti possono essere suddivise in interne (come, ad esempio, i reparti
ingegneristici e delle vendite), ed esterne (come i siti web). La fase di aggregazione
necessaria per lanalisi di tali dati puo essere completata tramite luso di alcuni
strumenti specifici tra i quali uno dei piu utilizzati e Apache Hadoop: un framework
che supporta applicazioni distribuite in grado di lavorare con migliaia di nodi e
petabyte di dati.

Figura 2.3. Dati su un generico prodotto X raccolti da varie fonti

Raccogliere tutti i dati da tutte le varie fonti disponibili puo essere un proce-
dimento lungo e complesso. Una volta portato a termine, inoltre, una parte delle
informazioni emerse risultera essere inutile. Infatti, anche nel caso dei Big Data, e
necessario individuare quella porzione di informazioni che vanno realmente a favore
26 2 Big Data

del progetto di analisi predittiva (smart data). Tutto cio ha ancora una volta lo
scopo di aumentare la precisione e laffidabilita del modello di previsione.
Unesperienza analoga allo studio dei big data e quella che si trovano ad affron-
tare le industrie minerarie durante la ricerca dei siti di estrazione delloro[9, pag.14].
Si stima, infatti, che esistono molti giacimenti auriferi sommersi dagli oceani, con-
tenenti migliaia di tonnellate di pepite di oro sepolte al loro interno: una quantita
di gran lunga superiore rispetto a quella estratta fino ad oggi. Allo stesso modo ci
sara sicuramente una grande quantita di informazioni non ancora estratte dai big
data, ma ricavare tali informazioni puo essere molto costoso.
Alcune volte i benefici che lanalisi predittiva ottiene esaminando i big data
valgono lo sforzo e le risorse impiegate durante il processo di estrazione delle in-
formazioni, altre volte no. In base al settore in cui si effettua lanalisi, utilizzare
fonti esterne quali i big data puo essere piu o meno conveniente, ma, in molti casi,
utilizzare tali fonti fornisce una sorgente di informazioni estremamente redditizia.
Estendere le proprie conoscenze tramite fonti esterne quali i Big Data richiede,
quindi, un compromesso. Da un lato ce il chiaro vantaggio di ottenere moltissime
informazioni aggiuntive che possono rendere il modello di previsione molto piu utile;
il rovescio della medaglia e costituito dal fatto che, come gia detto, tutto cio ha un
costo. E, quindi, necessario valutare preventivamente se concentrare i propri sforzi
nel provare a districare la matassa di informazioni contenute nei big data in base
alle proprie esigenze. Le risorse richieste consistono sia in nuove teorie, algoritmi e
metodi e di data mining, sia in un hardware migliore, capace di gestire una grossa
quantita di dati. In entrambi gli ambiti gli strumenti devono evolversi di pari passo:
complessi software per lestrazione delle informazioni richiedono grosse quantita di
memoria ed elevate capacita computazionali.

2.3 Hardware e Calcolo distribuito


Come e emerso da cio che e stato detto finora la scelta di come sfruttare le po-
tenzialita offerte dai big data e strettamente legata alle necessita individuali. Di
conseguenza, le configurazioni hardware necessarie variano in base alle quantita di
dati che si vogliono passare in rassegna per sfruttare i principi di data mining su di
essi.
In generale, grosse quantita di dati richiedono grosse capacita di memorizzazio-
ne: riuscire a conservare molti dati sulla storia passata significa realizzare previsioni
molto piu verosimili sul futuro. I tradizionali hard disk che utilizzano dischi magne-
tizzati sono molto affidabili ma hanno lo svantaggio di accedere ai dati in maniera
molto piu lenta rispetto alle altri componenti del computer. Per questo motivo,
dovendo analizzare in breve tempo dati volatili, che cambiano molto velocemente,
vengono spesse adottate soluzioni quali gli array di dischi, i quali sono costituiti da
diversi gruppi di hard disk con unarchitettura tale da incrementare la velocita di
trasferimento dei dati e la sicurezza in caso di guasti. Essi permettono di ottenere
un throughput fino a 6 gigabyte al secondo, un incremento fino a 50 volte maggiore
rispetto ai sistemi a singolo hard disk [10, pag.28].
Col tempo, inoltre, la quantita di dati che possono contenere questi dispositivi
di memorizzazione e aumentata in media dal 50% al 100% ogni anno negli ultimi
2.3 Hardware e Calcolo distribuito 27

10 anni, come mostrato in Figura 2.4, mantenendo prezzi relativamente costanti.


Questi fattori hanno permesso la diffusione dellutilizzo dei big data come strumento
determinante per il successo dellanalisi predittiva.

Figura 2.4. Aumento della capacita degli hard disk nel corso del tempo

Unulteriore soluzione e rappresentata dalla tecnologia degli SSD (dispositivi di


memoria di massa costituiti da memorie flash), che non contengono dischi magne-
tizzati o parti meccaniche per la lettura e la scrittura. Essi hanno una velocita che
puo superare i 450 MB/sec, e sono piu resistenti ai guasti, non contenendo parti
meccaniche. Questi ultimi costituiscono una buona soluzione in quei settori in cui
vengono utilizzate quantita di dati moderate, non troppo grandi, i quali cambia-
no occasionalmente. Sono, inoltre, disponibili anche array di SSD, ma il problema
maggiore, in questo caso, e costituito dal costo. Infatti, ogni unita di memoria SSD
e molto piu costosa rispetto alle singole unita di memoria a dischi magnetizzati. Un
buon compromesso e costuito da una strategia ibrida, che usa differenti tecnologie
per andare incontro alle varie necessita.
Per poter processare grandi quantia di dati e, inoltre, necessaria unadeguata
capacita di calcolo. Levoluzione di cui le moderne CPU sono state oggetto negli
ultimi anni gioca a favore di un possibile intenso utilizzo dei big data. Fino al 2000
levoluzione dei microprocessori e stata descritta dalla legge di Moore, cofondatore di
Intel, secondo cui la complessita di un microcircuito raddoppia ogni 18 mesi. Non
potendo incrementare ulteriormente la capacita di calcolo, in termini di frequenza,
sono quindi stati aggiunti nuovi core, ossia componenti indipendenti che elaborano
i dati parallelamente tra loro e condividono delle risorse comuni.
Tra le componenti che rivestono un ruolo fondamentale nellanalisi dei Big Data
e, infine, utile citare quei meccanismi che consentono a piu macchine di comunicare
tra loro, creando una rete di calcolatori. Essi sono rappresentati dai vari protocolli di
28 2 Big Data

rete e dalle molteplici infrastrutture che mettono in comunicazione le diverse unita


di calcolo. Avendo a che fare con enormi flussi di informazione, infatti, puo essere
utile distribuire i compiti dei vari algoritmi su piu macchine per alleggerire il carico
sulle singole unita. Tuttavia, il trasferimento di dati attraverso una rete risulta
avvenire a una velocita molto inferiore rispetto a quella delle varie componenti
finora analizzate. Per questo motivo la rete rappresenta un collo di bottiglia per i
vari algoritmi; e necessario, quindi, minimizzare lutilizzo del calcolo distribuito
trasferendo informazioni solo quando effettivamente ve ne e bisogno.
Con lincremento della quantita e della velocita dei dati che si ottengono (nei
casi in cui una singola macchina non e piu sufficiente ad elaborare le informazioni
in un tempo utile prima che esse vengano aggiornate o, comunque, in un tempo
ragionevole) non e piu sufficiente assicurare i risultati di un algoritmo di analisi[11,
pag.42]. In tali situazioni e necessario ricorrere a componenti distribuite su piu
macchine e dividere le operazioni di calcolo su piu nodi. Il calcolo distribuito fu
inizialmente utilizzato per svolgere calcoli molto complessi, che non potevano essere
portati a termine da un solo calcolatore. Allo stesso modo, dovendo analizzare grosse
quantita di dati in maniera sufficientemente rapida, suddividere questo compito su
diversi nodi appare essere la strategia migliore per affrontare una cos grande sfida.
Ogni nodo include una propria CPU, una propria memoria centrale e di massa,
e puo operare in maniera indipendente. Inoltre, le architetture distribuite devono
garantire lapertura, cioe deve essere sempre possibile aggiungere un nuovo nodo al
sistema (ad esempio quando si vuole affidare a tale nodo il compito di elaborare i
dati provenienti da una nuova fonte).
Un algoritmo puo essere suddiviso in piu attivita (task ), come mostrato in Figura
2.5; a ciascuna di esse verra fornita una frazione di dati ed essa restituira un risultato
che dovra essere ricomposto con i risultati forniti dalle altre attivita. In alternativa,
nelle situazioni piu complesse, ad ogni macchina puo essere affidato un algoritmo
di calcolo diverso. E, inoltre, possibile distribuire i vari algoritmi su piu di una
rete, sfruttando le capacita offerte da diversi sistemi distribuiti; questo, pero, va a
svantaggio della velocita di comunicazione: piu le reti sono distribuite in unarea
geografica ampia e piu lo scambio di messaggi tra esse risultera lento e richiedera
piu cicli di trasferimento per la comunicazione.
Un tipico esempio di implementazione di calcolo distribuito nellambito dei big
data e rappresentato dal framework MapReduce introdotto da Google (sul quale si
basa Apache Hadoop), che supporta la computazione distribuita su grandi quantita
di dati ed e, quindi, capace di implementare le strategie esposte fino ad ora.

Combinando insieme architetture di calcolo distribuito, sistemi con hardware avan-


zato, strumenti come MapReduce e Hadoop e possibile affrontare la sfida dellanalisi
di vaste e complesse quantita di dati per venire incontro ad ogni tipo di esigenza.

2.4 Strumenti di Analisi


I big data, essendo spesso dati non strutturati, richiedono particolari strumenti
per essere memorizzati e gestiti. Con la diffusione di strumenti open-source, quali
MapReduce, Hadoop ed alti ancora, i costi per la gestione di tali dati si sono abbassati
2.4 Strumenti di Analisi 29

Figura 2.5. Processo diviso in piu sottoparti (task ).

significativamente. Nel seguito daremo uno sguardo ai principali tra questi strumenti
di analisi.

2.4.1 MapReduce

MapReduce e un framework che permette agli sviluppatori di scrivere programmi in


grado di lavorare su enormi quantita di dati non strutturati in parallelo su un sistema
distribuito. Tale piattaforma fu sviluppata dai ricercatori di Google intorno al 2000,
quando questi notarono che gli strumenti in loro possesso presto non sarebbero stati
capaci di gestire i dati provenienti dal numero sempre crescenti di visitatori che il
Web stava incontrando. Tali ricercatori si resero conto che sarebbe stato possibile
gestire quantita di dati praticamente illimitate sfruttando le potenzialita offerte
dalla computazione parallela. Essi presentarono MapReduce come un modello di
programmazione generico e ne mostrarono unimplementazione per evidenziare la
praticita e lefficienza di tale modello. Durante gli anni, poi, furono create molte
altre implementazioni, disponibili per i piu svariati settori.
Tale modello di programmazione prevede lutilizzo di due funzioni: la funzione
Map() e la funzione Reduce(). Per capire il motivo per cui tali funzioni sono molto
utili se utilizzate con i Big Data e opportuno richiamare il paradigma con cui sono
state create, ovvero il paradigma della programmazione funzionale. Seguendo questo
tipo di programmazione, gli operatori delle funzioni non modificano il valore e la
struttura dei dati ma creano nuovi dati in output. Si tratta di un paradigma usato
quando e necessario ripetere uno stesso schema sugli stessi dati piu e piu volte
senza modificare gli stessi. Con la programmazione funzionale, inoltre, non esiste
un ordine definito con il quale vengono eseguite le operazioni e non e necessario
definire esplicitamente dove i dati di output verranno salvati. Tali caratteristiche
30 2 Big Data

rappresentano vantaggi fondamentali nel contesto dei Big Data in quanto viene
garantita la possibilita di conservare i dati immutati e di proporre piu volte gli stessi
schemi su di essi. Inoltre, la programmazione funzionale si sposa perfettamente con i
sistemi distribuiti in quanto non e necessario definire dove verranno memorizzati gli
output di ciascun nodo. Le funzione Map() e Reduce() sono implementate seguendo
il modello della programmazione funzionale. Nel seguito esaminiamo piu in dettaglio
le due attivita di Map() e Reduce().
Map(): un sistema distribuito che opera utilizzando il framework MapReduce e
composto da unarchitettura centralizzata in cui un nodo particolare (identificato
come nodo centrale o nodo master) ha piu importanza rispetto agli altri. In tale
nodo risiede la funzione Map(). Essa riceve in ingresso una query o una procedura
che deve essere eseguita su una lista, anche molto grande, di valori in ingresso e
la divide in piu processi, ciascuno dei quali svolge un compito differente. Questi
compiti piu piccoli vengono assegnati ad ogni nodo secondario, o slave, il quale
eseguira la procedura ottenuta in parallelo, restituendo un risultato.
Per fare un esempio[10, pag.103] di un programma che puo essere implementato
tramite la funzione Map(), supponiamo di voler esaminare una lista di citta
che hanno partecipato a una recente elezione. Ogni dato prelevato dalla lista e
fornito alla funzione Map() e costituito da una coppia di valori: una chiave che
ne identifica la particolare istanza ed il valore vero e proprio. In tal modo nella
lista delle citta ogni elemento sara costituito da una chiave che rappresenta il
nome della citta e da un valore che rappresenta il numero di abitanti. Tramite
luso della funzione Map() si avra il seguente codice:

map howManyPeople (mylist) = [ howManyPeople county
1; howManyPeople county 2; howManyPeople county 3;
howManyPeople county 4; . . . ]
 
Tale funzione riceve tra i propri parametri la stessa funzione howManyPeople;
in questo caso, ciascun parametro corrisponde ad unimplementazione della fun-
zione stessa (ulteriore caratteristica della programmazione funzionale e quella
di poter fornire ai parametri delle proprie funzioni altre funzioni). Ognuna di
queste funzioni conta il numero di abitanti di ogni citta e viene distribuita in
un nodo del sistema distribuito, essa dovraa restituire un valore positivo se tale
citta possiede piu di 50.000 abitanti. In questo modo viene distribuita unim-
plementazione di howManyPeople in ogni nodo, il quale restituira il risultato
indipendentemente dagli altri nodi.
Da notare come anche la lista dei dati in input e stata suddivisa ed ogni frazione
del dataset viene distribuita alle varie funzioni durante limplementazione della
funzione Map(). Tale programma, pur effettuando solo una semplice lettura,
spiega in maniera chiara come avviene la procedura di suddivisione di Map() e
come essa possa essere applicata a grandi collezioni di dati per semplificare il
lavoro da svolgere sullintero dataset.
Reduce(): analogamente alla funzione Map(), anche la funzione Reduce() e rea-
lizzata secondo il paradigma della programmazione funzionale e riceve in ingresso
una lista di elementi. Tramite Reduce() e possibile implementare una funzio-
ne che riceve in input tale lista, opera su di essa alcune istruzioni che vengono
decise dal programmatore, e quindi restituisce il risultato finale. Per riprendere
2.4 Strumenti di Analisi 31

lesempio precedente, dove era stata mostrata limplemetazione di una funzione


tramite Map() la quale restituiva una lista di elementi, viene adesso mostrata
limplementazione di una funzione tramite Reduce(). Il risultato della funzione
howManyPeople e una lista di citta le quali possiedono piu di 50.000 abitanti.
Ogni elemento di tale lista e stato ricavato da un nodo del sistema distribuito:

(no, county 1; yes, county 2; no, county 3; yes, county
4; ?, county nnn)
 
Ogni risultato e una coppia in cui viene indicato il nome della citta stessa ed un
valore positivo che specifica se quella citta possiede o no piu di 50.000 abitanti.
La funzione che verra implementata tramite Reduce() si chiama isDemocrat;
essa esamina ogni elemento della lista e restituisce solo quelle citta dove gli
elettori hanno votato per il Partito Democratico:

reduce isDemocrat (no, county 1; yes, county 2; no,
county 3; yes, county 4; ?, county nnn)
 
Tutto questo viene svolto senza apportare alcuna modifica alla lista di partenza.
In questo modo e possibile ripetere il processo implementando ulteriori funzioni
tramite Reduce() senza, cos, alterare le informazioni contenute nei dati utili.
In alcune situazioni una lista di risultati prodotti, a partire dai dati in input, tramite
la funzione implementata con Map() e sufficiente. In altri casi (soprattutto quando
si ha a che fare con grosse collezioni di dati) si vuole esaminare tali dati, selezionare
alcuni elementi di maggiore interesse e, infine, implementare unoperazione sulla
lista dei dati selezionati. Questo appena descritto e il metodo adottato per affrontare
il problema della complessita dei Big Data. In tal modo si sfruttano le potenzialita
di entrambe le funzioni Map() e Reduce() che, insieme, compongono il pattern
MapReduce, il cui nome deriva proprio dalle due funzioni che lo costituiscono.
Questo genere di tecniche vengono definite tecniche divide et impera. Parten-
do da una grossa raccolta di dati, si usa la funzione Map() per implementare diverse
procedure che esaminano porzioni definite dei dati ed estraggono le informazioni di
maggiore interesse; si crea, quindi, una lista che viene, infine, esaminata da una pro-
cedura implementata tramite la funzione Reduce() producendo loutput desiderato,
come mostrato in Figura 2.6.
I programmatori possono implementare qualsiasi funzione tramite tale approc-
cio; anche dovendo esaminare quantita di dati dellordine dei petabyte, esso risulta
particolarmente efficace ed efficiente in quanto sfrutta tutte le potenzialita della
programmazione distribuita gia illustrate. Inoltre, grazie al paradigma della pro-
grammazione funzionale, lordine con il quale vengono eseguite le varie funzioni
implementate tramite Map() e ininfluente. Con questo tipo di programmazione e
prevista infatti una sorta di proprieta commutativa per le istruzioni, le quali pos-
sono essere eseguite in qualsiasi ordine. Il risultato finale sara visto come se fosse
stato eseguito da una singola macchina. MapReduce funziona, infatti, in maniera
trasparente: in tal modo chiunque voglia implementare le funzioni non si dovra pre-
occupare di come esse verranno distribuite allinterno del sistema (bastera semplice-
mente fornire delle istruzioni da un livello superiore, anche tramite degli strumenti
32 2 Big Data

Figura 2.6. Flusso dei dati lavorati tramite MapReduce

quali Apache Hadoop). Il resto del lavoro verra svolto da MapReduce che risiede in
un livello inferiore secondo unarchitettura a strati in cui lutente, o lo strumento,
di livello piu alto non vuole conoscere il funzionamento delle applicazioni di livello
inferiore ma e interessato semplicemente al risultato che esse forniranno.
MapReduce include, anche, altre caratteristiche per la gestione dei vari processi
che vengono generati. E presente uno scheduler che fa s che tali processi abbiano
maggiore priorita e vengano eseguiti prima che la funzione implementata tramite
Reduce() venga mandata in esecuzione. In questo modo essa non potra essere lancia-
ta prendendo risultati parziali. La sincronizzazione dei sottoprocessi Map() avviene
tenendo traccia della loro esecuzione e, solo quando ciascuno di essi ha fornito il
proprio risultato, verra mandata in esecuzione la funzione Reduce(). Se, inoltre, il
numero di sottoprocessi e maggiore rispetto al numero di nodi presenti nel sistema
allora lo scheduler si occupera di far s che ognuno di essi venga servito. E presente,
anche, un meccanismo di gestione degli errori tale che, se uno dei nodi non riesce
a portare a termine lesecuzione di un processo ad esso assegnato, il sistema rico-
nosce in maniera automatica linsorgere di tale problema e reagisce (talvolta anche
assegnando tale processo a un altro nodo).
Per sfruttare al massimo le potenzialita degli strumenti offerti da MapReduce
sono necessari ulteriori tecnologie che, partendo dai meccanismi che tale piattaforma
offre, permettono di affrontare tutte le sfide che lanalisi dei Big Data propone. Uno
di questi strumenti (forse il piu utilizzato) e Apache Hadoop.

2.4.2 Apache Hadoop

Il progetto di Hadoop nasce dallesigenza di avere un mezzo per gestire grosse quan-
tita di dati in modo semplice e pratico. Prima della nascita di tali strumenti i
2.4 Strumenti di Analisi 33

maggiori motori di ricerca, quali Yahoo! e Google, erano alla ricerca di un modo
per trarre profitto dal continuo flusso di informazioni che ricevevano ogni giorno.
Per fare cio si dovette trovare, prima di tutto, un modo per gestire questi dati in
maniera automatica. Fu proprio il motore di ricerca Yahoo! a dare vita al progetto
Hadoop per venire incontro a tali esigenze. Il creatore di questa nuova piattaforma,
lingegnere Doug Cutting, termino il progetto nel 2004 utilizzando come punto di
partenza il framework MapReduce di Google. Proprio come MapReduce, infatti, lap-
proccio di Hadoop per affrontare la complessita dei Big Data consiste nel dividere
il problema in piu passi minori e nel risolverli parallelamente.
Le componenti principali di Hadoop sono due:
Hadoop Distributed File System. Un file system distribuito e un particolare ti-
po di file system che permette la memorizzazione di file e risorse su dispositivi
di archiviazione distribuiti in una rete informatica, anziche archiviati su un di-
spositivo locale. LHadoop Distribuited File System, o HDFS, e stato ideato per
soddisfare alcuni requisiti, quali la scalabilita e laffidabilita. Esso e in grado di
gestire un numero elevatissimo di file (anche dellordine dei petabyte). Analo-
gamente ad altri file system, esso presenta i file in una struttura gerarchica di
cartelle e li distribuisce attraverso i vari nodi.
I file system di tipo distribuito operano attraverso un meccanismo client-server;
come tutti, anche HDFS lavora a partire da un nodo centrale che contiene unap-
plicazione chiamata namenode. Tale applicazione gestisce lintero file system,
controlla laccesso ai file (per operazioni di lettura, scrittura, etc.) e determina
come essi verranno suddivisi, nei vari nodi, allinterno di blocchi da 64/128MB.
La responsabilita del namenode e quella di tenere traccia della posizione nella
quale i vari blocchi, che compongono ogni file, vengono distribuiti. Inoltre, il na-
menode offre una strategia di replica e di controllo degli errori che garantiscono
laffidabilita del sistema. Tale applicazione comunica in maniera continua con le
componenti del file system distribuite sui vari nodi secondari: tali componenti
sono chiamati datanode. Attraverso questa comunicazione il nodo principale e a
conoscenza di tutto cio che avviene sugli altri nodi; quindi, nel momento in cui
un nodo non riuscira piu a gestire il flusso delle informazioni dirottera il traffico
dei dati verso un altro nodo.
I datanode sono delle applicazioni che si trovano su tutti i nodi della rete diversi
da quello principale; generalmente e presente un datanode per ciascun nodo.
Tali applicazioni gestiscono fisicamente la memorizzazione dei dati in ciascun
nodo, occupandosi delle operazioni di lettura e scrittura richieste. Laccesso a
ogni datanode e sempre gestito dal namenode il quale, interpretando i messaggi
ricevuti, determina se il nodo secondario sia in grado, oppure no, di gestire le
informazioni che dovrebbero essere affidate ad esso. In tal modo, quando un
datanode non fornisce alcuna risposta viene escluso fino a quando non sara di
nuovo capace di accettare nuovi dati in ingresso. Questo meccanismo permette
al sistema di essere sempre bilanciato ed e completamente trasparente allutente,
il quale vede lintero sistema come se fosse una macchina singola.
Al fine di garantire lintegrita dei dati, durante il processo di divisione dei file in
vari blocchi, ogni movimento viene registrato in un file di log. Grazie a questa
strategia HDFS risulta essere un file system affidabile. Ogni dato, inoltre, viene
replicato piu volte sui vari nodi; questa funzionalita, oltre a rappresentare un
34 2 Big Data

ulteriore punto di forza per laffidabilita del sistema, garantisce una riduzione
dei tempi di accesso per rendere piu efficiente il recupero dei dati.
Ulteriore punto di forza di Hadoop e la possibilita di interagire con diversi tipi
di dati. LHDFS accetta qualsiasi formato, strutturato e non strutturato, pro-
veniente da qualsiasi tipo di fonte. E possibile memorizzare file di testo, email,
foto, video, post provenienti da social network, nonche qualsiasi altro tipo di
dato.
HDFS risulta, pertanto, sempre vantaggioso con dati di grandi dimensioni. I
vantaggi diminuiscono quando, al contrario, si ha a che fare con file di dimen-
sioni piu piccole. In particolare, quando troppi file hanno una dimensione molto
inferiore al singolo blocco di memoria del file system, questo determinerebbe un
incremento nello spazio dei nomi del namenode, associati a ogni singolo blocco.
Tale problema viene risolto dagli archivi Hadoop che compattano molti piccoli
file in raccolte piu grandi.
Hadoop MapReduce: e unimplementazione del framework MapReduce di Google.
Tale versione prevede una serie di funzioni precostruite per affrontare il proble-
ma della complessita dei Big Data. Quando, tramite il client di Hadoop, viene
fatta una richiesta di implementazione del pattern di MapReduce, i dati grezzi
vengono per prima cosa individuati allinterno del sistema distribuito e prelevati
tramite HDFS. Prima che i dati possano essere forniti alla funzione implementa-
ta utilizzando Map(), come visto precedentemente, e necessario adattarli in modo
che rispettino i parametri accettati da tale funzione. Ogni parametro fornito al-
la funzione Map() deve essere, infatti, costituito da una coppia chiave-valore. A
tale scopo vengono proposte una serie di funzioni utili per convertire i dati da
un qualsiasi formato generico (con il quale vengono estratti dalle fonti esterne)
ad un formato in cui possono essere processati. Ogni istanza di Map(), quindi,
elaborera i dati cos convertiti e fornira un output.
In alcune applicazioni i dati in uscita devono essere raccolti prima di essere
passati alla funzione Reduce(). Anche questa funzione si trova distribuita in ogni
nodo; per questo motivo Hadoop prevede unapplicazione chiamata collettore
che permette di raccogliere i risultati di tutti i nodi, nel caso in cui questi
ultimi dovessero essere tutti richiesti dalla funzione Reduce(). I risultati delle
elaborazioni delle varie istanze di Map() sono raccolti da unapplicazione reporter
la quale tiene traccia di ogni esecuzione sui vari nodi e permette alla funzione
Reduce() di sapere quando tutti i risultati sono pronti per lelaborazione finale.
Ciascuno di questi meccanismi e presente su ogni singolo nodo: quando i risultati
vengono resi disponibili essi convergono nel nodo che dovra eseguire la funzione
Reduce(); i trasferimenti vengono effettuati in maniera efficiente tramite HDFS.
Una volta che i risultati intermedi sono pronti la funzione Reduce() li elabora
e fornisce il risultato finale. Anche questi risultati saranno composti da una
coppia chiave-valore; per questo motivo saranno necessarie ulteriori funzioni che
tradurranno, ancora una volta, questi elementi nel formato desiderato. Infine, i
dati cos ottenuti verranno memorizzati per ulteriori future elaborazioni tramite
HDFS.
Come e emerso finora, Hadoop fornisce una serie di strumenti per rendere estrema-
mente semplice il lavoro con i Big Data. Al contrario dei normali database relazio-
nali, i quali prima di poter ricevere i dati devono essere preventivamente adattati
2.4 Strumenti di Analisi 35

alla loro struttura, Hadoop permette di memorizzare le informazioni ed estrarle in


qualsiasi momento e senza unopportuna preparazione. In aggiunta, esso porta una
serie di vantaggi gia esaminati, quali laffidabilita, la gestione degli errori, la velocita
di estrazione dei dati, e le varie funzioni che permettono di lavorare con qualsiasi
tipologia di dato.
Nel corso degli anni alla tecnologia vista finora si sono aggiunti ulteriori strumen-
ti per incrementare la versatilita di Hadoop. Tali strumenti formano un ecosistema
di applicazioni che ruotano intorno al framework principale e che permettono di
adattarsi a ogni situazione con cui si puo avere a che fare nel contesto Big Data.
Questo bagaglio di tecnologie appare indispensabile quando si vogliono estrarre in-
formazioni da un mondo di dati cos vasto: cercare di comprendere i Big Data senza
tali strumenti e come cercare di svuotare loceano usando un cucchiaio[11, pag.121].

2.4.3 Ecosistema Hadoop

Intorno alle basi di Hadoop, costituite da MapReduce e HDFS, ruotano una serie
di strumenti indispensabili alla scrittura di applicazioni utili per obiettivi pratici,
quali lanalisi predittiva (come illustrato in Figura 2.7).

Figura 2.7. Lecosistema di Hadoop

In assenza di tali tecnologie il compito degli esperti del settore sarebbe molto
piu complesso in quanto si dovrebbero implementare da zero le tecnologie che per-
mettono di realizzare un modello efficace. La loro esistenza quindi rappresenta un
opportunita per tutti coloro che vogliono includere luniverso dei Big Data alla loro
analisi.
Yarn: Yarn (acronimo di: Yet Another Resource Negotiator) e una piattaforma
che contiene uno scheduler il cui compito e quello di allocare le risorse di siste-
ma alle varie applicazioni implementate dallutente. Lo scheduling dei processi,
nonostante sia gestito da MapReduce, non garantisce la flessibilita e lefficienza
che vengono fornite dal servizio Yarn. Questultimo si prende carico della ge-
stione delle risorse (quali la memoria, la CPU e la rete) e controlla lesecuzione
delle applicazioni. Se queste ultime dovessero richiedere un numero maggiore di
36 2 Big Data

risorse a supporto dellesecuzione, Yarn le fornira loro aumentando lefficienza


complessiva del sistema. Di conseguenza, tale framework e un ulteriore strumen-
to che consente di creare applicazioni o infrastrutture di calcolo distribuito di
qualsiasi tipo.
Hbase: si tratta di una base di dati distribuita, non relazionale che utilizza HDFS
per le proprie operazioni. Come i tradizionali RDBMS esso e composto da righe
e colonne, ma non esiste alcuna relazione tra i dati contenuti allinterno del
database. Ogni colonna rappresenta una famiglia di informazioni mentre ogni
riga e identificata da una chiave che puo essere una stringa, un valore numerico
o, perfino, un dato strutturato: cio rende laccesso ai vari dati molto flessibile.
Lo schema della base di dati Hbase non e predefinito; quindi, in ogni momento, e
possibile aggiungere righe e colonne: questa caratteristica si sposa perfettamente
con i Big Data i quali si evolvono molto in fretta nella loro varieta. Inoltre, i dati
contenuti in Hbase vengono replicati, secondo le specifiche di HDFS ; in questo
modo laccesso ai vari dati risulta essere piu rapido.
Hive: e uninfrastruttura che implementa un linguaggio simile a SQL, chiama-
to HiveQL, il quale permette di realizzare interrogazioni sui dati contenuti in
HDFS. Diventa, cos, possibile analizzare i dati senza dover ricorrere ad appli-
cazioni implementate esplicitamente tramite Map() e Reduce(); cio viene fatto
in maniera automatica e trasparente per lutente. Hive non e progettato per
ottimizzare i tempi di risposta: i risultati di una query possono essere restitui-
ti anche dopo moltissimo tempo a causa della complessita dei dati. Per questo
motivo Hive e utilizzato per le operazioni di data mining che non richiedono
risultati in tempo reale. Le primitive di HiveQL includono alcuni costrutti tipici
di SQL quali select, join, union e molti altri.

Mahout : questo strumento (Figura 2.8) ha un utilizzo specifico per lanalisi pre-
dittiva. Esso contiene librerie di algoritmi di data mining per implementare
metodi quali clustering, classificazione, e molti altri, direttamente su grandi
quantita di dati. Cio avviene grazie alla possibilita di implementare Mahout su
reti distribuite che vengono gia gestite da Hadoop. In tal modo non e necessario
possedere le conoscenze informatiche per la costruzione del modello utile allana-
lisi predittiva: le conoscenze del settore saranno sufficienti per la scelta delle fonti
e dellalgoritmo piu adatto ad analizzare i dati provenienti da esse e per poter
ottenere un modello di previsione. Gli algoritmi messi a disposizione da Mahout
sfruttano le capacita del paradigma MapReduce; anche in questo caso larchi-
tettura usata e quella a livelli in cui applicazioni di livello superiore (in questo
caso, gli algoritmi forniti da Mahout ) utilizzano per i loro scopi infrastrutture
gia messe a disposizione, quali il framework MapReduce offerto da Hadoop.
Mahout e un progetto relativamente giovane e, quindi, aperto allo sviluppo di
nuove funzionalita e nuovi algoritmi per includere limplementazione di tutte le
tecniche e i modelli che lanalisi predittiva richiede.
Gli strumenti finora esaminati rappresentano solo una piccola parte di tutti quel-
li disponibili agli utenti che utilizzano Hadoop per la gestione dei Big Data. Tali
strumenti richiedono un certo grado di conoscenza da parte degli utilizzatori. Con
la diffusione dei casi duso dei Big Data, e con laumentare, negli ultimi anni, delle
richieste di metodi sempre piu accessibili per sfruttare tali risorse, e sorta la neces-
2.4 Strumenti di Analisi 37

Figura 2.8. Il logo di Apache Mahout

sita di sviluppare nuove tecnologie sempre piu aperte. Per tale ragione una parte
dellecosistema di Hadoop e dedicata sempre piu ad applicazioni che non richiedono
conoscenze informatiche o specifiche del particolare settore. Tra questi strumen-
ti, citiamo Pig, Sqoop e Zookeeper : essi rappresentano levoluzione del concetto di
gestione dei Big Data, sempre piu accessibili e meno costosi da analizzare. Tutti
questi strumenti, inoltre, sono open-source e quindi sono utilizzabili da chiunque
voglia usufruire delle potenzialita dei grossi flussi informativi per i propri scopi.
3
I Modelli di Previsione

In questo capitolo vengono illustrati, dal punto di vista teorico, i piu comuni modelli
i quali rappresentano il cuore dellanalisi predittiva. Questi ultimi sono ereditati
da discipline quali data mining e machine learning. Dopo una breve panoramica
sul concetto di modello, vengono illustrati, con maggior dettaglio, i procedimenti
matematici e statistici con i quali essi riescono a rappresentare la realta (e, in
seguito, a prevederla) apprendendo dallesperienza.

3.1 I Modelli come Strumento di Previsione


I modelli rappresentano il cuore dellanalisi predittiva. Per questo motivo e neces-
sario analizzare tali strumenti, al fine di apprendere a pieno come realizzare un
processo di previsione, e quale tra questi meglio si adatta alle varie situazioni.
Dal punto di vista piu generale possibile, un modello e la rappresentazione di
uno stato, un processo, o un sistema che si intende comprendere o del quale si vuo-
le conoscere il comportamento. Nel caso dellanalisi predittiva i modelli si rivelano
interessanti in quanto consentono di trarre delle conclusioni sugli eventi osserva-
ti, a partire dai comportamenti studiati, e di fare delle previsioni sulle prossime
evoluzioni degli eventi stessi.
Esiste una moltitudine di modelli diversi, e in diversi formati. Tale varieta garan-
tisce la possibilita di descrivere qualsiasi fenomeno e, allo stesso tempo, di adattarsi
a qualsiasi tipologia di variabili che si intende mettere in relazione. Un modello puo
essere costituito da unequazione matematica, la quale mette in relazione due o piu
variabili che possono essere osservate e misurate; esso puo, inoltre, essere compo-
sto da un insieme di regole. Lesempio di un tipico modello e rappresentato dalla
seconda legge di Newton. Essa mostra come laccelerazione di un corpo sia diretta-
mente proporzionale alle forze agenti su di esso e inversamente proporzionale alla
sua massa. Tale legge viene cos rappresentata:
X
F = m
a (3.1)
In questo caso il modello e rappresentato da unequazione. Questultima mette


in relazione la somma delle forze F che agiscono su un oggetto di massa m con
40 3 I Modelli di Previsione

laccelerazione a che tale oggetto subisce in risposta. Questo semplice modello ci


permette di compiere delle previsioni riguardo la realta circostante. In questo caso,
applicando una forza a un oggetto (di cui conosciamo gia la massa) e possibile
prevedere laccelerazione che esso subira. Dopo diverse osservazioni dei risultati
prodotti da tale modello, ottenuti a partire da una serie di campioni di forze in
ingresso, sara possibile prevedere con certezza le conseguenze di una qualsiasi forza
che verra applicata alloggetto di interesse.
Lesempio appena illustrato mette, inoltre, in evidenza quanto sia importante
effettuare una preventiva preparazione dei dati prima di che essi vengano utilizzati.
Loggetto osservato, oltre la massa indicata con m, possiede diverse altre caratteri-
stiche (o attributi) che possono essere piu o meno interessanti ai fini del risultato che
si vuole ottenere. Specifiche come: il colore, la temperatura, la posizione nello spa-
zio, e molte altre che caratterizzano tale oggetto, risultano essere irrilevanti per tale
del modello ai fini di calcolare la massa delloggetto stesso. Per questo motivo molti
dettagli dovranno essere rimossi prima dellelaborazione dei dati, concentrando cos
la propria attenzione solo sulle proprieta realmente indispensabili.
La seconda legge di Newton e stata descritta con un modello molto semplice, nel
quale entravano in gioco solo tre attributi delloggetto (che puo essere considerato
come listanza di un particolare tipo di dato). Ogni istanza possiede i propri attributi
che la caratterizzano: la forza e la massa rappresentano le variabili indipendenti, o
di ingresso, ossia valori noti che vengono osservati direttamente dalle fonti da cui
provengono i dati; laccelerazione rappresenta, al contrario, la variabile dipendente,
o di uscita, ossia un valore incognito che puo essere derivato attraverso il modello
partendo dalle variabili di ingresso. Questultimo consiste in una funzione che mette
in relazione tali caratteristiche. In particolare, nellesempio illustrato, la funzione
matematica e una relazione lineare tra le variabili in ingresso e quelle in uscita.
Questo tipo di modello e estremamente semplice in quanto utilizza poche variabili
e gode della proprieta di linearita. In generale i modelli piu complessi sono quelli
che richiedono il maggior numero di variabili e che rappresentano una relazione non
lineare tra le variabili dipendenti ed indipendenti.
Uno stesso fenomeno puo, a volte, essere rappresentato da piu modelli matema-
tici. La scelta del metodo piu conveniente, al fine di ottenere i risultati che meglio
rispecchiano la realta, non e semplice e spesso richiede diversi tentativi e luso del-
lesperienza. Nella maggioranza dei casi, i modelli che richiedono piu attributi sono
anche quelli che descrivono con maggiore accuratezza gli eventi. Non sempre, tutta-
via, un modello piu complesso, come ad esempio un modello non lineare con molte
variabili in ingresso, conviene piu di un modello lineare. Alcune fonti di dati (ossia,
ad esempio, gli strumenti per la misura della forza e della massa) possono rilevare,
oltre al valore richiesto, una certa quantita di rumore tale da rendere imprecisa la
misurazione. In questi casi fornire molte variabili al modello non fara che incremen-
tare il grado di imprecisione. Talvolta, invece, potrebbe essere impossibile ottenere le
variabili necessarie allimplementazione di un modello molto dispendioso. Conviene,
nella maggior parte dei casi, valutare la risposta di diversi modelli che descrivono lo
stesso fenomeno: in tal modo sara possibile avere un quadro piu ampio dei possibili
sviluppi dei fenomeni presi in esame.
Costruire un modello di previsione, in modo corretto, significa derivare le regole
che descrivono il comportamento delle variabili delle quali si vuole intuire i valori
3.1 I Modelli come Strumento di Previsione 41

che assumeranno in futuro. Tali regole, contrariamente a quanto mostrato tramite


lesempio della seconda legge di Newton, non possono essere ricavate attraverso
considerazioni di ordine logico, da dimostrazioni matematiche o da regole specifiche
di settore, ma devono essere ricavate osservando direttamente il comportamento
dei dati. Prevedere il comportamento di questi ultimi significa, infatti, osservare
cio che si e verificato durante le precedenti istanze di tali dati e, necessariamente,
ricavare schemi e associazioni che permettono di costruire un modello valido anche
per le future occorrenze. Se, ad esempio, fosse necessario costruire un modello per la
previsione delle precipitazioni annuali in varie zone geografiche, sarebbe necessario
raccogliere dati sulle precedenti precipitazioni. Per ciascuno di essi bisognerebbe
evidenziare tutti quegli attributi che possono essere di potenziale interesse quali
la latitudine, la longitudine e la quantita di pioggia. Tramite tali informazioni,
osservandone le variazioni attraverso una serie di dati campione, e possibile ricavare
un modello che potra essere utilizzato con dati raccolti in futuro. Sara, quindi,
possibile, ad esempio, prevedere il comportamento delle precipitazioni in posti nei
quali non e stata fatta alcuna misurazione.
Esistono varie categorie di modelli costruiti in questo modo. Questi ultimi pos-
sono essere suddivisi in base al compito che svolgono; alcuni permettono di ottenere
una variabile dipendente che rappresenta un determinato gruppo di dati, altri re-
stituiscono valori ben precisi. In senso ancor piu generale e possibile individuare
due grandi gruppi di modelli: i modelli deterministici e quelli non deterministici o
stocastici. I primi si basano su dati derivanti da osservazioni effettuate tramite misu-
razioni. A questa categoria appartiene il modello gia illustrato del secondo principio
di Newton, implementato attraverso valori misurati in maniera ben precisa. La se-
conda categoria e costituita da tutti quei modelli che, nel descrivere i vari fenomeni,
contengono particolari che non possono essere determinati con precisione, ma sono
spesso processi casuali. Spesso la forma di incertezza deriva dallimpossibilita di
misurare con precisione quelle variabili che hanno un maggiore impatto sullimple-
mentazione del processo. Un tipico esempio di processo stocastico e il modello che
tenta di prevedere, con probabilita ben definita, il risultato del lancio di un dado.
Tale modello puo essere cos definito:
1
P (Y = y) = , y {1, 2, 3, 4, 5, 6} (3.2)
6
tali simboli indicano che la variabile di uscita Y puo assumere uno tra sei pos-
sibili valori; ciascuno di essi ha una probabilita su sei di essere quello corretto. In
questo modo e possibile conoscere tutti i possibili risultati e con quale percentuale
ci si puo aspettare di ottenere ognuno di essi.
Esistono diverse altre caratteristiche per suddividere ulteriormente i vari model-
li in piu categorie. Individuare differenti gruppi a cui appartengono questi ultimi e
indispensabile al fine di associare ciascuno di essi ad una ben precisa categoria di
situazioni da rappresentare. Si identificano modelli che vengono realizzati attraverso
algoritmi di apprendimento supervisionato, le cui variabili di uscita sono valori ben
definiti e conosciuti a priori. Su collezioni di dati non ben definiti, in cui per ciascu-
no di essi conosciamo solo alcuni attributi (ma che non ci permettono di ricondurli
ad una determinata categoria) si utilizzano algoritmi di apprendimento non super-
visionato. I modelli realizzati attraverso tali algoritmi permettono di individuare
42 3 I Modelli di Previsione

alcuni gruppi di osservazione delle variabili in ingresso. Attraverso tecniche di data


mining, vengono individuate diverse similitudini e caratteristiche in comune tra gli
attributi dei dati; tali similitudini vengono impiegate per associare, in uscita, ogni
istanza ad un gruppo ben preciso. Questo processo e caratteristico dei modelli di
clustering. Il vantaggio di questi ultimi e quello di poter gestire collezioni di dati non
etichettati, scoprendo gruppi di appartenenza nascosti tra di essi; in questo modo
sara possibile prevedere a quali, tra tali gruppi, apparterranno i dati in arrivo nel
futuro.
In un modello supervisionato i risultati possono differire da quelli che ci si aspetta
di ottenere. Tale discrepanza e, spesso, dovuta ad un errore nella scelta del modello
che viene usato con il dataset a disposizione. Su una stessa collezione di dati, infatti,
e possibile agire tramite un numero praticamente illimitato di algoritmi differenti;
ognuno di essi puo, talvolta, comportare un errore che allontana i risultati ottenuti
da quelli reali. Questo concetto e facilmente comprensibile quando si usano parti-
colari modelli lineari detti modelli parametrici. Questi ultimi sono rappresentati da
una funzione lineare, a parametri X1 , X2 , ..., Xn :

Y = f (X1 , X2 , ..., Xn ) (3.3)


Modificando tali parametri e possibile individuare la funzione che meglio si adat-
ta a rappresentare la realta. In questo caso lerrore si definisce riducibile in quanto
e possibile eliminarlo scegliendo opportunamente un modello (al contrario di un er-
rore irriducibile che puo sorgere, ad esempio, quando non si possiede un numero
sufficiente di parametri). Per contro, un modello non parametrico non fa alcun rife-
rimento ad una possibile forma delle variabili di restituzione; in situazioni del genere
individuare un errore risulta essere piu complesso.
Il campo di interesse della maggior parte dei modelli di uso comune si restringe a
due categorie, ovvero i modelli di regressione e quelli di classificazione. La distinzione
tra queste due tipologie si basa sui dati di output. I primi mirano a predire una
quantita numerica (come, ad esempio, il livello di precipitazioni o il costo di un
progetto); i secondi tentano di ottenere un valore preso da un insieme di possibili
risultati (ad esempio il genere di una persona o la possibile patologia da cui e affetta,
ottenuti i sintomi in ingresso). La scelta tra queste due categorie e, ovviamente,
dettata dalle necessita richieste dallimplementazione dei modelli.
Nelle prossime sezioni verranno approfondite queste due specifiche categorie, con
uno sguardo particolare rivolto ai modelli che esse includono.

3.2 Data Clustering


Nellillustrazione di alcuni degli innumerevoli modelli a disposizione per lo sviluppo
dellanalisi predittiva su ogni possibile dataset e bene iniziare da quelli implemen-
tati tramite algoritmi di data clustering. Essi rappresentano un primo passo nella
creazione di un modello di previsione efficace. Nella maggior parte delle applicazioni
reali i dati utili sono di tipo non etichettato; cio significa che non e disponibile, tra i
loro attributi, una variabile di output. Questultima permette di ricondurre il valore
della previsione ad un ben preciso valore tra quelli esistenti e, quindi, prevedere le
future manifestazioni di questi ultimi. In tali casi non e semplice modellare una
3.2 Data Clustering 43

realta a venire, in quanto i dati che la descrivono sono delle semplici raccolte di
attributi che non possono essere associati a uno dei possibili esiti che si intende
individuare (alcuni particolari attributi possono, infatti, essere caratteristici di piu
gruppi di dati contemporaneamente, non possono, percio, essere usati per determi-
nare univocamente una data istanza). Per affrontare il problema appena esposto
esiste una categoria di modelli implementati tramite gli algoritmi di clustering.
Una delle caratteristiche di tali processi e che essi riescono a scoprire gruppi e
categorie nascoste tra i dati in analisi, quindi a ricondurre ogni istanza di essi a
una ben determinata tipologia. In questo modo, e possibile dare un significato ad
un flusso di informazioni che, altrimenti, non avrebbe alcuna utilita pratica. Come
mostrato nella Figura ??, per ricondurre ogni oggetto ad una determinata categoria,
lalgoritmo studia gli attributi degli stessi.

Figura 3.1. Algoritmo di clustering che individua gruppi di appartenenza esaminando gli
attributi dei dati

Il concetto alla base degli algoritmi di clustering viene comunemente utilizzato,


ed essi fanno spesso parte delle attivita quotidiane. Allo stesso modo in cui ogni
giorno si suddividono gli oggetti di uso comune in base alle loro caratteristiche,
infatti, gli algoritmi di clustering separano, in modo intelligente, milioni di dati in
diversi gruppi formati da istanze con caratteristiche simili tra loro. Gli algoritmi che
svolgono tale compito sono applicati in molteplici ambiti quali: biologia, marketing,
reperimento di informazioni di vario genere ed analisi dei social network [7, pag.90].
Ogni dataset e composto da una collezione di oggetti (ossia, istanze di determi-
nati dati) i quali derivano, spesso, da misure ed osservazioni e che vengono rappre-
sentati in formato tabulare. Tali tabelle possono contenere dati di diverso genere e,
in ognuna di esse, vengono riportate, in riga, le varie istanze e, in colonna, gli attri-
buti di ciascuna di esse. Applicando un algoritmo di clustering, tali oggetti vengono
suddivisi in gruppi chiamati cluster, cioe collezioni di istanze aventi caratteristiche
in comune. Ciascun gruppo possiede un particolare valore che rappresenta, meglio
di qualsiasi altro oggetto allinterno di esso, la categoria stessa. Tale istanza e detta
cluster representative. Tutti gli algoritmi di clustering, riassumendo, hanno la capa-
cita di esaminare intere raccolte di dati (anche di grandi dimensioni), individuare
44 3 I Modelli di Previsione

gruppi caratteristici allinterno di essi e, infine, associare ciascun gruppo gruppi a


un particolare valore, il quale avra tutte le caratteristiche della categoria di appar-
tenenza. La similitudine tra due o piu oggetti e tanto piu forte quanto piu elevato
sara un indice di verosimiglianza. Ogni istanza viene confrontata con il cluster repre-
sentative e, tramite una funzione matematica, viene restituito un valore numerico
indice del grado di verosimiglianza tra loggetto e la categoria alla quale appartiene.
La scoperta dei gruppi di appartenenza e essenziale per formulare idee ed ipo-
tesi sulla struttura dei dati e per meglio comprenderli. Essa puo essere utile per
suddividere le informazioni al fine di esaminarle al meglio. Allo stesso tempo puo
essere direttamente usata come strumento di previsione in quei determinati ambiti
in cui e utile individuare una categoria di appartenenza delle variabili di output.
Per citare un possibile utilizzo, nellambito del marketing ad esempio, potrebbe es-
sere necessario individuare gruppi di clienti i quali condividono gli stessi interessi
o necessita, quindi, prevedere quale sara il loro comportamento e adattare meglio
la propria strategia di vendita. Utilizzare algoritmi di clustering rappresenta un
vantaggio fondamentale per identificare i nuovi dati in arrivo, prelevati dalle varie
sorgenti, e mostrare come essi sono collegati ai dati gia in possesso. Con tale stra-
tegia e possibile prevedere il comportamento di questi ultimi non appena vengono
prelevati. E possibile individuare un tipico esempio di questultimo vantaggio nel-
le applicazioni in cui e necessario categorizzare una e-mail, appena ricevuta, come
messaggio desiderato o come messaggio di spam. Un simile strumento di predizione
ha la necessita, tramite un algoritmo di clustering, di definire due cluster ben preci-
si: uno contenente e-mail di spam e laltro contenente e-mail da leggere. Attraverso
il confronto con le caratteristiche di queste due categorie, lalgoritmo sara capace
di prevedere, con buona approssimazione, a quale dei due insiemi associare ogni
nuova e-mail in arrivo, esaminando gli attributi messi in evidenza che questultima
possiede.
E bene ricordare come non sia possibile applicare un algoritmo di clustering
a un dataset che non sia strutturato in tabelle. Nel caso di dati non strutturati,
infatti, non sarebbe possibile individuare quelle caratteristiche che permettono di
suddividere ogni istanza in un particolare gruppo. Prima di effettuare tale tipo di
analisi, quindi, e necessario evidenziare gli attributi piu interessanti per tutti i tipi
di dati con cui si ha a che fare. Per un documento, ad esempio, mettere in risalto
alcune particolari caratteristiche puo voler dire mostrare il numero di volte in cui
un determinato termine appare allinterno del testo, come mostrato in Figura 3.2.
Allo stesso modo, e possibile scegliere qualsiasi attributo che caratterizza un utente
di un social network. E possibile scegliere le proprieta dei dati a disposizione e,
successivamente, suddividere (in diversi e appropriati cluster) le istanze di tali dati
in funzione delle proprieta prescelte.

3.2.1 K-Means

Il piu semplice algoritmo di clustering e lalgoritmo K-means. Esso rappresenta il


metodo piu semplice tra quelli usati nellapprendimento automatico (machine lear-
ning). Si tratta di un algoritmo che permette di suddividere un insieme di oggetti in
K gruppi sulla base dei loro attributi. Esso prende il nome dalle proprie caratteristi-
che di input e output; K rappresenta linput dellalgoritmo ed e, inoltre, il numero
3.2 Data Clustering 45

Figura 3.2. Collezione di documenti in formato tabulare; gli attributi, in questo caso,
rappresentano le parole piu frequenti allinterno del testo. Le lettere da A a F indicano le
istanze dei documenti

di cluster che verranno determinati allinterno del dataset. La parola means indica
loutput dellalgoritmo; si riferisce al significato di ognuno dei K cluster individuati
dallalgoritmo.
Lalgoritmo opera nel seguente modo: esso seleziona K oggetti in maniera ca-
suale e li etichetta come cluster representative. In seguito, tutti gli altri elementi
del dataset vengono esaminati e associati a ciascun cluster representative usando un
valore di similitudine. Tale valore e dato da una funzione la quale calcola la distanza
euclidea tra due oggetti con caratteristiche ben definite (come se tali caratteristiche
fossero gli elementi di un vettore); ogni istanza viene associata al cluster represen-
tative verso il quale possiede la distanza minore. A questo punto vengono scelti dei
nuovi cluster representative, esaminando le caratteristiche degli oggetti appena ag-
giunti e verificando quali tra questi ultimi meglio rappresenta la propria categoria di
appartenenza. Tale procedura viene ripetuta fino a quando i cluster representative
non cambiano con laggiunta di nuovi dati, quindi, rappresentato la scelta migliore
allinterno del cluster.
Per mostrare un esempio [7, pag.97] del funzionamento dellalgoritmo K-means,
in Figura 3.3 appare un dataset contenente alcuni dati osservati. Essi sono relativi ad
un insieme di clienti di una compagnia; tra questi e presente lindice di gradimento
che ciascuno di essi ha mostrato nei confronti di due particolari prodotti.

Figura 3.3. Un dataset relativo a dei clienti


46 3 I Modelli di Previsione

Inizialmente, per ogni cluster che si intende definire, viene scelto un elemento in
maniera casuale, tra quelli disponibili nel dataset; esso sara costituito da una tupla,
ossia un insieme di attributi relativi ad una stessa istanza. In tal modo lalgoritmo
costruisce due cluster e assegna, a ciascuno di essi, il cluster representative appena
determinato.
Per ogni elemento allinterno del dataset viene calcolata, spesso attraverso una
funzione matematica, la distanza euclidea tra tale elemento e il cluster representative
designato per ogni gruppo (in fase iniziale) in maniera casuale. Per distanza euclidea
si intende la distanza geometrica tra due vettori, definita come segue:
qX
d(x1 , x2 ) = (x1 , x2 )2 (3.4)
In questa formula x1 , x2 rappresentano i valori degli attributi di un oggetto. Se,
ad esempio, in fase iniziale, gli elementi scelti casualmente sono i clienti con ID
numero 3 e 4 (i quali rappresentano, rispettivamente, il primo ed il secondo cluster)
e, successivamente, viene preso in esame loggetto con ID cliente pari a 2, la distanza
tra tale elemento e il primo cluster sara:
p
d(x1 , x2 ) = (3 2)2 + (4 2)2 = 2, 23 (3.5)
mentre la distanza tra lelemento con ID cliente pari a 2 e il secondo cluster sara:
p
d(x1 , x2 ) = (3 10)2 +)(4 14)2 = 12, 20 (3.6)
Questo elemento verra, quindi, collocato nel secondo cluster, essendo la distanza
tra esso ed il cluster representative con ID pari a 4 la minore tra le due. E bene
precisare che il calcolo della distanza euclidea non e lunico strumento utile alla
scoperta della somiglianza tra due elementi; ne esistono molti altri, impiegati a
seconda delle evenienze (nel caso di stringhe, ad esempio, e possibile utilizzare la
distanza di Hamming).
A questo punto, una volta ripetuto il suddetto confronto per ogni elemento del
dataset, e quindi aver distribuito ogni istanza al cluster che meglio la rappresenta,
e necessario ricalcolare i K cluster representative secondo le specifiche fornite. Al
contrario della fase iniziale, in tal caso, questultimi verranno scelti separatamente
allinterno di ogni cluster anziche allinterno dellintero dataset. Il risultato sara
quello illustrato nella Figura 3.4.

Figura 3.4. Risultato dellalgoritmo K-means

In tale risultato le varie istanze sono state distribuite ai rispettivi cluster ed i


nuovi representative sono stati scelti.
Lalgoritmo K-means e un algoritmo di tipo iterativo; cio significa che il processo
va ripetuto ogni volta che un nuovo elemento viene aggiunto al dataset. Per tale ra-
gione, nellesempio appena illustrato, con laggiunta di una nuova istanza al dataset,
3.2 Data Clustering 47

ed una volta associata questultima al gruppo piu consono, e necessario aggiornare


la scelta del representative. In questo modo la suddivisione dei vari oggetti risulta
sempre piu precisa.
Gli algoritmi basati sul partizionamento sono stati a lungo gli algoritmi piu
diffusi prima dellavvento del data mining. Essi consentono il vantaggio della scelta
arbitraria dei K cluster. Tuttavia tale tipo di algoritmi risulta inadatto alla gestione
di dataset di grandi dimensioni. Pur contenendo il numero di iterazioni (indicato
con t), lalgoritmo K-means presenta una complessita temporale pari a O(nKt)
(dove n e il numero di elementi e K il numero indicato di cluster desiderati). Per
tale motivo non e consigliabile utilizzare un simile approccio in presenza di grossi
database, in cui lelevato valore di n renderebbe troppo costoso (dal punto di vista
computazionale) lesecuzione del metodo.

3.2.2 K-nearest neighbors

Lalgoritmo K-Nearest Neighbors (K-NN) confronta ognuno gli n elementi di un


dataset con tutti gli altri. Viene creata una matrice delle distanze n n nella quale,
per ogni coppia di elementi, viene riportata la corrispettiva distanza. Questo valore
e usato come soglia per decidere se un elemento sia piu o meno somigliante ad un
altro. In tal modo, una volta esaminati tutti gli elementi, e possibile associare quelli
simili tra di loro a uno tra i K gruppi, cioe cluster, disponibili.
Si tratta di un algoritmo molto simile allalgoritmo K-means. Anchesso prevede
il calcolo della distanza tramite strumenti come la definizione di distanza euclidea.
La fase iniziale della procedura prevede la definizione dei K gruppi usando le ca-
ratteristiche dei dati a disposizione. Tale fase viene spesso realizzata mediante un
training dataset; in seguito, con laggiunta di nuovi elementi, viene creata la matri-
ce delle distanze, la quale deve essere aggiornata ogni volta che un nuovo elemento
entra a far parte del dataset.

3.2.3 DBSCAN clustering

Un cluster puo essere visto come unarea, in uno spazio n-dimensionale, caratte-
rizzata da una maggiore densita di oggetti [13, pag.234]. Tali oggetti (ossia i dati)
saranno visti, secondo questottica, come dei vettori a n dimensioni. Secondo tale
descrizione, la densita puo essere definita come il numero di elementi in rapporto ad
una porzione unitaria dello spazio a n dimensioni. La quantita n viene definita dal
numero di attributi che caratterizzano ogni elemento. Nella Figura 3.5, ad esem-
pio, viene rappresentata la distribuzione degli elementi di un dataset in funzione di
due attributi. Alcune zone (High Density Region) sono maggiormente popolate
dai vari oggetti. Altre zone (Low Density Region) contengono un minor numero di
elementi. Ogniqualvolta una zona ad alta densita si trova vicina ad altre zone a
densita minore, tale zona puo essere identificata come un cluster.
E anche possibile evidenziare le aree definite come cluster come un sottoinsieme
dellarea alla quale appartengono i diversi punti che rappresentano le varie osser-
vazioni. Partendo da un elemento A, il quale possiede attributi che si avvicinano
molto a quelle caratteristiche del cluster che si vuole mettere in evidenza, e possibile
tracciare un intorno di raggio , come mostrato in Figura 3.6. Qualsiasi elemento
48 3 I Modelli di Previsione

Figura 3.5. Densita del dataset

(la cui posizione, anche in questo caso, e funzione di due attributi) ricada allinter-
no dellintorno del punto A fa parte del cluster. Questo tipo di misura e chiamata
center-based density.

Figura 3.6. Sottoinsieme di elementi che identificano un cluster

Alcuni algoritmi si basano sul calcolo della densita per individuare i cluster
dentro i quali ricadono i vari elementi. Al contrario dei metodi basati sulla ricerca
del cluster representative, tali algoritmi non necessitano della conoscenza, a priori,
del parametro K usato come numero massimo di cluster da definire. Essi esplorano
i dati e ricercano, in maniera automatica, il numero massimo di cluster di elementi
dello stesso genere allinterno del dataset.
Uno dei piu comuni algoritmi di tale genere e DBSCAN (Density-Based Spatial
Clustering of Applications with Noise). Questultimo crea dei cluster identificando le
3.2 Data Clustering 49

zone con alta e con bassa densita allinterno dello spazio a n dimensioni che contiene
tutti i punti. Non e possibile fornire a priori il numero di gruppi da identificare;
lalgoritmo trovera in modo automatico tutte le zone in cui vi e unalta presenza di
elementi con caratteristiche simili.
DBSCAN accetta in ingresso due parametri: il primo e il raggio che ogni
intorno (il quale identifica un cluster) deve avere. Il secondo e un valore che indica
il numero minimo di elementi che ogni cluster deve possedere per essere identificato
come tale. Lalgoritmo esamina un punto scelto in maniera casuale ed osserva tutti
gli elementi contenuti nel proprio intorno. Per fare cio deve individuare quali punti
ricadono, o meno, nella circonferenza delimitata dal raggio di ampiezza calcolando
la distanza tra tali punti ed il centro della circonferenza. Analogamente al caso degli
algoritmi di partizionamento, tale compito viene svolto sfruttando le funzioni per il
calcolo delle distanze come, ad esempio, la distanza euclidea. Dopo aver esaminato
le vicinanze del punto scelto, se in tale intorno ricade un numero sufficiente di punti
da superare la soglia data dal relativo valore fornito in input, viene creato un nuovo
cluster.
Se cio non dovesse avvenire, cioe nel caso in cui nellintorno di raggio del
punto scelto non dovesse ricadere un numero sufficiente di elementi, il punto viene
etichettato come rumore. Un rumore e definito come un punto, o un insieme
di punti, sparsi nellarea con pochi altri oggetti intorno ad essi. Cio significa che
esistono pochi altri elementi che possiedono attributi di valore paragonabile ai punti
di rumore; essi hanno, quindi, poco in comune con la maggior parte degli elementi del
dataset e non entrano a far parte di nessuna categoria particolare. E bene osservare,
tuttavia, che un punto etichettato come rumore potrebbe essere successivamente
incluso nellintorno di un altro punto, e quindi entrare a fare parte di un cluster.
Dopo aver esaminato il primo punto, viene scelto un secondo elemento del dataset.
Si procede come visto finora fino a quando tutti i punti vengono etichettati come
facenti parte di un cluster o come rumore.
Lalgoritmo si avvale del concetto di density-reachability per la definizione dei
vari cluster. Secondo tale definizione, un punto q si dice direttamente raggiungibile
da un punto p (directly density-reachable) se tra i due non vi e una distanza di valore
superiore a . Se esiste una sequenza di punti p1 , p2 , ..., pn , direttamente raggiungibili
tra di loro, dei quali p1 = p e pn = q, allora si dice che q e density-reachable da p
(Figura 3.7).

Figura 3.7. Definizione di density-reachability

Se, inoltre, esiste un punto o tale che p e q sono entrambi density-reachable da


o, allora p e q si dicono density-connected . Tutti gli elementi inclusi allinterno
50 3 I Modelli di Previsione

degli intorni di raggio dei punti p1 , p2 , ..., pn , se sono density-connected tra di


loro, appartengono allo stesso cluster. Molti punti intorno a tale cluster resteranno
non associati ad esso, e quindi ogni cluster sara circondato da un certo numero di
elementi definiti come rumore.
Il motivo per cui si utilizza un algoritmo di clustering basato sulla densita consi-
ste, spesso, nel fatto che lutilizzatore non ha la necessita o la possibilita di indicare
a priori il numero K di gruppi da individuare. La complessita temporale dellalgo-
ritmo e pari a O(n2 ) in quanto, per ogni elemento, e necessario esaminare tutti gli
altri allo scopo di trovare quelli a distanza da esso. Tale operazione, nel caso in cui
fosse possibile eseguire una ricerca indicizzata dei vari oggetti del dataset, puo essere
svolta in un tempo logaritmico; in tal caso il tempo complessivo delloperazione di
ricerca, svolta su tutti gli n elementi, diventa pari a O(n lg n). Nonostante que-
stultimo costo temporale appaia essere molto conveniente, lalgoritmo DBSCAN
presenta alcuni limiti. Esso non puo essere impiegato per analizzare insiemi di dati
con grandi differenze nelle varie densita. Cio e causato dal fatto che non e possibile
scegliere con accuratezza un raggio per ogni cluster esistente; quello che potrebbe
essere un raggio ottimale, per includere tutti gli elementi di un determinato cluster,
potrebbe essere troppo piccolo per un altro, rendendo la densita di questultimo
insufficiente per essere riconosciuto come gruppo.
Per ogni algoritmo di clustering la scelta dei parametri in ingresso, come il raggio
in DBSCAN, e molto importante per la riuscita dellalgoritmo stesso. Esistono,
a tale scopo, particolari regole atte a stimare i vari parametri in base al dataset
a disposizione. Una scelta ottimale dei parametri in ingresso determina risultati
dellalgoritmo piu verosimili, dunque modelli piu affidabili.

3.3 Data Classification


Il data clustering, come visto finora, viene utilizzato per descrivere i dati attraverso
lestrazione di gruppi o categorie a cui e possibile ricondurre ogni osservazione, sfrut-
tando le similitudini tra queste ultime. Un simile processo puo essere indispensabile
per diverse applicazioni, mentre per altre puo essere utile a definire le categorie che
verranno usate da altri algoritmi per la giusta definizione dei dati, e di conseguenza,
per strutturare modelli di previsione.
Nellambito del data mining, viene definito data classification linsieme dei pro-
cessi che hanno il compito di etichettare gli oggetti (cioe le istanze dei dati) come
membri di una ben determinata categoria. Lo scopo di questa categorizzazione e
quello di creare un modello che permetta di prevedere in quale gruppo collocare
unentita composta da un insieme di attributi e, quindi, unistanza. Tale definizione
generale copre un gran numero di campi di applicazione; e possibile, individuando
gruppi costituiti da elementi che avranno determinati comportamenti, prevedere,
tramite tali modelli, le decisioni di una persona o lo svolgersi di particolari eventi.
In ambito finanziario, ad esempio, specifici modelli permettono di etichettare un
cliente come pagante o come fraudolento (risk modeling); tali modelli vengono
realizzati attraverso luso di algoritmi di classificazione. In sostanza, in tale ambito,
un classificatore e un insieme di procedimenti in grado di analizzare le informazioni
in modo da determinare, in maniera automatica, i possibili rischi ai quali si an-
dra incontro concedendo un prestito ad un cliente con cui lorganizzazione non ha
3.3 Data Classification 51

mai avuto rapporti precedentemente. Unulteriore possibile applicazione, in ambito


commerciale, prevede luso dei classificatori per individuare le aree geografiche al-
linterno delle quali un particolare prodotto potra riscuotere maggiore interesse. Le
potenzialita di tali strumenti sono quasi illimitate; avendo a che fare con moltepli-
ci applicazioni, appare naturale lesistenza di molti algoritmi per lo studio di tali
fenomeni.
Si puo affermare che i modelli creati tramite le tecniche di data classification
possono essere usati per prevedere le caratteristiche di nuovi elementi, sulla base
dei gruppi di appartenenza ottenuti tramite le tecniche di data clustering. I modelli
di previsione che vengono realizzati attraverso tale tipologia di algoritmi vengono
definiti classificatori. Le tecniche con le quali tali modelli vengono realizzati sono
costituiti da sofisticati algoritmi di machine learning i quali apprendono dallespe-
rienza (ossia attraverso un set di dati precedentemente ottenuti). Tramite tali dati
storici e, infatti, possibile identificare schemi nascosti che permettono di associare i
dati ad un ben determinato ambito.
Il processo di classificazione si divide principalmente in due fasi, ovver quella di
apprendimento e quella di previsione. La prima comporta la creazione del modello di
previsione fornendo un determinato training dataset al classificatore. Lobiettivo e
quello di istruire la macchina riguardo le regole e gli schemi nascosti allinterno dei
dati che determineranno il funzionamento del modello. La seconda prevede luso dei
dati di test al fine di sfruttare il modello, precedentemente ottenuto, per compiere
previsioni, e valutare i risultati ottenuti per studiarne lefficenza.
Tale metodologia e molto comune nel processo di analisi predittiva. I dati posso-
no essere raccolti durante transazioni su siti di e-commerce, tramite appositi form
su siti web o, in alternativa, attraverso fonti provenienti da terze parti. Esistono,
infatti, organizzazioni il cui unico scopo e quello di analizzare le comunita virtuali
ed ottenere informazioni quali gli indici di gradimento nonche informazioni tecniche
e statistiche varie relative ad un particolare prodotto. Usando tali informazioni e
possibile costruire un training dataset apposito per la realizzazione dei vari modelli.
Esistono varie tecniche per la realizzazione di un modello di previsione. Esse
vengono scelte in funzione della problematica da affrontare e prevedono vantaggi e
svantaggi. In seguito verranno esaminate alcune delle tecniche piu comuni.

3.3.1 Reti Neurali


Una rete neurale e un modello il cui funzionamento viene ispirato dallorganizzazio-
ne dei neuroni nel cervello umano. Il modello prende tale nome poiche e composto
da elementi che rappresentano dei neuroni artificiali, i quali imitano matemati-
camente le proprieta delle cellule cerebrali umane. La definizione di tale modello
risale al 1940; tuttavia, in passato, tale modello non ebbe particolare successo. La
causa di cio fu da imputare alle limitate capacita computazionali dellepoca; con
lo sviluppo delle risorse di programmazione distribuita si e potuto assistere, negli
ultimi anni, ad un rinnovamento di interesse nei confronti di esso. Essendo ideato
e costruito per imitare le capacita umane, tale modello rappresenta il principale
elemento di studio di una branchia della disciplina del machine learning chiamata
apprendimento approfondito.
Le reti neurali vengono largamente utilizzate per la classificazione dei dati. At-
traverso il loro utilizzo e possibile analizzare dati passati e presenti per stimare il
52 3 I Modelli di Previsione

valore futuro di questi ultimi; inoltre, esse vengono usate per trovare complesse cor-
relazioni nascoste allinterno dei dati. Tutto cio viene svolto con procedure analoghe
a quelle utilizzate dalle cellule del cervello, seppur in maniera molto piu semplice.
Il principale vantaggio dellutilizzo di modelli basati su reti neurali consiste nel
fatto che essi sono capaci di gestire istanze particolarmente ricche di attributi. Inol-
tre sono intrinsecamente vantaggiosi quando e necessario collocare i dati di output
in piu di due gruppi di classificazione.
Per spiegare il funzionamento delle reti neurali e utile, per prima cosa, mostrare
lanalogia con le cellule cerebrali umane. I neuroni possono essere pensati come una
rete di unita computazionali i quali ricevono molti segnali in input parallelamente.
Attraverso i dendriti (dendrites) ciascuno di essi riceve dei segnali in input e, a
sua volta, trasmette un segnale chimico al soma, cioe il centro del neurone. Tale
conversione, da segnale esterno a segnale locale, puo essere rappresentata matema-
ticamente attraverso un valore detto peso il quale moltiplica il segnale in input.
Questultimo puo essere positivo, nel caso di segnali chimici attivatori, o negativo,
nel caso di inibitori. Il centro della cellula, o soma (cell soma), raccoglie tutti que-
sti segnali (proporzionali a quelli forniti in ingresso) mediante un processo che puo
essere assimilato a una somma. Il risultato determina un potenziale che, una volta
raggiunta una certa soglia (bias), permette il trasferimento dellinformazione at-
traverso lassone (axon). Nella Figura 3.8 vengono mostrate le componenti appena
citate.

Figura 3.8. Struttura di un neurone

Analogamente, una rete neurale e uninterconnessione di nodi chiamati neuroni


artificiali. Come nel modello biologico, tali neuroni ricevono in ingresso un valore
di input, moltiplicato per un peso, e vengono sommati tra di loro. Tutto cio viene
illustrato, dal punto di vista matematico, nella Figura 3.9.
Per rappresentare la soglia oltre la quale il segnale viene inviato, e possibile
utilizzare una funzione detta funzione di attivazione. Essa puo essere, ad esempio,
un gradino unitario g(x) cos definito:
3.3 Data Classification 53

Figura 3.9. Struttura di un neurone artificiale


1, x < 0
g(x) = (3.7)
1, x 0
Lintero processo puo essere riassunto, matematicamente, mediante lequazione:
p
X
y = g(w0 + wi xi ) (3.8)
i=1

La funzione di attivazione appena mostrata rappresenta una delle soluzioni piu


semplici; tuttavia, il modello puo essere implementato attraverso lutilizzo di piu
funzioni di soglia. La caratteristica comune di tali funzioni e quella di fornire due
possibili valori di output in base al superamento, o meno, di un determinato va-
lore, detto valore di soglia. Una di esse, la funzione sigmoidea, e usata per offrire
una variante della tradizionale soglia a gradino della rete neurale. Come mostrato
nella Figura 3.10, infatti, tale funzione (dalla forma a S) viene utilizzata per di-
minuire la pendenza della funzione gradino e, quindi, per rendere meno drastico il
cambiamento delloutput al superamento della soglia.
Implementati in tale maniera, i neuroni artificiali possono essere legati per co-
struire una complessa rete di elaborazione. Attraverso il meccanismo delle funzioni
di soglia, una rete neurale puo essere usata per individuare schemi complessi allin-
terno del dataset in input. Essa e organizzata come internconnessione di neuroni
artificiali, distribuiti su piu livelli. Essa, inoltre, e un sistema adattivo, cioe che
cambia la sua struttura ed i suoi parametri, in base alle informazioni che scorrono
attraverso la rete in fase di apprendimento.
La funzionalita piu interessante dei sistemi come le reti neurali e la loro possi-
bilita di apprendere. Cio significa modificare il modello, durante una fase di costru-
zione dello stesso preventiva allutilizzo vero e proprio, impiegando un set di osser-
vazioni al fine di trovare le funzioni di soglia e i pesi tali da risolvere il problema in
maniera ottimale, quindi con meno rumore possibile in uscita.
Esistono tre possibili strategie per far si che una rete neurale venga opportuna-
mente istruita:
Paradigma di Apprendimento Supervisionato (supervised learning). Questo me-
todo viene utilizzato quando si ha a disposizione un training dataset in cui
ogni dato e etichettato, e contiene, quindi, una label corrispondente ad uno dei
54 3 I Modelli di Previsione

Figura 3.10. Funzione sigmoidea

possibili valori di output. In presenza di tali esempi di ingressi, con le relati-


ve uscite, la rete viene addestrata mediante un opportuno algoritmo detto di
backpropagation. Questultimo usa tali dati allo scopo di modificare i pesi ed
altri parametri della rete stessa in modo da minimizzare lerrore di previsione
relativo al training set. Se laddestramento ha successo, la rete impara a ricono-
scere la relazione incognita che lega le variabili dingresso a quelle duscita ed e,
quindi, in grado di fare previsioni anche laddove luscita non e nota a priori. Cio
consente di risolvere problemi classificazione.
Paradigma di Apprendimento non Supervisionato (unsupervised learning). Que-
sto metodo e basato su algoritmi daddestramento che modificano i pesi della
rete facendo esclusivamente riferimento ad un insieme di dati che include le sole
variabili dingresso. Tali algoritmi tentano di raggruppare i dati dingresso e di
individuare pertanto degli opportuni cluster rappresentativi dei dati stessi. In
presenza di nuove istanze, lalgoritmo cerca di ottenere dei risultati simili a quelli
precedentemente ottenuti.
Paradigma di Apprendimento per Rinforzo (reinforcement learning). Si tratta
di un opportuno algoritmo si prefigge di individuare un determinato compor-
tamento, a partire da un processo dosservazione dellambiente esterno. Ogni
azione ha un impatto sullambiente, il quale produce una retroazione che guida
lalgoritmo stesso nel processo dapprendimento. Tale classe di problemi viene
affrontata attraverso un componente detto agente, dotato di capacita di perce-
zione, che esplora un ambiente nel quale intraprende una serie di azioni. Lap-
prendimento con rinforzo differisce da quello supervisionato poiche non vengono
mai presentate delle coppie input-output di esempi noti.
Un classificatore, quale la rete neurale, si dice lineare se tutte le osservazioni,
allinterno dello spazio a n-dimensioni che le contiene, possono essere separate in due
3.3 Data Classification 55

o piu gruppi distinti attraverso luso di un vettore. Questultimo deve essere dato
da una combinazione lineare degli stessi parametri che individuano i vari oggetti.
Nel caso di spazio n-dimensionale con n > 2 tale vettore e definito iperpiano. Un
classificatore, inoltre, si dice non lineare se tali osservazioni possono essere separate
da una linea curva, come mostrato in Figura 3.11.

Figura 3.11. Classificatore lineare (a sinistra) e non lineare (a destra)

Il vettore

x , che definisce le due aree del classificatore lineare, viene definito vet-
tore delle caratteristiche. Ogni osservazione, corrispondente ad un punto del piano
n-dimensionale, puo essere individuata come combinazione lineare del vettore delle
caratteristiche, le cui componenti vengono moltiplicate per opportuni pesi n .
N
X
xo = n xn (3.9)
n=1

Tramite la fase di apprendimento, fornendo tali coefficienti n al modello, questul-


timo e capace (date le sue caratteristiche) di effettuare il prodotto scalare tra il
vettore di osservazione ed il vettore dei pesi, fornendo un vettore osservazione. Esso
puo, attraverso la funzione di soglia, essere ulteriormente associato a un punteg-
gio di uscita (il quale puo essere un ulteriore parametro dellosservazione stessa)
che ne determina lappartenenza a un particolare gruppo e rappresenta, quindi, il
parametro di output.
In questo modo e possibile realizzare un classificatore lineare attraverso una
rete neurale. Per ottenere un classificatore non lineare e necessario implementare
una rete lineare a piu livelli, ciascuno dei quali definisce un vettore. Questi ultimi
formeranno una linea spezzata la quale definira il percorso che separa le due aree.
Le reti neurali sono caratterizzate da unelevata precisione, perfino nel caso in
cui i dati in input presentano molto rumore. Cio rappresenta un vantaggio molto
interessante, soprattutto quando in presenza di valori erronei non sarebbe possibile
utilizzare altrimenti determinati dati. Il prezzo da pagare, in cambio di tale affi-
dabilita, consiste nel dover ripetere spesso la fase di apprendimento. La precisione
della previsione, infatti, e costante solo in un breve periodo di tempo in seguito
allutilizzo del training dataset.
56 3 I Modelli di Previsione

3.3.2 Support Vector Machine

Le Support Vector Machine (SVM), o macchine a vettori di supporto, costituiscono


un insieme di metodi di apprendimento supervisionato. Sviluppati negli anni 90 da
Vladimir Vapnik ed il suo team presso i laboratori Bell AT&T, rappresentano una
delle tecniche piu utilizzate per risolvere problemi di classificazione. In molti casi,
le SVM sono dei modelli di classificazione binari, ossia in cui i dati in questione
contengono due possibili valori di restituzione.
Le reti neurali ad un solo strato hanno un algoritmo di apprendimento efficiente,
ma sono utili soltanto nel caso di dati linearmente separabili. Viceversa, le reti
neurali multistrato possono rappresentare funzioni non lineari, ma sono difficili da
addestrare a causa dellalto numero di dimensioni dello spazio dei pesi. La tecnica
di addestramento SVM risolve entrambi i problemi: presenta un algoritmo efficiente
ed e in grado di rappresentare funzioni non lineari complesse.
Per illustrare il funzionamento dellalgoritmo SVM e bene introdurre prima il
concetto di margine. I margini sono le distanze perpendicolari zn che intercorrono
tra un iperpiano e ogni elemento appartenente alln-esimo gruppo. Come mostrato
in Figura 3.12, il margine migliore e quello maggiore tra tali distanze.

Figura 3.12. Due diversi margini

Scegliendo liperpiano in modo da ottenere il margine piu grande, infatti, e


possibile definire al meglio le aree corrispondenti ad ogni gruppo, anche in presenza
di valori marginali. Nellesempio illustrato, liperpiano migliore e costituito dalla
linea verde.
Lobiettivo dellalgoritmo, quindi, e quello di individuare il vettore

x miglio-
re che permetta di definire la linea di separazione tra i cluster. Si vuole ottene-
re lequazione delliperpiano come funzione lineare delle stesse caratteristiche di
ingresso:
3.3 Data Classification 57

G(

x) =


x + 0 (3.10)


dove x = (x1 , x2 , ..., xn ) e un generico vettore dello spazio n-dimensionale degli
attributi e
e il vettore dei pesi (lincognita del problema). Come ulteriore ipotesi,
si vuole imporre che il valore della funzione G( x ) sia 1 se il punto appartiene al
primo dei due cluster, e 1 se esso appartiene al secondo.
Il vettore G( x ) e mostrato in Figura 3.13.

Figura 3.13. Vettore delle caratteristiche in uno spazio a 2 dimensioni

Per entrare nel dettaglio del meccanismo dellalgoritmo SVM si considerino due
punti dello spazio da classificare: x1 = (1, 1) e x2 = (2, 3). Uno dei possibili metodi
per stabilire la soglia tale da garantire il margine migliore tra i due e calcolare la
distanza media misurando la differenza tra i coefficienti dei due vettori. Il vettore
dei pesi che definira liperpiano avra coefficienti:


= (2, 3) (1, 1) = (, 2) (3.11)
Si osserva, quindi, che la seconda componente dovra essere doppia rispetto alla
prima. In questo modo, le due distanze perpendicolari, tali da congiungere i punti
x1 e x2 con liperpiano, saranno esattamente uguali. Tale situazione e mostrata in
Figura 3.14.
Sostituendo a G(
x ) il punto x1 appartenente al primo cluster si avra:

G(

x ) = + 2 + 0 = 1 (3.12)
sostituendo il punto x2 appartenente al secondo cluster si avra:

G(

x ) = 2 + 6 + 0 = 1 (3.13)
Considerando w0 come incognita dellEquazione 3.13, si ha che:
58 3 I Modelli di Previsione

Figura 3.14. Calcolo delliperpiano che fornisce il margine migliore

0 = 1 8 (3.14)
Sostituito questo valore nellEquazione 3.12, si ha:

3 + 1 8 = 1
5 = 2 (3.15)
2
=
5
Tramite e possibile, finalmente, ottenere il vettore dei pesi

, il quale sara:


2 4
=( , ) (3.16)
5 5
Tale vettore e detto support vector. Tramite il prodotto scalare del support vector
con uno degli elementi del dataset e possibile ottenere un valore che indica lappar-
tenenza di tale elemento al primo cluster (se il valore ottenuto risulta essere 1) o
al secondo (se il valore ottenuto e 1). Tale metodologia costituisce lalgoritmo
Support Vector Machine.
Il metodo appena illustrato si presta a essere usato come tecnica di classificazione
in quei casi in cui le possibili classi di uscita sono due (classificazione binaria). Anche
in presenza di oggetti con molti attributi, tale metodo resta unefficace strategia che
restituisce risultati affidabili con il minor errore possibile. Come per le reti neurali,
le support vector machine devono essere opportunamente impostate in modo da
trovare liperpiano che presenti la distanza maggiore da ogni elemento dellarea.
Tale separatore viene individuato attraverso lanalisi del training dataset.
Una possibile applicazione del SVM e la classificazione delle immagini (image
recognition). Unimmagine delle dimensioni di 100 100 pixel, infatti, puo essere
3.3 Data Classification 59

considerata come un elemento di un vettore appartenente al campo 10000 , dove


ogni attributo rappresenta il valore di ogni pixel. Supponendo di avere due possibili
tipi di immagini in output, questo scenario rappresenta un campo di applicazione
ideale per le support vector machine. Dopo aver definito liperpiano nello spazio a
10000 dimensioni, sara possibile realizzare un modello che consenta di categoriz-
zare unimmagine come appartenente a una delle due categorie prima ancora che
limmagine stessa venga osservata.

3.3.3 Alberi di decisione

I metodi di classificazione basati sugli alberi rappresentano il metodo piu intuitivo


per la creazione di un modello predittivo. In particolare, un albero di decisione e un
modello con una struttura lineare il quale permette di fare previsioni sul possibile
valore di una variabile di output. La scelta del valore di uscita e basata su una serie
di regole distribuite su una struttura ad albero.
Gli alberi di decisione sono costituiti da una serie di biforcazioni chiamate nodi.
Per prendere una decisione utilizzando un albero e necessario partire dal nodo radice
(root node), cioe il punto di partenza dellalbero. A partire da questultimo, per ogni
nodo interno (inner node) o esterno (outer node), i valori forniti in input vengono
sottoposti a varie decisioni. In base allesito del confronto si procede a sinistra o
a destra del nodo, fino a raggiungere i nodi foglia (leaf nodes) che costituiscono i
valori di decisione finali. Un esempio di tale processo e illustrato in Figura 3.15.

Figura 3.15. Albero di decisione

Per ogni nodo viene implementato un costrutto if-else. Il risultato di ogni de-
cisione viene fornito ai nodi successivi, e il processo prosegue fino a quando i dati
arrivano ai nodi foglia. Questi ultimi forniscono il risultato vero e proprio.
Per illustrare il funzionamento di un albero di decisione e utile mostrare un esem-
pio pratico [7, pag.123]. Si supponga di voler prevedere il successo di tre possibili
investimenti finanziari: un ristorante, unazienda di trasporti, un negozio di libri. In
casi come questultimo emerge lausilio dei metodi statistici al fine di condurre un
processo di previsione. Da unintervista con un esperto del settore, il quale si avvale
proprio di tali metodi, emerge che la possibilita di successo del primo investimento
60 3 I Modelli di Previsione

e stimata intorno al 52%, la possibilita di successo del secondo investimento e pari


al 60%; infine, la possibilita di successo del terzo investimento e pari al 50%.
Per ogni eventualita, inoltre, lesperto del settore calcola le possibili perdite ed
i guadagni. Tale situazione puo essere descritta attraverso luso di un albero di
decisione, come mostrato in Figura 3.16.

Figura 3.16. Albero di decisione per la previsione dellesito di un investimento

In questo modo nei nodi foglia apparira ogni possibile esito. Un albero di deci-
sione puo essere utilizzato per avere un quadro completo su tutti i possibili sviluppi
di un evento e, quindi, scegliere lalternativa piu vantaggiosa, minimizzando i rischi.
A ogni foglia puo essere associato un valore detto valore atteso; in generale, il valore
atteso di una variabile casuale discreta (che assuma, cioe, solo un numero finito o
una infinita numerabile di valori) e dato dalla somma dei possibili valori di tale
variabile, ciascuno moltiplicato per la probabilita di essere assunto (ossia di veri-
ficarsi). Nellesempio della scelta del business piu remunerativo, esso e dato dalla
somma dei possibili guadagni, o perdite, ciascuno moltiplicato per la probabilita
che tale evento si realizzi. Si avranno, cioe, i seguenti valori:
valore atteso dellinvestimento nel ristorante:

52% 40, 000$ + 48% (21, 000$) = 10, 720$ (3.17)


valore atteso dellinvestimento nellazienda di trasporti:

60% 20, 000$ + 40% (7, 000$) = 9, 200$ (3.18)

valore atteso dellinvestimento nel negozio di libri:

50% 6, 000$ + 50% (1, 000$) = 2, 500$ (3.19)

Si puo concludere, quindi, che linvestimento che garantira i risultati migliori sara
quello del ristorante. Tale conclusione rappresenta una previsione sulla strategia che
condurra al profitto maggiore. Gli alberi di decisione rappresentano uno strumento
indispensabile per affrontare quella categoria di problemi in cui e necessario scegliere
lalternativa che permette di minimizzare i rischi (problemi di decision-making).
3.4 Metodi Probabilistici 61

Essi, inoltre, possono essere usati come strumento di classificazione. In tale senso,
ogni foglia puo rappresentare una diversa classe e in ogni nodo interno vengono prese
delle decisioni sugli attributi forniti in input, le quali influenzano la classificazione
finale dellistanza.
Come per tutti gli altri modelli visti finora, dopo essere stato opportunamente
creato, lalbero di decisione permette di compiere delle scelte su istanze di dati mai
viste prima. Come altri modelli, inoltre, lalbero deve essere istruito riguardo ai
criteri che determinano le varie scelte su ogni nodo. Esistono diversi algoritmi per
la costruzione di un albero di decisione. In particolare, per ogni nodo (incluso il
nodo radice), tale algoritmo deve determinare quali sono le caratteristiche di input
e come esse forniranno il valore di uscita; successivamente, sempre per ogni nodo, e
necessario decidere se dovra rappresentare una foglia o, in alternativa, dovra essere
uno dei nodi interni. Per ultimo, sara necessario stabilire la profondita dellalbero
e, una volta giunti ai nodi foglia, cosa dovranno rappresentare i valori attesi.

3.4 Metodi Probabilistici


Il calcolo delle probabilita considera fenomeni osservabili esclusivamente dal punto
di vista della possibilita o meno del loro verificarsi. La probabilita di un evento X
e un valore numerico. Tale valore puo essere calcolato dividendo il numero di volte
in cui avviene levento X per il numero massimo di possibili eventi che possono
verificarsi nelle stesse circostanze. Gli algoritmi che verranno, adesso, analizzati si
basano sul calcolo delle probabilita e su un teorema molto importante ai fini di tale
disciplina, ovvero il teorema di Bayes.
Si considerino due possibili eventi A e B. Si supponga che, ad esempio [10,
250], il primo consista nel fatto che un paziente sia affetto da appendicite, mentre,
il secondo indichi che lo stesso paziente presenti un alto livello di globuli bianchi
nel sangue. Il teorema di Bayes si propone di calcolare la probabilita P (A) del
verificarsi dellevento A in seguito al verificarsi dellevento B (con probabilita P (B)).
Si dimostra che, data la probabilita P (B)) del verificarsi di B) e la probabilita
P (A B) del verificarsi di entrambi gli eventi, il valore che indica la probabilita
dellevento A) (detto evento condizionato) e data da:

P (A B)
P (A|B) = (3.20)
P (B)
Il teorema permette di stabilire la probabilita del verificarsi di un evento non di-
rettamente osservabile (quale, ad esempio, la presenza di unappendicite) attraverso
il valore della probabilita di un evento osservabile (quale linnalzamento dei globuli
bianchi). In altri termini, tale teorema si presta perfettamente alla costruzione di un
modello di previsione, in quanto permette di stimare la causa osservando leffetto.
Data la conoscenza del teorema di Bayes e possibile esaminare alcuni dei piu
comuni algoritmi di previsione i quali ne sfruttano le potenzialita.

3.4.1 Naive Bayes Classification


Tecnica tipica delle pratiche di machine learning, esso fa parte delle tecniche proba-
bilistiche di classificazione. Come altri modelli gia visti, impiega dati che hanno la
62 3 I Modelli di Previsione

forma di vettori di caratteristiche. Esistono diversi tipi di algoritmi per realizzare


un simile modello, ma tutti presentano particolari caratteristiche in comune.
Le componenti dei vettori delle varie osservazioni (cioe i dati impiegati per af-
frontare il problema), usati da tali algoritmi, sono variabili aleatorie. Tali variabili
possono assumere diversi valori con una ben determinata probabilita. Caratteristi-
ca comune ai diversi algoritmi che implementano il modello Naive Bayes e che tali
variabili casuali sono tutte indipendenti tra di loro. Due o piu variabili, le quali pos-
sono assumere una serie di possibili valori in dipendenza da un fenomeno casuale
osservato, si dicono indipendenti tra di loro se nessuno di tali eventi influenza lo
svolgersi dellaltro.
Il modello Naive Bayes viene usato in quei contesti in cui e possibile osservare
una serie di fenomeni indipendenti tra di loro e, quindi, di stimare la probabilita
di ognuno di essi. Per mostrarne direttamente le capacita e utile fare alcuni esempi
dei possibili elementi di un vettore osservazione, relativamente ai dati raccolti su
un gruppo di clienti i quali hanno acquistato un determinato prodotto X. Si vuole
usare tali dati per prevedere il livello di successo di tale prodotto nel prossimo fu-
turo e, di conseguenza, adattare le proprie strategie di marketing. Le componenti
C, X1 , X2 , ..., Xn del vettore osservazione relativo a un cliente C possono rappre-
sentare dei fenomeni direttamente osservabili. Verra indicato, ad esempio, con X1
il sentimento del cliente nei confronti di un prodotto (positivo o negativo), con X2
il fatto che egli abbia acquistato, o meno, prodotti simili, e con X3 la valutazione
del suo merito di credito (affidabile o insolvente).
Ognuna di tali variabili assume, come appena mostrato, un valore discreto
del quale puo essere calcolata la probabilita. Le tre variabili sono, rispettivamen-
te, P (X1 = valutazionepositiva), P (X2 = nonacquistatoprodottisimili)eP (X3 =
af f idabile). In questo modo vengono riportate, matematicamente, le probabilita
relative a ciascuno dei fenomeni osservati.
Come altri gia visti, infatti, il modello Naive Bayes utilizza dati storici per rea-
lizzare una previsione sul futuro. Tali dati vengono analizzati tramite il teorema
di Bayes. Questultimo permette di calcolare la probabilita che il prodotto X ven-
ga acquistato dal cliente C, date le caratteristiche X1 , X2 , ..., Xn di questultimo.
Matematicamente:

P (X1 X2 , ..., Xn |C) P (C)


P (C|X1 X2 Xn ) = (3.21)
P (X1 X2 , ..., Xn )
dove P (C) e la probabilita che il prodotto venga acquistato, X1 X2 , ..., Xn
rappresenta lintersezione delle probabilita degli eventi X1 , X2 , ..., Xn e P (X1
X2 Xn |C) rappresenta la probabilita che, dato il verificarsi delle Xn condizioni, il
prodotto C venga acquistato.
Questultimo rappresenta lunica incognita del problema. Si puo osservare, in-
fatti, come tutti gli altri termini dellespressione rientrino nella categoria dei dati
direttamente osservabili e fanno, quindi, parte delle informazioni storiche raccolte
per la costruzione del modello, cioe il training dataset.
Per il calcolo dellultimo termine e bene usufruire delle definizioni messe a di-
sposizione dalla statistica. Lintersezione di piu eventi X1 X2 Xn e definita come
levento che si verifica se si verificano contemporaneamente X1 , X2 , ..., Xn . Attra-
verso lipotesi di indipendenza delle variabili e possibile usufruire del teorema della
3.4 Metodi Probabilistici 63

probabilita composta per il calcolo dellincognita. Tale teorema afferma che, per
eventi indipendenti tra di loro, la probabilita dellevento intersezione di piu eventi
indipendenti e data dal prodotto delle probabilita dei singoli eventi. Cioe:

P (X1 X2 Xn ) = P (X1 ) P (X2 ) ... P (Xn )) (3.22)


Applicando tale teorema allEquazione 3.21 si ha che:

P (X1 |C) P (X2 |C) ... P (Xn )|C)|C) P (C)


P (C|X1 X2 , ..., Xn ) = (3.23)
P (X1 X2 , ..., Xn )

I termini P (X1 |C) P (X2 |C) ... P (Xn )|C), come gia detto, sono direttamen-
te osservabili, in quanto rappresentano la probabilita che il prodotto C sia stato
acquistato, condizionata dal verificarsi delln-esima osservazione Xn . Attraverso ta-
li considerazioni e possibile calcolare la probabilita che un elemento (nellesempio,
un cliente), etichettato come C e con X1 , X2 , ..., Xn caratteristiche, compia una
determinata azione.
La probabilita P (C|X1 X2 , ..., Xn ) e definita probabilita a priori, in quanto
viene assegnata dopo aver preso in esame le informazioni piu rilevanti raccolte. Per
ottenere un classificatore sfruttando tale risultato e possibile indicare una serie di
classi di uscita Ci . Identificando, ad esempio, ogni classe come un potenziale cliente,
o un gruppo di essi, sara possibile prevedere lesito di una decisione di acquisto
scegliendo la classe alla quale verra associata la probabilita maggiore.
Si puo osservare, infine, che per massimizzare la probabilita a priori di una
classe e necessario massimizzare esclusivamente il numeratore (in quanto, come e
possibile vedere dalla formula del teorema di Bayes, il denominatore e indipendente
dalla classe specifica). Per tale motivo, lesito della previsione puo essere indicato
mediante la formula:
" n
!#
Y
Ci = max P Ci P (Xn |Ci 1) (3.24)
n=1

3.4.2 Il Modello di Markov

Tale processo prende il nome dal matematico russo Andrej Andreevic Markov che,
per primo, ne sviluppo la teoria. Modelli di tipo markoviano trovano applicazione in
molti ambiti, dalla progettazione di reti di telecomunicazione allanalisi predittiva.
Un modello costruito attraverso un processo di tale genere si basa su un presupposto,
cioe lipotesi di Markov.
Questultima puo essere riassunta in questo modo: la probabilita del verificarsi
di un evento futuro, calcolata osservando n eventi passati, e pressappoco uguale
alla probabilita del verificarsi dello stesso evento, calcolata osservando solo levento
passato piu recente.
Tale ipotesi puo essere scritta matematicamente in questo modo:

P (eventon |eventon1 , eventon2 , ..., evento1 ) P (eventon |eventon1 ) (3.25)


64 3 I Modelli di Previsione

In sintesi, lipotesi di Markov indica che non e necessario ricorrere a dati storici
troppo datati per prevedere lo svolgersi di un evento futuro. Se un evento e condi-
zionato da un solo fenomeno gia avvenuto si parla di approssimazione di Markov di
primo ordine, se vengono considerati due fenomeni si parla di approssimazione di
secondo ordine, e cos via.
Tale enunciato puo essere applicato al calcolo di una probabilita condizionata
tramite luso del teorema di Bayes. Dato un evento X1 , condizionato da una serie
di fenomeni osservati X2 , X3 , Xn (dei quali se ne conosce la probabilita), e possibile
ottenere unapprossimazione di primo livello:

P (X1 X2 |X1 ) P (X1 )


P (X1 |X2 X2 Xn ) = (3.26)
P (X1 X2 )
Il processo di Markov descrive una serie di eventi, calcolati tramite il metodo
appena esposto. Ciascuno di tali eventi rappresenta lo stato di uno spazio degli
stati discreto di un sistema. Il passaggio da uno stato allaltro viene descritto dalla
probabilita di uno stato di assumere un altro valore tra quelli possibili, ed e, percio,
condizionata da questi ultimi.
Si puo, ad esempio, considerare un sistema a tre stati possibili X1 , X2 , X3 , dove
il passaggio ad un nuovo stato e condizionato dagli stati precedenti. Sotto lipotesi
di Markov, tuttavia, e possibile calcolare la probabilita di uno dei tre considerando
esclusivamente il precedente stato piu recente. Cos, lo stato X1 potra diventare lo
stato X2 , lo stato X3 , o tornare a essere di nuovo X1 . La transizione tra questi
ultimi avviene con una probabilita che puo essere determinata tramite il teorema
di Bayes.
Una situazione simile puo essere descritta attraverso luso di un grafo orientato.
Un grafo e un insieme di elementi detti nodi (o vertici) che possono essere collegati
fra loro da linee chiamate archi. Un arco orientato e un arco caratterizzato da una
direzione. Il grafo, inoltre, e detto pesato se ad ogni arco e associato un peso o costo
(cioe un valore numerico). Ogni stato del processo markoviano viene rappresentato
da un elemento del grafo. Le transazioni vengono mostrate dagli archi, i cui pesi ne
indicano la probabilita. Tale schema viene mostrato nella Figura 3.17.

Figura 3.17. Catena di Markov a tre stati


3.5 Recommendation Systems 65

Un grafo cos definito viene chiamato catena di Markov. Esso puo essere inter-
pretato affermando che la probabilita che un sistema passi dallo stato X1 allo stato
X2 e del 35%, mentre la probabilita di restare allo stato X2 e del 60%.
Molti modelli si basano sulla teoria di processi markoviani. Tra questi, lalgo-
ritmo di link analysis ranking PageRank, utilizzato da Google, percorre il grafo del
web e analizza gli archi uscenti e gli archi entranti delle pagine associando un valore
sulla base del quale si effettua lordinamento del motore di ricerca. Esso sfrutta la
conoscenza offerta dal modello di Markov per determinare tale valore sulla base di
quale sito (stato del grafo) si prevede che verra maggiormente visitato.
Un modello di Markov viene definito nascosto se gli stati precedenti, i quali
condizionano quello futuro, sono sconosciuti, cioe non osservabili direttamente. Ogni
stato genera un evento con una certa distribuzione di probabilita che dipende solo
da esso; inoltre, levento e osservabile ma lo stato no. Come ogni modello di Markov,
ogni stato e indipendente dagli altri; inoltre, le osservazioni sono indipendenti tra
di loro.
Per la costruzione di tale modello vengono forniti in ingresso, oltre agli eventi
osservati, tre vettori. Il primo contiene, per ogni possibile stato, un elemento che
rappresenta la probabilita di trovare tale stato nella condizione di partenza. Il secon-
do contiene la probibilita che ogni stato Xn ha di passare allo stato Xn+1 . Lultimo
vettore contiene la probabilita, di ogni stato, di generare un determinato evento.
Anche in questo caso il modello deve essere addestrato a ottenere tali vettori di
probabilita tramite una fase di preparazione usando il training dataset composto
da dati precedenti.
In un modello di Markov nascosto e possibile ottenere diversi risultati in uscita,
tra questi la probabilita del verificarsi di un particolare evento o di una sequenza
di aventi. Queste ultime probabilita vengono calcolate usando il teorema di Bayes.
Una volta ottenuti i parametri appena citati, e possibile risolvere diversi problemi
costruendo il modello attraverso luso di particolari algoritmi. Data, ad esempio, una
sequenza di eventi in ingresso e possibile trovare la sequenza di stati piu probabile
che potrebbe generare tale sequenza; questo problema viene risolto dallalgoritmo
di Viterbi. Attraverso un algoritmo detto algoritmo forward-backward, inoltre, e
possibile trovare la probabilita di una particolare sequenza di eventi.
Le possibilita offerte dal modello di Markov nascosto sono molteplici. Per tale
motivo esso viene utilizzato in molti campi; tra questi, lanalisi predittiva. Nella
seconda meta degli anni ottanta si e cominciato ad applicare lalgoritmo allanalisi
delle sequenze biologiche; da allora questa metodologia e diventata di grande aiuto
nella predizione delle regioni codificanti nella sequenza del genoma umano e nella
previsione degli elementi secondari della struttura dalle sequenze primarie delle
proteine.

3.5 Recommendation Systems

Nellinsieme dei modelli usati per la realizzazione di previsioni e necessario dare


spazio a quelli usati per i sistemi di raccomandazione o recommendation system.
Tali sistemi si occupano di fornire agli utenti consigli personalizzati riguardo un set
di oggetti appartenenti ad uno specifico settore.
66 3 I Modelli di Previsione

Formalmente, e possibile esprimere il problema delle raccomandazioni introdu-


cendo alcuni concetti. Sia A linsieme degli n utenti del sistema, inoltre, sia B lin-
sieme degli m oggetti che possono essere raccomandati. Si definisce u : A B R
una funzione definita sul prodotto cartesiano A B la quale associa un indice di
gradimento a ogni coppia utente-prodotto. Tale indice indica una valutazione (nu-
merica) che un utente ha assegnato o assegnerebbe ad un oggetto. Date queste
definizioni, compito del recommendation system e scegliere, per ciascun oggetto in
A, lelemento in B tale da massimizzare la funzione u per la coppia.
Il problema di tali sistemi e che non sempre u e definita per ogni elemento
del prodotto cartesiano A B, in quanto non sempre un utente esprime il proprio
parere su un determinato prodotto. Parte degli obiettivi dei recommendation system
consiste nel prevedere i valori della funzione di utilita u anche nella parte dello spazio
dei dati in cui essa non e definita. In altre parole, lobiettivo e fare una predizione
sul voto che un determinato utente darebbe ad un oggetto del sistema che non ha
ancora valutato.
I diversi sistemi di raccomandazione predicono voti sconosciuti a partire da quelli
conosciuti. In genere, essi sfruttano enormi quantita di dati per determinare lindice
di gradimento sconosciuto attraverso luso di diversi algoritmi. In base alla tecnica
utilizzata e possibile suddividere i sistemi di raccomandazione nelle seguenti tre
categorie:
Sistemi basati sul filtraggio collaborativo. Per filtraggio collaborativo (collabo-
rative filtering) si intende una classe di strumenti che consentono il recupero
di informazioni predittive relativamente agli interessi di un insieme di utenti.
Le tecniche di collaborative filtering si basano sulla raccolta e lanalisi di una
grande quantita di informazioni sugli utenti; quindi, usano queste ultime per
prevedere le loro preferenze basandosi sulle similitudini che essi presentano con
altri utenti. Tali tecniche, inoltre, assumono che ogni utente, il quale ha mostrato
interesse verso un determinato prodotto, continuera a mostrarlo anche in futuro.
Tra gli algoritmi usati per determinare le similitudini tra utenti vi e lalgoritmo
K-Nearest Neighbor gia visto. I dati collezionati, riguardanti le preferenze degli
utenti, possono essere raccolti tramite sondaggi, osservando gli oggetti acquista-
ti e visualizzati, analizzando le opinioni dei clienti allinterno di forum o social
network, etc.
Una volta individuati i gruppi di utenti simili, lalgoritmo costruisce un modello il
quale mostra gli oggetti che i clienti che non hanno ancora acquistato potrebbero
preferire.
Uno degli esempi piu interessanti di filtraggio collaborativo e rappresentato dal-
luso che ne fanno alcune famose piattaforme sul Web, come Amazon, Facebook
e Twitter. Il primo usa tali metodi di raccomandazione per consigliare vari og-
getti in vendita ai potenziali clienti. Gli ultimi due utilizzano tali strumenti per
raccomandare nuovi amici o gruppi di potenziale interesse a ogni utente.
Sistemi basati sul filtraggio dei contenuti. Ulteriore approccio sul quale si basano i
sistemi di raccomandazione, e il content-based filtering. Un sistema di tale genere
sfrutta le similitudini tra gli oggetti acquistati in passato, da un determinato
utente, per fare previsioni sugli oggetti che egli potrebbe gradire in futuro.
Dopo aver creato il profilo di un oggetto (cioe, dopo averne definito gli attributi)
vengono usati algoritmi di classificazione, come gli alberi di decisione o la rete
3.5 Recommendation Systems 67

neurale, per includere gli oggetti non ancora acquistati da un utente in gruppi
contenenti oggetti gia acquistati.
Il giudizio dei clienti puo essere usato per dare un maggiore o minore peso a
ogni attributo. Anche sistemi di questo genere trovano largo utilizzo tra le piu
comuni piattaforme allinterno del Web.
Sistemi di raccomandazione ibridi. Recenti ricerche hanno dimostrato che un
approccio ibrido, il quale combina le tecniche utilizzate dai sistemi basati sul
filtraggio collaborativo con quelli basati sul filtraggio dei contenuti, risulta es-
sere particolarmente vantaggioso in alcuni casi. Le due strategie possono essere
implementate separatamente o attraverso lo stesso modello.
Esistono diversi approcci per realizzare un sistema di raccomandazione ibrido.
Alcuni di essi prevedono la combinazione dei risultati di diversi sistemi i quali
lavorano parallelamente. Altri prevedono di lavorare sugli attributi usati da di-
versi sistemi per fornire un unico risultato. In altri approcci a cascata i risultati
di un primo modello, costruito da un sistema, vengono usati come input per un
altro modello, costruito da un secondo sistema.
La piattaforma piu nota per lutilizzo di un sistema ibrido e Netflix.
4
Analisi della Regressione

In questo capitolo continua la trattazione dei modelli adottati dallanalisi predittiva.


In particolare, verranno analizzati i metodi di regressione. Mentre i modelli visti
fino ad ora fornivano una risposta qualitativa, i metodi di regressione, provenienti
dallanalisi statistica, mirano a determinare una valutazione quantitativa, a partire
da variabili indipendenti facenti parte di vettori osservazione per laddestramento del
modello. Essi rivestono unimportanza fondamentale in quanto largamente utilizzati
in diversi ambiti.

4.1 I Modelli di Regressione


I modelli esaminati nel capitolo precedente coprono alcune delle piu importanti ca-
tegorie di modelli tra quelli fondamentali per lanalisi predittiva. Esiste un gruppo di
essi, non ancora mostrato, il quale rientra nella categoria dei modelli indispensabili
alla risoluzione dei piu tipici problemi che richiedono la previsione di eventi futuri.
Tale categoria e quella dei modelli di regressione. Questultimi vengono realizzati
attraverso tecniche definite dallo studio dellanalisi della regressione.
La differenza fondamentale tra il modello appena citato e un modello di clas-
sificazione risiede nella differente tipologia di dati in output che si sta cercando di
prevedere. I modelli di classificazione tentano di ricondurre lesito della decisione
a valori predeterminati, appartenenti a un insieme finito (anche se spesso molto
grande). I modelli di regressione non fanno previsioni su un insieme di possibili va-
lori gia esistenti, ma tentano di prevedere dei valori numerici o quantitativi. Tale
distinzione non e sempre valida in quanto alcuni modelli, come, ad esempio, le reti
neurali, sono capaci di fornire entrambi i tipi di risultati.
In generale, la regressione e una tecnica utilizzata per analizzare una serie di dati
costituiti da una variabile dipendente e una, o piu, variabili indipendenti (cioe osser-
vabili). Il modello che rappresenta il fenomeno da prevedere e chiamato equazione
di regressione. Essa e funzione delle variabili indipendenti, a meno di un termine di
errore il quale e rappresentato da una variabile aleatoria. Questultima rappresenta
una variazione non prevedibile della variabile di uscita.
Come per altri modelli di previsione, affrontare un problema di regressione non
richiede la conoscenza dei processi con i quali vengono generati i dati. Al contrario
70 4 Analisi della Regressione

di altri modelli visti finora, tuttavia, al fine di determinare un modello di regressione


e necessario conoscere alcune informazioni riguardo la possibilita che ha il termine
di errore di assumere determinati valori. Tale informazione e chiamata distribuzione
di probabilita ed e definita come un modello matematico il quale collega i valori di
una variabile aleatoria alle probabilita che tali valori possano essere osservati.
Dati i valori di ingresso e la distribuzione di probabilita e possibile determinare
i parametri che permettono al modello di realizzare previsioni accurate. Secondo
lopinione degli esperti del settore [8, pag.75], i modelli di regressione rappresentano
la forza dominante nei moderni processi di decisione.

4.2 Regressione Lineare Semplice e Multipla


Come appena illustrato, un modello di previsione basato sulla regressione tenta di
prevedere dei valori numerici. Il piu semplice, ma anche il piu comune, tra i modelli
di regressione e il modello di regressione lineare.
Esso restituisce il valore di una variabile dipendente yo in funzione di una com-
binazione lineare delle variabili indipendenti x1 , x2 , xn :

yo = 1 x1 + 2 x2 + ... + 0 + (4.1)

dove x1 , x2 , xn sono i valori in ingresso (cioe le variabili indipendenti) i quali formano


il vettore osservazione xn . Il simbolo rappresenta il termine derrore e 1 , 2 , 0
rappresentano i parametri del modello. Questultimi sono chiamati coefficienti di
regressione e devono essere determinati durante la fase di addestramento del
modello.
Una volta ottenuti i parametri n , e possibile realizzare una previsione sosti-
tuendo gli attributi di ingresso nel modello. Il valore di 0 , inoltre, rappresenta il
risultato della previsione in assenza di attributi in input. Gli ulteriori valori di
possono essere interpretati come il rapporto tra i valori delle variabili in ingresso
e i valori delle variabili in uscita; cio significa che questa quantita e indicativa del
cambiamento che ci si aspetta da ognuno di tali attributi per ogni incremento di
ununita di questi ultimi.
Un modello di regressione lineare puo essere rappresentato in uno spazio a n
dimensioni, dove n e il numero di valori indipendenti. Un semplice modello, il quale
utilizza dati con un solo attributo, puo essere illustrato nello spazio cartesiano. In
questo modo, in ascissa, saranno riportati i valori della variabile indipendente x1 e,
in ordinata, i valori della variabile di uscita yo ; tale esempio e mostrato in Figura
4.1.
I risultati di un modello di questo genere formano una retta. Il valore di 1
rappresenta la pendenza della retta, mentre, il valore di 0 rappresenta il punto in
cui questultima interseca lasse delle ordinate. Il caso appena mostrato, in cui e
presente un solo attributo in ingresso, determina un modello di regressione lineare
semplice. Nei casi in cui sono presenti due o piu variabili indipendenti xn il modello
viene detto di regressione lineare multipla.
Al fine di definire un modello semplice e necessario imporre alcune condizioni
le quali semplificano la valutazione dei coefficienti di regressione. Per ogni variabile
4.2 Regressione Lineare Semplice e Multipla 71

Figura 4.1. Modello di regressione lineare

casuale (quale la variabile ) e possibile definire le quantita media e varianza. La


prima e definita come la media degli n campioni osservati da una variabile aleatoria,
pesata dalla probabilita di osservare tale campione. Per una distribuzione discreta
di variabili aleatorie la media sara:

X
E(X) = Xi P (Xi ) (4.2)
i=

Per una variabile aleatoria a valori continui sara:


Z
E(X) = Xi P (Xi )dX (4.3)
i=

La varianza (associata ad una variabile aleatoria) e la misura della variabilita


dei valori assunti dalla variabile. Nello specifico, tale grandezza misura quanto essi
si discostino quadraticamente dal valore atteso. Essa e definita come il valore atteso
del quadrato della variabile aleatoria X a cui viene tolto il suo valor medio:

2 = E[(X E[X])2 ] (4.4)


Un basso valore di varianza indica che la maggior parte dei valori assunti da una
variabile aleatoria non differisce di molto rispetto al valore medio.
Per ultima, si definisce covarianza la misura della correlazione tra due variabili.
Una covarianza positiva indica una correlazione in cui, allaumentare di una delle
due variabili, aumenta anche laltra. Al contrario, una covarianza negativa indica il
diminuire di una variabile al decrementare dellaltra. Nel caso in cui due variabili
siano statisticamente indipendenti, il valore della covarianza risulta essere nullo.
Matematicamente essa e definita come la media del prodotto tra le varianze delle
due variabili aleatorie X e Y:

X,Y = E[(X E[X]) (Y E[Y ])] (4.5)


72 4 Analisi della Regressione

Tali quantita sono ben definite per ogni modello di regressione lineare. In parti-
colare si assume per ipotesi che, per n osservazioni (ossia i vettori xn delle variabili
indipendenti x1 , x2 , xn , costituiti da un solo elemento nel caso semplice), la quan-
tita n sia sempre, per ogni osservazione, una variabile aleatoria a media pari a zero
e varianza costante. Questultima ipotesi e nota come ipotesi di omoschedasticita.
In tale contesto, inoltre, lerrore n associato ad una osservazione e statisticamente
indipendente dallerrore associato ad ogni altra osservazione, ossia due n qualsiasi
hanno covarianza nulla. Cio e impensabile in uno scenario reale dove, spesso, ler-
rore e dovuto ad unimperfezione sistematica della misurazione, durante la quale
unosservazione puo essere funzione di unaltra.
La variabile rappresenta lerrore irriducibile al quale e sottoposto lesito della
previsione. Tale errore puo essere dovuto a problemi di misurazione degli attributi
in input non prevedibili. A causa della presenza di questultimo, i valori riportati
lungo gli assi cartesiani non cadranno sulla retta di partenza ma, invece, risulteranno
discostati da essa. Anche in presenza di misurazioni molto precise ci si aspetta una
certa quantita di errore e, dunque, i punti non formeranno una linea ben definita.
Nello scenario ideale appena descritto, tuttavia, a causa della media a valore nullo e
della varianza costante, e possibile risalire con facilita ai valori reali di output. Cio
non e sempre possibile.
Gli attributi indipendenti relativi a ogni osservazione, per ipotesi, devono esse-
re variabili deterministiche. Cio significa che tali valori saranno sempre ben noti.
Inoltre essi possono essere, a loro volta, restituiti come valore di uscita di ulteriori
modelli di regressione. Come conseguenza, si assume che le variabili indipenden-
ti siano anchesse statisticamente indipendenti tra di loro. Tutte queste assunzioni
sono importanti al fine del calcolo dei coefficienti di regressione . Nonostante sia
ancora possibile realizzare un modello di regressione lineare violando tali ipotesi, cio
potrebbe portare ad ottenere una stima inconsistente dei coefficienti di regressione.
Per le condizioni viste finora, la variabile dipendente sara funzione di una
variabile indipendente x1 e di una variabile aleatoria n :

yo = 1 x1 + 0 + n (4.6)
Cio rende yo , a sua volta, una variabile aleatoria. Data lipotesi di omoschedasti-
cita, il valore medio atteso di tali risultati e pari allequazione della retta 1 x1 + 0 .
Questultima e detta retta di regressione. Lobiettivo della regressione e quello di tro-
vare la retta che si avvicina maggiormente allinsieme dei dati forniti. Si tratta di un
problema di ottimizzazione in quanto, dopo aver determinato i coefficienti di regres-
sione, e possibile stimare il valore di un nuovo punto yo a partire dallosservazione
di misure piu semplici da ottenere.
La fase di addestramento del modello prevede, come per altri strumenti gia
visti, la definizione degli attributi caratteristici di questultimo; in tal caso si tratta
dei coefficienti di regressione , i quali verranno calcolati utilizzando un insieme di
dati storici gia in possesso di chi sta implementando il modello (ossia il training
dataset). Tali dati comprendono, tra i loro attributi, oltre alle variabili indipenden-
ti, anche i campioni delle variabili dipendenti, precedentemente ottenuti. I vettori
osservazione del training dataset includono, dunque, un ulteriore elemento, il qua-
le corrisponde al risultato del modello dati gli elementi indipendenti dello stesso
vettore:
4.2 Regressione Lineare Semplice e Multipla 73

xtraining = (yn , x1 , x2 , xm ) (4.7)


Attraverso tali valori e possibile determinare i coefficienti . E necessario ricavare
tali coefficienti in modo da esprimere al meglio la relazione funzionale tra variabili
dipendenti e indipendenti. Nel caso di un modello di regressione lineare semplice,
si parte considerando due variabili campione x1 e y1 . Il coefficiente che li lega deve
essere determinato attraverso il metodo dei minimi quadrati, proposto da Gauss.
Questo metodo tenta di individuare lequazione della retta tale da minimizzare
la somma dei quadrati delle distanze tra i dati campione e quelli della retta stessa.
Poiche alcune distanze sono positive ed altre negative, utilizzando la somma dei
quadrati, la retta risultante sara individuata alla distanza minima da ogni punto
campione. La Figura 4.2 illustra tale risultato.

Figura 4.2. Retta di regressione

Le stima dei parametri di regressione e ottenuta dai valori dei parametri cui
corrisponde la retta che interpola al meglio le osservazioni. Dato il punto (x1 , y1 ),
la differenza:

y1 (1 x1 + 0 ) = n (4.8)
rappresenta lerrore relativo allattributo x1 . Questo valore, definito scarto, e
anche la distanza dal punto campione alla retta di regressione. E necessario de-
terminare 1 e 1 minimizzando la somma degli scarti al quadrato di ogni punto
osservazione, ossia:
X
min [yn (1 x1 + 0 )]2 (4.9)
n=1
74 4 Analisi della Regressione

DallEquazione 4.9 e possibile, infine, ottenere i parametri di regressione. Si


dimostra, a tal fine, che il valore del parametro 1 e dato da:
xn ,yn
1 = (4.10)
x2n
Dove xn ,yn e la covarianza calcolata tra i valori della variabile dipendente e
quelli della variabile indipendente; inoltre, x2n rappresenta la media dei valori della
variabile indipendente. Dallo stesso procedimento deriva il parametro 0 , il quale
risulta essere combinazione lineare dei valori medi di xn e yn :

0 = E[yn ] + 1 E[xn ] (4.11)


Tutto cio e valido per il caso semplice.
Attraverso il metodo dei minimi quadrati, dunque, e possibile ottenere i coeffi-
cienti migliori, tali da ottenere i risultati piu fedeli alla realta rappresentata dal
modello (ossia i punti che ricadono sulla retta di regressione) a meno dellerrore .
Per illustrare un esempio [5] pratico di previsione tramite modello di regressione
lineare semplice, si suppone di voler prevedere gli effetti sulle vendite settimanali
di un supermercato in funzione dello spazio di esposizione. A tal fine viene raccolta
una serie di dati campione relativi a supermercati vicini; questi ultimi sono mostrati
nella Tabella 4.1.

Negozio Spazio di Esposizione (m2 ) Vendite Settimanali (euro)


1 583 2800
2 423 2600
3 602 2900
4 220 1800
5 282 1900
6 623 3100
7 312 2400
8 374 2600
9 412 2300
10 457 2700
11 150 1300
12 147 1600
Tabella 4.1. Dati campione

La relazione tra il totale delle vendite e lo spazio di esposizione puo essere


individuata attraverso una relazione lineare del tipo:

yo = 1 x1 + 0 + o (4.12)
Dove x1 rappresenta lo spazio di esposizione e y1 rappresenta il totale delle
vendite. Tali punti vengono riportati su un grafico cartesiano come mostrato in
Figura 4.3.
4.2 Regressione Lineare Semplice e Multipla 75

Figura 4.3. Punti campione

Calcolando media e varianza delle variabili campione, e possibile utilizzare tali


quantita per il calcolo dei coefficienti di regressione:

1 = 3, 2
(4.13)
0 = 1092, 88
Dopo aver determinato 1 e 0 sara, infine, possibile prevedere le vendite set-
timanali sostituendo il valore del nuovo spazio di esposizione nellequazione della
retta di regressione.
Ogni volta in cui, al fine di prevedere una determinata quantia, sono disponibili
piu variabili indipendenti si utilizza un modello di regressione lineare multiplo. Dati
n variabili di input, lequazione generale di un tale modello e:

yo = 1 x1 + 2 x2 + ... + nxn + 0 + n (4.14)


Per la formulazione di un modello lineare multiplo si utilizzano le stesse ipo-
tesi impiegate per il modello semplice. Il caso multiplo, infatti, rappresenta la ge-
neralizzazione di questultimo. I punti appartenenti allinsieme delle osservazioni,
possedendo piu di un attributo, dovranno essere rappresentati in uno spazio a n di-
mensioni. Una rappresentazione del genere non produrra piu una retta, ma delineera
un piano nello spazio n-dimensionale.
Utilizzando la notazione matriciale per rappresentare linsieme delle osservazioni,
il modello di regressione multipla sara dato da:

y1 x11 x12 ... x1m 0 1
y2 x21 x22 ... x2m 1 2

y3 x31 x32 ... x3m 2 3
Y = X =
= =
(4.15)
y
4 x x
41 42 ... x4m

3
4

... ... ... ... ... ... ...
yn xn1 xn2 ... xnm n n
Tale notazione permette di esprimere il vettore delle variabili indipendenti Y o
come:
76 4 Analisi della Regressione

Yo = X + (4.16)
Per stimare i parametri del modello di regressione multipla si utilizza il metodo
dei minimi quadrati. Questultimo consente di trovare il vettore che minimizza la
somma degli scarti al quadrato. Si dimostra come esso possa essere ottenuto dalla
relazione:

= (X X)1 X Y (4.17)

Dove X e la trasposta della matrice delle variabili indipendenti. Se il numero
di tali variabili e maggiore di due, lequazione del modello descrivera un iperpiano.
Nel caso in cui fosse presente una dipendenza lineare tra gli attributi indipendenti

il termine (X X) sara prossimo allo 0 e non sara possibile calcolare i coefficienti.
E interessante notare come i vari modelli di regressione lineare possano esse-
re utilizzati in un numero elevatissimo di casi diversi. Essi vengono impiegati per
prevedere quantita numeriche quali: temperature, prezzo e quantita di oggetti acqui-
stabili, intervalli di tempo e molti altri ancora. Come appena mostrato, realizzare
un modello lineare prevede la formulazione di alcune ipotesi restrittive sui dati
(tuttavia, il modello risulta essere semplice da realizzare e molto intuitivo).

4.3 Regressione Logistica


Si pone il problema di voler usare le conoscenze acquisite attraverso il modello di
regressione lineare come metodo di classificazione. A tal fine, e possibile adattare il
modello per risolvere le problematiche di un classificatore binario limitando i valori
di restituzione allintervallo [0, 1]. I valori di questo intervallo rappresenteranno
le classi, mentre un valore intermedio (in tal caso 0,5) rappresentera la soglia di
separazione tra le due.
Nonostante un simile modello possa costituire una buona approssimazione di un
classificatore binario, esso non trova applicazioni pratiche per una serie di problemi.
Innanzitutto, e impossibile limitare i valori di uscita di un modello di regressione
ad un intervallo limitato. Essi, quasi sicuramente, assumeranno valori esterni a
questultimo; tali punti non potranno essere classificati in quanto non appartenenti
ad alcuna categoria. Inoltre, un modello di regressione lineare tenta di minimizzare
lerrore quadratico medio (ossia la discrepanza media al quadrato fra i valori dei
dati osservati ed i valori dei dati stimati); cio e contrario agli scopi di un modello
di classificazione. Questultimo, infatti, mira ad individuare una retta che separa
realmente le varie osservazioni e non quella che minimizza lerrore di osservazione.
Questultima, in presenza di punti molto distanti dalla maggior parte degli elementi,
risulta essere vicina a tali punti (in modo da diminuire lerrore), ma una simile
rappresentazione non rispecchia la soglia di separazione tra gli elementi di due o
piu categorie.
Il modello di regressione logistica riesce ad ovviare a tali problemi. Attraverso
tale modello e, infatti, possibile ottenere un valore di output il quale ricade al-
linterno dellintervallo chiuso [0, 1]. Esso, inoltre, viene addestrato mediante un
4.3 Regressione Logistica 77

metodo che non mira a minimizzare lerrore quadratico medio e, dunque, si presta
maggiormente ad essere utilizzato come metodo di classificazione.
Quello logistico e un modello di regressione applicato nei casi in cui la variabile
dipendente y sia riconducibile ai valori 0 e 1 (si dice che essa e di tipo dicotomico, che
puo, cioe, assumere esclusivamente due valori). Il modello logistico viene applicato
a quei casi in cui le variabili di restituzione sono vero o falso, maschio o femmina,
vince o perde, sano o ammalato, etc.
I valori di ingresso sono, come nel caso del modello lineare, delle variabili indi-
pendenti; inoltre, anche in questo caso, una combinazione lineare di questultime
restituisce una variabile dipendente y. La differenza fondamentale, rispetto al mo-
dello lineare, consiste nel fatto che la variabile y viene usata come input per la
funzione sigmoidale:

ey ey ey 1
f (y) = = = (4.18)
ey + 1 ey ey + 1 1 + ey
Sostituendo lequazione lineare della variabile indipendente si ottiene:
1 1
f (y) = = (4.19)
1 + ey 1 + e 1 X0

Per y tendente a , il risultato della funzione sigmoidale tende a 0. Al con-


trario, per y tendente a +, il risultato tendera a 1. Per y pari a 0, inoltre, la
funzione vale 0,5. Tali caratteristiche rendono questa funzione la candidata ideale
per risolvere problemi di classificazione sfruttando le caratteristiche dei modelli di
regressione.
E bene notare come, a differenza dellequazione mostrata nel caso lineare, in
questo caso non appare il termine di errore . Cio e dovuto al fatto che, poiche il
risultato della funzione sigmoidale appartiene allintervallo [0, 1], la funzione stessa
rappresenta la caratteristica di casualita del modello. Una tale distribuzione, in
cui la variabile aleatoria (in questo caso il punto y) puo assumere solo due possibili
valori, viene definita distribuzione di Bernoulli. Il risultato del modello di regressione
logistica Yo rappresenta, dunque, la probabilita che il punto y ricada in una delle
due classi di uscita.
1
P (Y = 1|Yo ) = (4.20)
1+ e1 X0
LEquazione 4.20 mostra come la probabilita che il risultato del modello appar-
tenga alla classe 1, dopo aver osservato loutput Yo , coincida con il valore stesso di
Yo . Nel caso di un basso valore di Yo , luscita risultera appartenente alla classe 0. Il
valore medio atteso, in una distribuzione di Bernouilli, e rappresentato dal valore,
scelto in maniera arbitraria, del risultato con esito positivo: in questo caso Yo = 1.
Partendo dallEquazione 4.20, tramite delle semplici manipolazioni algebriche, e
possibile isolare la componente lineare, ossia il contributo delle variabili indipendenti
di ingresso:

P (Y = 1|Yo )
ln( ) = X + 0 (4.21)
1 P (Y = 1|Yo )
78 4 Analisi della Regressione

Il termine a sinistra dellEquazione 4.21 viene definito funzione logit. Si puo


osservare come largomento del logaritmo rappresenta il rapporto tra la probabilita
che il risultato appartenga alla Classe 1 e la probabilita che esso appartenga alla
Classe 0.
DallEquazione 4.21, inoltre, e possibile effettuare il calcolo dei coefficienti di
regressione , cos come e stato svolto per il modello di regressione lineare. La
relazione tra le variabili indipendenti ed il valore Yo = 1, tuttavia, e di tipo non
lineare. Cio impedisce il calcolo dei coefficienti di regressione, come e gia stato fatto.
Per calcolare tali coefficienti non sono necessarie tutte le ipotesi, sui dati in input,
indispensabili invece per il caso lineare. Per effettuare tale calcolo, per un modello
di regressione logistica, viene utilizzato il criterio di massima verosimiglianza. Al
contrario del metodo dei minimi quadrati, il quale tende a minimizzare la somma al
quadrato dei termini di errore, tale criterio massimizza la probabilita di trovare una
determinata osservazione come risultato di un modello; tale probabilita e definita
come verosimiglianza. In particolare, la verosimiglianza, relativa allappartenenza
alla classe 1, e data da: P (Y = 1|Yo ). La verosimiglianza per la classe 0 vale 1
P (Y = 1|Yo ). La probabilita dellintersezione di tutti gli eventi, ossia la probabilita
di osservare le osservazioni date, sara data dal prodotto delle varia probabilita:
Y Y
P (yn = 1|xon ) 1 P (ym = 1|xom ) (4.22)
Il criterio per individuare i coefficienti di regressione consiste nel massimizzare
tale probabilita di ottenere un particolare insieme di osservazioni. Utilizzando algo-
ritmi di stima iterativa per equazioni non lineari, sara possibile determinare i valori
di 0 , 1 , ... , n tali da rendere massima la probabilita individuata dallEquazione
4.22.
I contesti applicativi del modello di regressione logistica sono molto numerosi. In
economia, ad esempio, esso viene impiegato per analizzare gli effetti degli interventi
economici sugli operatori di mercato: lazienda fallisce (Y=1) o meno (Y=0) dopo
aver ricevuto una sovvenzione, il disoccupato trova lavoro (Y=1) o no (Y=0) dopo
aver seguito un corso di formazione.
Nellambito del marketing viene usato per evidenziare lincisivita delle campa-
gne pubblicitarie sulla propensione allacquisto del consumatore: il cliente acqui-
sta (Y=1) o non acquista (Y=0) un dato prodotto in seguito ad una campagna
promozionale.
In medicina esso viene usato per studiare leffetto di una cura sullo stato di salute
del paziente: il paziente sottoposto ad una particolare cura farmacologica reagisce
positivamente (Y=1) o meno (Y=0).
In biologia viene adottato per evidenziare le determinanti delle reazioni delle
cellule sottoposte ad un trattamento: le cellule malate si rigenerano (Y=1) oppure
no (Y=0) dopo essere state sottoposte ad un particolare trattamento.
In botanica viene utilizzato per studiare leffetto fertilizzante delle sostanze uti-
lizzate sui semi oggetto di studio: una pianta resiste alle gelate (Y=1) oppure no
(Y=0) in seguito ad un intervento di modifica genetica.
5
Tool di Analisi Predittiva

Dopo aver esaminato i modelli matematici che stanno alla base dei processi di predi-
zione, questo capitolo illustra gli strumenti software che implementano tali modelli.
Sono innumerevoli i tool che contengono metodi che prevedono algoritmi che permet-
tono di ottenere i modelli precedentemente esaminati. In questo capitolo verranno
esaminati alcuni di questi strumenti, tra quelli di uso piu comune.

5.1 Caratteristiche Generali

Lo sviluppo di nuove tecnologie allinterno del Web, ed il conseguente incremento


dei vari flussi di informazione, in particolar modo dei Big Data, hanno determinato
nuove possibilita offerte dallanalisi dei dati. Ultimamente, sempre piu organizza-
zioni tentano di sfruttare tali potenzialita, utilizzando tecniche di data mining e
machine learning per realizzare previsioni. Implementare un modello di analisi pre-
dittiva, tuttavia, richiede conoscenze specifiche e, per tale motivo, non e sempre una
scelta possibile a tutti. Per venire incontro a simili richieste sono stati introdotti de-
gli strumenti software, facilmente accessibili, i quali danno a chiunque la possibilita
di realizzare modelli di previsione. In tal modo le varie organizzazioni possono avva-
lersi con maggior semplicita dei suddetti modelli ed integrarli nelle varie operazioni
a supporto delle decisioni e nei propri processi interni.
I tool di analisi predittiva sono stati introdotti al fine di fornire a chiunque la
possibilita di realizzare previsioni partendo da dati di qualunque genere. Tali stru-
menti vengono realizzati in modo da rimuovere la complessita matematica intrinseca
in ogni processo di generazione dei modelli. Essi, inoltre, forniscono uninterfaccia
grafica per la scelta e la parametrizzazione del modello migliore ai vari scopi. Alcuni
strumenti includono, inoltre, determinati metodi per il riconoscimento automatico
dei dati e per il supporto nella scelta del modello migliore al fine di supportarli.
Un qualsiasi strumento di previsione, tuttavia, risulta essere di poca utilita senza
unoperazione di valutazione effettuata sulle variabili restituite. Ogni tool di pre-
dizione, dunque, include strumenti che permettono di visualizzare tali risultati in
modo immediatamente comprensibile. Sara possibile illustrare i risultati attraverso
luso di grafici e tabelle e, in tal modo, sara possibile valutarli e trarre conclusioni
80 5 Tool di Analisi Predittiva

sulla reale efficacia del modello senza la necessita di possedere competenze specifiche
per la valutazione.
Il numero di tool disponibili e liberamente accessibili aumenta parallelamente
alle richieste di analisi predittiva come strumento di supporto. Tali mezzi si diffe-
renziano tra di loro per il grado di complessita con il quale affrontano il problema
della creazione dei modelli. Alcuni contengono opzioni limitate e favoriscono luso da
parte di utenti meno esperti; altri permettono di realizzare modelli particolarmente
complessi, ma necessitano di maggiori conoscenze da parte dellutente. E possibile
citare numerosi tool i quali possono essere piu o meno sfruttati dalle piu importanti
compagnie; nelle prossime sezioni verranno approfonditi gli aspetti salienti di quelli
maggiormente utilizzati e di maggior successo.

5.2 R
Tra i tanti strumenti per lanalisi predittiva, e impossibile non citare R. Si tratta
di un ambiente di sviluppo open-source integrato con un linguaggio di program-
mazione per utilizzo specifico nel contesto del calcolo statistico. Il linguaggio di
programmazione R (Figura 5.1) e largamente utilizzato ai fini dellanalisi statistica
e del data mining. Per estensione potra, dunque, essere utilizzato ai fini dellanalisi
predittiva.

Figura 5.1. Il logo di R

Le librerie di R contengono una vasta collezione di metodi statistici e grafici per


la risoluzione e la rappresentazione di diversi problemi. Tali metodi permettono la
creazione di modelli lineari e non lineari per affrontare problemi di statistica classica,
analisi di dati in successione temporale, problemi di clustering e classificazione, e
molti altri ancora. Ognuno dei metodi disponibili e realizzato con lo stesso linguaggio
di programmazione nativo il quale caratterizza lambiente R. E possibile, tuttavia,
collegare a run-time i metodi di R con metodi scritti in linguaggi di programmazione
5.2 R 81

quali: C++, Java, .NET, Python; cio risulta particolarmente utile quando si devono
affrontare problemi che richiedono un elevato onere computazionale. Uno dei punti
di forza di R e la possibilita di mostrare i risultati delle varie implementazioni
attraverso luso di grafici ed opportuni simboli matematici.
A differenza di molti altri tool commerciali specifici (i quali semplificano la scelta
del modello migliore in base al particolare tipo di problema), R permette, sempli-
cemente, di richiamare una o piu funzioni e di utilizzarle con i dati a disposizione.
Esso rappresenta, quindi, unottima base di partenza per familiarizzare con i vari
algoritmi. Il linguaggio di programmazione R e un linguaggio interpretato; pertanto,
in esso, non esiste un compilatore e il codice sorgente viene tradotto da un interprete
in linguaggio macchina al momento dellesecuzione. Linterprete e quel software che
allavvio del programma, riceve unistruzione alla volta (istruzioni scritte nel lin-
guaggio di alto livello, in questo caso R) e la traduce in linguaggio macchina prima
di passarla alla CPU. Solitamente tale processo provoca un rallentamento generale
del software. Tale approccio richiede piu memoria ed e meno veloce, a causa del-
loverhead introdotto dallinterprete stesso. Nel caso di R cio non rappresenta un
problema, in quanto le operazioni svolte durante lesecuzione dei metodi non richie-
dono un numero eccessivo di risorse computazionali, a meno di avere a che fare con
grosse quantita di dati (in tal caso e possibile ridurre il peso della computazione
assegnando alcuni compiti ad altri programmi o ricorrendo alla programmazione
distribuita).
La sintassi di R prevede lassegnazione delle variabili tramite luso delloperatore
< , la seguente istruzione assegna la stringa hello, world! alla variabile x e la
stampa:

> x <- hello, world!

hello, world!
 
In aggiunta alloperatore di assegnamento, come per altri linguaggi di programma-
zione, esistono diversi altri operatori. Essi possono essere:
Aritmetici (+, , , /) : consentono di svolgere operazioni e assegnare il risultato
direttamente ad una variabile:

> raggio <- 21.35

> p.greco <- 3.14159265358979

> circonferenza <- raggio * 2 * p.greco

> area <- p.greco * raggio^2


 
Logici: lavorano su dati booleani, ovvero variabili che possono assumere solo i
valori vero e falso.

< Minore
<= Minore o Uguale
> Maggiore
>= Maggiore o uguale
== Uguale
! = Diverso
& Intersezione
82 5 Tool di Analisi Predittiva

| Unione
! Negazione
Di seguito vengono riportati alcuni esempi [3] della sintassi di tali operatori (il
simbolo # precede un commento in R):

> x<- 3:8; #Genera una sequenza di valori (da 3 a 8)

> x > 5; #Restituisce true per i valori della


# sequenza maggiori di 5, false per gli altri

> x <= 8 #Restituisce true per i valori della


# sequenza minori o uguali a 8, false per gli altri

> x != 2; #Restituisce true per i valori della


# sequenza diversi da 2, false per gli altri
 
Come in molti altri linguaggi interpretati, non e necessario dichiarare il tipo
da assegnare a una variabile prima di utilizzarla, ma sara compito dellinterprete
svolgere tale operazione. Una variabile puo essere di tipo numerico (integer, float,
double), alfanumerico (string), booleano (TRUE, FALSE).
La memoria necessaria, relativa a tali variabili, viene allocata durante lese-
cuzione (e una caratteristica dei linguaggi interpretati). Il linguaggio prevede un
operatore di casting as.nuovo tipo(variabile). E possibile, inoltre, definire col-
lezioni logiche di tali dati per potervi accedere in modo efficiente, ossia le strutture
dati. Queste ultime appaiono indispensabili nelle situazioni in cui e necessario gesti-
re milioni di dati appartenenti ad una determinata categoria, ed ottenere un modo
rapido per svolgere operazioni su di essi. Esse comprendono:
Vettori: insieme di oggetti dello stesso tipo. Possono essere assegnati ad una
variabile e possono contenere valori ben definiti, o appartenenti ad un dato
intervallo. Essi vengono definiti tramite il seguente comando:

> x <- c(1, 2, 3); #Crea un vettore e lo assegna alla variabile x

> x[1]; #Selezione di un singolo elemento del vettore


 
Matrici: tabelle formate da righe e colonne. Possono essere considerate come dei
vettori a due dimensioni:

> m <- matrix (x, nrow=4) #Genera una matrice con 4
# righe usando gli elementi
# del vettore x

> m[1,3] #Seleziona gli el. I riga e III colonna


 
Fattori: sono vettori utilizzati per classificare o suddividere in classi gli ele-
menti di un altro vettore di pari lunghezza. Un esempio classico e quello della
suddivisione di una serie di misure eseguite in due siti, ad esempio A eB.
Per trasformare un vettore, contenente le etichette dei livelli, in fattore si usa:

> dati <- c (2,3,7,31,38,36)

> fattore <- factor ( c("A","A","B","B","B"))


 
In tal modo gli elementi del vettore c (associati alla variabile dati) verranno
collocati rispettivamente nelle classi A e B.
5.2 R 83

Data Frame: possono essere considerati come matrici dove ogni colonna puo
avere un tipo di dato diverso dalle altre. Rappresentano il modo piu pratico
per gestire tabelle di dati. E possibile specificare un nome per ciascuna colonna;
nel caso in cui venga omesso il nome viene utilizzato quello delloggetto che
costituisce la colonna. Un data frame puo essere realizzato come una matrice le
cui colonne sono costituite da vettori precedentemente definiti. Un esempio di
Data Frame e riportato nel seguente listato:

> specie <- c (2,3,7,8,9,35,37,31,38,36)

> individui <- c (321,654,765,865,964,353,372,315,385)

> dataframe <- data.frame (specie, individui)


 

In R, in generale, e possibile raggruppare insiemi di piu comandi allinterno di


parentesi graffe. Cio permette di realizzare istruzioni nidificate e determinare una ge-
rarchia dellesecuzione del programma. Come in molti linguaggi di programmazione,
sono presenti alcune strutture di controllo. Tra queste citiamo:
if: permette lesecuzione di espressione2 se e solo se espressione1 restituisce
come risultato TRUE; in caso contrario, se e presente listruzione else viene
restituito come risultato espressione3.

if (espressione1) espressione2 else espressione3
 
for: per ogni elemento di vettore assegna tale elemento alla variabile t e la usa
in espressione2.

for (nome_variabile in vettore) espressione2
 
while: continua ad eseguire espressione fino a quando condizione rimane
vera.

while (condizione) espressione
 

Oltre la possibita di definire parti di codice indipendenti, R offre lopportunita


di definire funzioni allinterno del codice. In qualunque momento e possibile scrivere
una funzione (la quale accetta dei parametri in ingresso e restituisce dati di tipo
determinato) ed assegnare ad essa un nome per poter essere riutilizzata. Alcune
funzioni, come quelle che implementano i modelli di predizione, sono gia realizzate
e sono disponibili agli sviluppatori; esse sono contenute allinterno delle librerie
dellambiente. Una funzione puo essere richiamata tramite il nome della stessa,
seguito dai parametri che necessita. Alcuni esempi di funzioni di uso generale gia
definite sono: mean(x) (restituisce la media degli elementi del vettore x), var(x)
(restituisce la varianza degli elementi del vettore x), max(x) (restituisce il massimo
tra gli elementi del vettore x), sum(x) (restituisce la somma degli elementi del
vettore x), prod(x) (restituisce il prodotto degli elementi del vettore x). Una delle
funzioni di maggiore utilizzo e la funzione plot(X,Y). Questultima consente, dati
due vettori X e Y, di rappresentare tali vettori su un grafico cartesiano e, quindi, di
fornire in output un illustrazione grafica degli stessi.
84 5 Tool di Analisi Predittiva

Al fine di effettuare previsioni, il linguaggio R offre una serie di funzioni le qua-


li permettono di realizzare i modelli esaminati nei precedenti capitoli. Per svolgere
operazioni di prova su tali metodi e possibile avvalersi di diversi dataset su vari repo-
sitory disponibili sul web. La funzione autos <- read.csv(URL repository)
permette di importare una collezione di dati generici dal web. Generalmente si trat-
ta di un file contenente dati in formato data frame, in cui ogni riga (ossia, ogni
tupla) corrisponde ad unistanza dei dati ed ogni colonna rappresenta un attributo.
Prima di poter utilizzare i dati e necessario svolgere alcune operazioni su di essi
al fine di prepararli. Tali procedimenti sono necessari per strutturare la collezione
dei dati e permettere allalgoritmo di riconoscerli (in base alle specifiche di input
richieste da ciascun metodo) ed utilizzarli per costruire il modello. Queste operazioni
comprendono: casting su alcuni attributi, rinominazione delle colonne (attraverso
la funzione colnames(tupla)), sostituzione dei valori mancanti, eliminazione di
attributi superflui, e molte altre in funzione delle varie necessita. La Figura 5.2
mostra un insieme di dati, pronti per lutilizzo, visualizzati attraverso lambiente
grafico di sviluppo RStudio [7, pag.259]. Essi contengono gli attributi relativi a un
insieme di automobili; ognuna delle istanze comprende 9 attributi tra cui: cilindrata,
anno di immatricolazione, peso, ed altri; e anche presente un attributo (ossia il nome
del modello dellautomobile) che funge da label e che potra potra essere impiegato
come variabile di restituzione del modello.

Figura 5.2. Lesempio di un dataset utilizzato da R

Dopo aver adeguatamente preparato il dataset per lelaborazione, e consigliabile


suddividerlo in due gruppi: training dataset e test dataset. Lo scopo e quello di usare
il primo gruppo per addestrare il modello e, in seguito, per verificarne lefficacia
attraverso il test dataset. Una suddivisione in rapporto 70/30 e sufficiente per fornire
a ciascun gruppo un sufficiente contenuto di dati. Ciascun gruppo dovra essere
rappresentativo dellintero dataset; un tipico errore consiste nel suddividere i dati in
modo che alcuni elementi, con determinate caratteristiche, ricadano esclusivamente
allinterno di uno dei due sottogruppi. Tale situazione e da evitare in quanto il
modello non sarebbe capace di comportarsi in maniera adeguata in presenza di dati
mai visti. Il metodo migliore consiste nel suddividere la collezione di dati in maniera
completamente casuale. La funzione sample(x, size) interviene a tale scopo. Essa
preleva gli indici, relativi ad un numero di campioni pari a size delle tuple del data
frame x (restituite dalla funzione nrow(x)), in maniera casuale.
5.2 R 85


> training_indices <- sample(nrow(x) , trainSize)

> trainSet <- x[training_indices, ]

> testSet <- x[-training_indices, ]


 
Gli indici delle tuple prelevate dalla struttura dati x vengono memorizzati
nella variabile training indices (la quale, in questo modo, diventa un vettore
di indici). Tali osservazioni verranno, infine, assegnate alle variabile trainSet; le
restanti, invece, verranno assegnate alla variabile testSet.
Una volta suddivisi i dati, e possibile passare alla fase di addestramento del
modello. Per mostrare un esempio di uno degli algoritmi offerti da R, il seguen-
te codice mostra la sintassi per la creazione di un modello di regressione lineare
attraverso le librerie incluse in R:

> model <- lm(formula=trainSet$label ~ . , data=trainSet)
 
Tra i parametri in ingresso richiesti da tale metodo, la variabile formula indica
lattributo, il quale sara utilizzato come variabile di output del modello di regres-
sione lineare. Il parametro data, inoltre, indichera il dataset dal quale verranno
prelevate le osservazioni. Il modello verra automaticamente generato ed assegnato
alla variabile model.
Ultimato il modello, sara possibile effettuare previsioni, mediante questultimo,
utilizzando la seguente sintassi:

> predictions <- predict(model, testSet, interval="predict", level=.95)
 
Attraverso il parametro level sara possibile impostare il livello di confidenza
(in questo caso 0.95%). I risultati di tale operazione sono mostrati in Figura 5.3.
La colonna fit contiene i risultati del modello per ogni osservazione (ossia, i
punti che formano la retta di regressione); le colonne lwr e upr mostrano lintervallo
di valori dentro il quale puo variare il risultato della predizione (tenendo conto
dellerrore). Un maggiore livello di confidenza determina un intervallo maggiore, e
viceversa.
Nel caso di un procedimento supervisionato, ossia in cui si hanno a disposizione
le variabili di output nel test dataset, e possibile confrontare tali valori con quelli
predetti. In questo modo e possibile valutare laffidabilita del modello.

> cbind(testSet$mpg, predictions[,1])
 
Il metodo cbind() affianca la colonna label del test dataset alla colonna con i
risultati della previsione. Se essi coincidono per la maggior parte delle osservazioni
e possibile utilizzare il metodo predict() con nuovi dati per realizzare previsioni.
In caso contrario sara necessario incrementare la precisione del modello attraverso
un piu voluminoso training dataset.
Il punto di forza di R e la possibilita adattarsi a qualsiasi esigenza [14], in quanto,
allinterno delle proprie librerie, contiene metodi per implementare qualsiasi model-
lo predittivo. R, inoltre, offre la possibilita di lavorare partendo da dati grezzi, in
86 5 Tool di Analisi Predittiva

Figura 5.3. Risultati della funzione predict()

qualsiasi formato essi si trovino. In questo modo e possibile adattarli allutilizzo


con ogni possibile modello. Cio risulta essere particolarmente vantaggioso per chi
si avvicina per la prima volta al mondo dellanalisi predittiva e, non avendo lespe-
rienza necessaria alla scelta e allutilizzo di tool maggiormente specifici, non riesce
ad individuare subito il modello migliore per ogni situazione. Tra i metodi contenuti
nelle varie librerie per implementare i modelli visti nei precedenti capitoli, vi sono i
metodi nnet(), svm(), tree(), per la creazione di una rete neurale, di una support
vector machine, e di un albero di decisione rispettivamente. La Figura 5.4 mostra
i risultati restituiti da un albero di decisione [7, pag.272], visualizzati attraverso il
metodo plot().
Sono, infine, disponibili metodi e procedure per limplementazione di modelli
probabilistici e di recommendation system. E possibile trovare sul Web la documen-
tazione di ciascuno di tali metodi e dei parametri richiesti per limplementazione
dei modelli.

5.3 Weka
Acronimo di Waikato Environment for Knowledge Analysis, Weka (Figura 5.5) e
un ambiente software open-source per lapprendimento automatico, sviluppato nel-
luniversita di Waikato in Nuova Zelanda. Si tratta di una raccolta di applicazioni,
scritte completamente in Java, le quali implementano procedure di data mining e
5.3 Weka 87

Figura 5.4. Albero di decisione realizzato tramite R

machine learning. Tra queste ultime e possibile trovare algoritmi di classificazione,


regressione, clustering ed altri per la visualizzazione dei risultati; tale strumento si
presta, dunque, alla realizzazione di modelli per analisi predittiva.

Figura 5.5. Il logo di Weka

Weka e uno strumento che presenta diversi vantaggi. Innanzitutto, esso e open-
source, in quanto rilasciato con licenza GNU General Public License. In secondo
luogo, poiche interamente implementato in Java, puo essere eseguito su qualunque
sistema operativo supporti la Java Virtual Machine; per tale motivo esso gode di
una elevata portabilita. Ulteriore vantaggio di tale piattaforma e la quantita di
metodi implementati utili sia per il pre-processing dei dati, sia per la costruzione
dei modelli. Essa supporta tutti i piu comuni strumenti di data mining e machine
learning. Questultimi possono essere richiamati con praticita attraverso linterfaccia
grafica inclusa allinterno del software. Weka, infine, ha la capacita di interfacciarsi
con qualsiasi DBMS, purche esistano i driver disponibili per la comunicazione con
Java. Tale potenzialita permette a Weka di avvalersi dei risultati di una query SQL
per ottenere i dati necessari al modello.
Linterfaccia del software, mostrata nella Figura 5.6, e chiamata Explorer. Essa
e costituita da una serie di schede le quali fungono da pannello di controllo per le
varie funzionalita.
Dalla scheda Preprocess e possibile accedere a diverse funzioni per il caricamento
e la visualizzazione dei vari dataset con cui costruire e testare il modello. In Weka
e possibile lavorare con un solo insieme di dati alla volta. Questi ultimi, in genere,
vengono importati da un database, oppure, sono contenuti in un file in formato .CSV
88 5 Tool di Analisi Predittiva

Figura 5.6. Linterfaccia Explorer di Weka

(Comma-Separated Values - si tratta di un formato basato su file di testo utilizzato


per limportazione ed esportazione di una tabella di dati). Dalla stessa scheda e
possibile svolgere operazioni di pre-processamento dei dati attraverso degli algoritmi
di filtraggio predefiniti, tramite i quali e possibile trasformare i dati cancellando o
modificando le varie istanze, al fine di rimuovere quelle che costituiscono semplice
rumore. Per ognuna di tali istanze e, inoltre, possibile cancellare o modificare i
diversi attributi che le costituiscono oppure, se necessario, aggiungerne di nuovi.
Allinterno della scheda Classify, come mostrato in Figura 5.7, sono contenuti
gli algoritmi di classificazione e di regressione.
Da un apposito menu e possibile selezionare lo strumento da utilizzare per analiz-
zare il dataset precedentemente elaborato. Viene data la possibilita di implementare
il modello attraverso il training dataset, oppure attraverso il test dataset. Questul-
timo verra prodotto automaticamente dopo pochi secondi dal momento in cui e
stato selezionato. Il menu Result List contiene il risultato dellalgoritmo, ossia, il
modello appena creato. Weka tiene traccia dei modelli precedentemente realizzati
in modo da poter effettuare dei confronti sui risultati. Il menu Classifier Output,
infine, contiene i risultati dellelaborazione. Ciascun classificatore contiene una se-
rie di opzioni le quali possono essere selezionate per modificare la costruzione del
modello in base alle varie esigenze.
La scheda Cluster contiene vari algoritmi di clustering come, ad esempio, diverse
implementazioni dellalgoritmo k-means. I modelli vengono gestiti, anche in questo
caso, come visto per la categoria di classificazione. Una volta creato il modello esso
viene salvato in un file con estensione .model. Tali modelli potranno essere modi-
ficati in seguito anche attraverso luso dellambiente di sviluppo di R, utilizzando i
metodi della libreria RWeka.
Una volta generato il modello sara possibile sfruttarlo per lanalisi di nuove
5.3 Weka 89

Figura 5.7. Alcuni dei modelli di classificazione disponibili in Weka

istanze di dati. Uninteressante opzione e quella che consente di esportare la classe


che rappresenta il modello (in un file di formato .Jar) ed utilizzarla allinterno
di un programma scritto in Java, indipendentemente dallinterfaccia di Weka. Tale
opzione offre lopportunita di implementare un modello di predizione ovunque se ne
abbia la necessita e rappresenta una delle funzionalita di maggior successo di Weka.
Le schede Associate, Select Attribute e Visualize, infine, contengono diversi stru-
menti tipici delle procedure di data mining e altri per la visualizzazione grafica dei
risultati. Questi ultimi metodi permettono di generare un grafico di dispersione,
ossia un tipo di grafico in cui due variabili di un set di dati sono riportate su uno
spazio cartesiano.
Ulteriore vantaggio offerto da Weka e la possibilita di utilizzare gli algoritmi
disponibili con grosse collezioni di dati, ossia, con i Big Data. Insieme alle piu
recenti versioni di Weka (in particolare, quelle che vanno dalla Versione 3.7 in poi)
sono stati introdotti alcuni package che offrono la possibilita di realizzare una rete
di calcolo distribuito. Tra questi, il package distributedWekaBase contiene diverse
funzioni le quali implementano le metodologie di map e reduce, ma che non sono
vincolate ad alcuna particolare piattaforma. Il package distributedWekaHadoop,
90 5 Tool di Analisi Predittiva

inoltre, consente di utilizzare modelli realizzati tramite Weka in ambiente distribuito


per mezzo di un interfaccia con Hadoop.

5.4 Orange
Si tratta di un software open-source per la realizzazione di modelli di data mining
e machine learning scritto in Python (Figura 5.8). Orange e un tool di programma-
zione visuale; esso offre un linguaggio che consente la programmazione tramite la
manipolazione grafica degli elementi e non tramite sintassi scritta.

Figura 5.8. Il logo di Orange

Tale caratteristica lo rende uno strumento particolarmente indicato per colo-


ro i quali non hanno familiarita con la programmazione, ma hanno comunque la
necessita di utilizzare uno strumento di predizione.
Orange fornisce una serie di strumenti utili per compiere diverse operazioni sui
dati. Essi vengono definiti widget e vengono impiegati per la visualizzazione ed il
pre-processing dei dati e per la creazione di modelli di previsione. Tali strumenti
possono essere utilizzati con modalita drag and drop, quindi trascinati allinterno
dellarea di lavoro e collegati tra di loro per formare un workflow, ossia, uno schema
che mostra lordine delle operazioni da effettuare. Linterfaccia di Orange e mostrata
in Figura 5.9. Ogni widget compie unoperazione specifica sui dati e comunica con
altri widget scambiando informazioni attraverso un canale di comunicazione. Per
ciascuno di essi, inoltre, sono disponibili diverse opzioni.
Alcuni widget vengono impiegati al fine di prelevare i dati da diverse fonti come,
ad esempio, quelli contenuti nei file sul disco. E questo il caso dellelemento File.
Tramite una connessione tra elementi i dati vengono trasferiti da un widget allal-
tro. In questo modo e possibile trasferire le informazioni appena prelevate ai widget
Data Table e Scatter Plot. Il primo visualizza i dati prelevati sotto forma tabulare;
il secondo crea uno spazio a due dimensioni allinterno del quale e possibile rap-
presentare il dataset in memoria, dopo aver indicato gli attributi da inserire lungo
lasse delle ascisse e lungo quello delle ordinate.
5.4 Orange 91

Figura 5.9. Linterfaccia grafica di Orange

Tra le varie categorie di widget, vengono messi a disposizione tutti quelli ne-
cessari per svolgere la maggior parte dei piu comuni processi per lanalisi dei dati.
Tra questi, e possibile individuare strumenti quali: Naive Bayes, Logistic Regression,
Neural Network, k Nearest Neighbours, Classification Tree, SVM, Linear Regression,
e molti altri. Ognuno di essi ha lo scopo di costruire il corrispondente modello di
predizione utilizzando i dati messi a disposizione attraverso le connessioni. I da-
ti possono essere suddivisi in training e test dataset, mediante lo strumento Data
Sampler, al fine di valutare lefficacia del modello.
Dopo aver realizzato questultimo, infine, e possibile effettuare previsioni in tem-
po reale sfruttando loggetto Predictions, il quale accetta in ingresso i dati ed il mo-
dello precedentemente realizzato e restituisce i risultati. I parametri dei vari modelli,
come anche gli attributi di maggiore interesse, possono essere definiti allinterno di
ogni widget attraverso un menu grafico. Il programma permette la connessione tra
due elementi per i quali loutput del primo e ammissibile come input per il secondo;
inoltre, impedisce la connessione tra elementi per i quali non e possibile interagire.
In questo modo lo sviluppo di modelli di previsione risulta essere particolarmente
efficiente ed intuitivo. I risultati di ogni previsione possono, inoltre, essere visualiz-
zati per una rapida analisi visiva utilizzando strumenti per la visualizzazione, quali
Image Viewer, Go Browser, Scatter Plot, ed altri.
Le caratteristiche appena citate mettono in evidenza il principale punto di forza
di Orange, ossia la praticita. Mediante luso della programmazione visuale e possi-
bile realizzare previsioni, sfruttando i dati in possesso, in poco tempo ed in maniera
intuitiva. Tra le possibilita offerte vi e anche quella di poter modificare il codice
sorgente Python di ciascun widget. In tal modo, possedendo le capacita di pro-
grammazione necessarie, e possibile modificare totalmente le procedure di default
del programma, sfruttandone a pieno le capacita. Per una maggiore accessibilita,
vengono, inoltre, rese disponibili alcune estensioni, le quali contengono procedure
gia definite per realizzare previsioni in ambito medico, economico e scientifico.
92 5 Tool di Analisi Predittiva

5.5 Analisi Predittiva Basata sul Cloud Computing


Grazie alla diffusione dei vari tool, lanalisi predittiva, negli ultimi anni, e diventata
uno degli argomenti di ricerca di maggior interesse da parte delle compagnie. Il
diffondersi dei Big Data, inoltre, ha determinato la necessita di espandere le proprie
risorse hardware per beneficiare dei vantaggi offerti dallanalisi di tali informazioni.
Purtroppo, cio non e sempre possibile per la maggior parte delle compagnie le quali
non hanno la capacita di analizzare grossi flussi di dati.
Per venire incontro alle esigenze computazionali richieste dallanalisi dei Big
Data le compagnie hanno modificato lobiettivo dei loro investimenti dallacquisto
di nuove risorse hardware e software al mondo dei servizi basati sul cloud [2].
Con il termine cloud computing si indica quel paradigma di erogazione di
risorse informatiche (come larchiviazione, lelaborazione o la trasmissione di da-
ti) caratterizzato dalla disponibilita di tali risorse, su richiesta, attraverso Internet.
Sfruttando la tecnologia del cloud computing, gli utenti collegati ad un cloud pro-
vider (ossia, un fornitore di servizi attraverso Internet) possono usufruire di risor-
se quali unita di elaborazione e memorie di massa di macchine remote. Uno dei
principali vantaggi di tale tecnologia consiste nel poter accedere alle risorse remote
evitando ostacoli quali interfacce e protocolli di rete sconosciuti; e, cos, possibile ac-
cedere ad ogni servizio anche tramite un semplice Internet browser. Esistono diverse
opportunita offerte dallinterazione tra lanalisi predittiva ed il cloud computing.
Implementare strumenti di previsione attraverso il cloud computing significa, per
una compagnia, acquistare piattaforme software, dati, applicazioni ed infrastruttu-
re come se fossero un servizio offerto dal web. Cio permette di investire su quello
che realmente viene utilizzato, incrementando o diminuendo le risorse in funzione
del carico computazionale richiesto. Gli strumenti necessari per affrontare le varie
problematiche vengono scelti dinamicamente in base al progetto attuale. Servendosi
dei servizi in rete non e necessario concentrare tutti i propri sforzi su uno specifico
tool. Lutente avra, infatti, la possibilita di scegliere il migliore tra i tool offerti dai
vari servizi per soddisfare, di volta in volta, le proprie necessita. Tali servizi vengono
offerti come fossero scatole nere (black-box ); lutente non dovra conoscere il fun-
zionamento di ogni metodo: sara sufficiente attivare il metodo ed il sistema restituira
il risultato senza che egli debba necessariamente sapere quale tool ha implementato
lalgoritmo impiegato. I servizi basati sul cloud, inoltre, permettono lintegrazione
di strumenti di terze parti. Questultima possibilita consente, ad esempio, di uti-
lizzare strumenti quali Apache Mahout su nodi distribuiti situati in rete, senza la
necessita di dover possedere reti di calcolatori costosi.
Laccesso ai Big Data costituisce un ulteriore vantaggio offerto dal cloud compu-
ting. Molte sorgenti dei Big Data, infatti, sono disponibili esclusivamente allinterno
del cloud. Cio permette di usufruire di tali informazioni senza la necessita di grosse
banche dati, indispensabili per contenerle. Una simile soluzione incrementa la ve-
locita con cui i vari modelli di previsione possono essere creati; cio garantisce una
maggiore possibilita di testing del modello stesso da parte dellutente.
Esistono diverse soluzioni offerte per coniugare le potenzialita dellanalisi pre-
dittiva con quelle del cloud computing. Tra queste, la piattaforma Microsoft Azure
puo offrire un supporto per lo sviluppo di modelli di predizione. Azure permette lo
sviluppo di applicazioni e servizi allinterno di una rete di data center; essa inoltre,
5.5 Analisi Predittiva Basata sul Cloud Computing 93

supporta diversi linguaggi di programmazione. Allinterno di Azure sono contenute


diverse soluzioni quali HDInsight ed Azure Machine Learning. Il primo rappresenta
la distribuzione proprietaria di Hadoop appartenente a Microsoft, basata su nodi
distribuiti allinterno del cloud. Esso fornisce delle interfacce capaci di creare cluster
Hadoop, di elaborare Big Data, di sviluppare soluzioni tramite dati di streaming o
cronologici e di analizzare i risultati. Si tratta della soluzione di Microsoft al pro-
blema dei Big Data. Esso comprende strumenti utili allanalisi dei dati quali Hive e
Mahout.
Il secondo strumento permette di costruire e testare direttamente una soluzione
di analisi predittiva. Una volta sviluppata, sara possibile pubblicare tale soluzione
come metodo il quale potra essere richiamato localmente mediante delle Web API
(ossia, un interfaccia per applicazioni distribuite basata sul protocollo di comunica-
zione REST, accessibile anche dal browser). Attraverso interfacce testuali e grafiche,
come mostrato in Figura 5.10, e possibile sfruttare tali strumenti al fine di realizzare
applicazioni (secondo il paradigma di Hadoop) per lanalisi dei Big Data a scopo
predittivo.

Figura 5.10. Linterfaccia grafica di Azure Machine Learning

Grazie alle direttive di entrambi, e possibile gestire qualunque tipologia di


dataset, sia strutturato che non strutturato.
Unulteriore soluzione di cloud coumputing e offerta dalla piattaforma Google
Cloud Platform (Figura 5.11). Anchessa offre una serie di strumenti, tra cui, Google
Prediction API. Si tratta di un interfaccia Web API la quale di accedere agli algo-
ritmi di machine learning di Google e permette di fare previsioni su dati provenienti
da varie fonti.
Attraverso linterfaccia Web e possibile importare collezioni di dati e creare
le proprie applicazioni in linguaggio Python o, in alternativa, richiamare uno dei
metodi per la creazione di modelli di previsione gia esistenti. La Figura 5.12 mostra
limplementazione, da parte del client, di un modello di classificazione attraverso la
sintassi richiesta per richiamare il metodo.
94 5 Tool di Analisi Predittiva

Figura 5.11. Il logo di Google Cloud Platform

Figura 5.12. Metodo richiamato dallinterfaccia di Google Prediction API

Dallinterfaccia e, infine, possibile accedere a diversi metodi per il testing del


modello e la visualizzazione dei risultati.
Grazie allaccesso a tali strumenti, lanalisi predittiva basata sul cloud rappre-
senta la soluzione piu rapida e meno costosa per sfruttare a pieno tutti i vantaggi
del mondo dei Big Data.
6
Case study: Utilizzo di R per Predire i Ritardi dei
Voli

Nel seguente capitolo verranno esaminate, da un punto di vista pratico, tutte le


tematiche finora affrontate, le quale riguardano lo svolgimento del processo di analisi
predittiva. Nellesempio proposto verra affrontato il problema della previsione dei
tempi di attesa in aeroporto. I dati utilizzati a tale scopo verranno prelevati da una
fonte liberamente disponibile sul Web. Lo strumento impiegato per implementare il
modello di previsione scelto, infine, sara il tool di analisi dei dati denominato R.

6.1 Introduzione
Al fine di illustrare lo svolgersi di un processo di analisi predittiva, verra affrontato
un caso di studio di interesse comune, ossia la previsione dei tempi di attesa in
aeroporto.
Per tutte le fasi del progetto verra utilizzato il tool di data mining chiamato
R, il quale comprende un ambiente di sviluppo ed un proprio linguaggio di pro-
grammazione. La scelta di tale strumento e determinata dalla sua versatilita. Esso,
infatti, contiene molti metodi i quali implementano procedure utili per il tratta-
mento dei dati e per la definizione dei modelli di predizione. Per tale motivo, R si
adatta perfettamente allo scopo di realizzare una previsione partendo da semplici
dati grezzi.
Il percorso da seguire, per la realizzazione di un processo di analisi predittiva,
prevede diverse fasi indispensabili per il successo dellintero procedimento. La prima
parte consiste nella definizione degli obiettivi della predizione. Comprendere a pieno
levento che si vuole prevedere e fondamentale per effettuare la scelta del modello
piu adatto. La fase successiva consiste nello stadio di acquisizione ed elaborazione
dei dati. Questultima si divide in piu sotto-fasi le quali porteranno ad ottenere una
collezione di dati che potranno essere utilizzati per laddestramento ed il testing
del modello. In seguito, infatti, il dataset ottenuto dal filtraggio dei dati grezzi
iniziali verra suddiviso in due gruppi, ossia il training dataset ed il test dataset.
Dopo aver costruito il modello, infine, lultimo stadio prevede la valutazione dei
risultati ottenuti e, di conseguenza, della veridicita del modello di previsione. Di
seguito verranno esposte le varie fasi appena citate.
96 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

6.2 Definizione degli Obiettivi ed Acquisizione dei Dati


Lobiettivo della previsione e il punto di partenza sul quale focalizzare lattenzione
durante la fase iniziale. Nel caso preso in esame si intende prevedere lintervallo
temporale che potrebbe intercorre tra lorario previsto per latterraggio di un aereo
e lorario reale di arrivo. Poiche si tratta di un valore numerico, e non di uno tra
piu possibili esiti predeterminati, il problema dovra essere affrontato mediante un
algoritmo di regressione lineare, piuttosto che con un algoritmo di classificazione.
Cio mette in evidenza limportanza di riconoscere il tipo di variabile che si intende
prevedere.
Il processo di analisi predittiva viene generalmente effettuato partendo da dati
provenienti da diverse fonti. Uno dei passi fondamentali consiste nel determinare
quali, tra le informazioni provenienti da tali sorgenti, includere durante la realiz-
zazione del modello. Scegliere dati pertinenti allobiettivo permette di realizzare
previsioni di carattere pratico oltre che puramente matematico. Nel caso in esame, i
dati prelevati contengono informazioni relative ai voli effettuati lungo le rotte aeree
dello stato di New York, durante i primi quattro mesi del 2015.
Si tratta di un enorme dataset contenente diverse informazioni riguardo ogni
specifico volo. Ciascuna di tali informazioni viene raccolta e resa pubblica dalle
compagnie aeroportuali, dunque puo essere facilmente reperibile per replicare il
processo di previsione. Tra i dati raccolti vi sono informazioni temporali, quali
anno, mese e giorno in sui e stato effettuato ogni volo, informazioni riguardanti
il mezzo aereo ed informazioni sulle partenze, sugli arrivi e sullo stato del volo.
Vengono inoltre riportate le possibili cause di ritardo per ogni tratta, indicando,
per ciascuna di esse il tempo (in minuti) relativo alla stessa. Tali informazioni sono
state riportate in formato tabulare: ogni riga corrisponde ad unosservazione relativa
ad un volo, mentre ogni colonna rappresenta un attributo contenente le informazioni
appena citate. La Tabella ?? mostra nel dettaglio gli attributi prelevati e la relativa
descrizione.

I dati sono contenuti in un file in formato Comma-separated values (.CSV) e


prelevati mediante listruzione:

> aeroporto_2015 <- read.csv("file_aeroporto".csv")
 
Sono state raccolte, in totale, 178.375 osservazioni, ciascuna contenente 32 at-
tributi (riportati nella Tabella 6.1, corrispondenti ad ogni volo effettuato in quattro
mesi, come mostrato in Figura 6.1.
Unanalisi ancora piu approfondita richiederebbe dati relativi ad osservazioni
raccolte durante mesi precedenti a quelli gia incluse nel dataset. Unulteriore quan-
tia di osservazioni determina una maggiore precisione del modello di previsione. La
raccolta di dati relativi a periodi storici sempre piu lontani nel passato, tuttavia, pur
migliorando laffidabilita della previsione, richiede una maggiore quantita di memo-
ria per contenere tali dati. E, dunque, necessario trovare il migliore compromesso
tra i due vantaggi appena citati.
6.2 Definizione degli Obiettivi ed Acquisizione dei Dati 97

Attributo Descrizione
YEAR Anno in cui viene effettuato il volo
MONTH Mese in cui viene effettuato il volo
DAY OF MONTH Giorno in cui viene effettuato il volo
DAY OF WEEK Giorno della settimana in cui viene effettuato il volo
UNIQUE CARRIER Codice identificativo del velivolo
CARRIER Codice identificativo del velivolo, assegnato da IATA
FL NUM Codice assegnato al volo
ORIGIN AIRPORT ID Codice identificativo dellaeroporto di partenza
ORIGIN Nome dellaeroporto di partenza
ORIGIN CITY NAME Citta di appartenenza dellaeroporto di partenza
ORIGIN STATE Stato di appartenenza dellaeroporto di partenza
DEST AIRPORT ID Codice identificativo dellaeroporto di arrivo
DEST Nome dellaeroporto di arrivo
DEST CITY NAME Citta di appartenenza dellaeroporto di arrivo
DEST STATE Stato di appartenenza dellaeroporto di arrivo
CRS DEP TIME Orario di partenza previsto
DEP TIME Orario di partenza reale
DEP DELAY Differenza tra lorario di partenza previsto e quello reale
CRS ARR TIME Orario di arrivo previsto
ARR TIME Orario di arrivo reale
ARR DELAY Differenza tra lorario di arrivo previsto e quello reale
CANCELLED Booleano: 1 se il volo e stato cancellato
CANCELLATION CODE Codice della cancellazione
DIVERTED Booleano: 1 se il volo e stato dirottato
CRS ELAPSED TIME Durata del volo prevista
ACTUAL ELAPSED TIME Durata del volo reale
DISTANCE Distanza percorsa (miglia)
CARRIER DELAY Ritardo nel carico dei bagagli, in minuti
WEATHER DELAY Ritardo dovuto a condizioni meteorologiche, in minuti
NAS DELAY Ritardo per congestione del National Aviation System, in minuti
SECURITY DELAY Ritardo dovuto a motivi di sicurezza, in minuti
LATE AIRCRAFT DELAY Ritardo dovuto a precedenti ritardi, in minuti
DIV ARR DELAY Differenza tra lorario previsto e quello reale per voli dirottati
Tabella 6.1. Attributi relativi alle osservazioni

Figura 6.1. Dataset prelevato allinterno dellambiente di sviluppo di R


98 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

Prima di sfruttare i dati a disposizione, per la creazione del modello, e necessario


effettuare unoperazione di analisi su di essi per assicurarsi che siano compatibili
con quelli richiesti dal modello di previsione scelto.

6.3 Analisi e Preparazione dei Dati


Gli attributi contenuti allinterno del dataset non sono sempre tutti utili per la rea-
lizzazione del modello. Alcuni di essi, infatti, devono essere necessariamente rimossi
prima di procedere ulteriormente con lanalisi dei dati. Nel caso in esame, in cui
e stato scelto di impiegare un modello di regressione lineare al fine di realizzare
la previsione, gli attributi di valore testuale non possono essere utilizzati e devono
essere obbligatoriamente rimossi. Mediante il metodo str() e possibile visualizzare
la struttura interna di un qualsiasi oggetto in R:

> str(aeroporto_2015)
data.frame: 178375 obs. of 37 variables:
$ YEAR : int 2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 ...
$ MONTH : int 1 1 1 1 1 1 1 1 1 1 ...
$ DAY_OF_MONTH : int 1 2 3 4 5 6 7 8 9 10 ...
$ DAY_OF_WEEK : int 4 5 6 7 1 2 3 4 5 6 ...
$ UNIQUE_CARRIER : chr "AA","B6","DL",..: 1 1 1 1 1 1 1 1 1 1 ...
$ CARRIER : chr "AA","B6","DL",..: 1 1 1 1 1 1 1 1 1 1 ...
$ FL_NUM : int 1 1 1 1 1 1 1 1 1 1 ...
$ ORIGIN_AIRPORT_ID : int 12478 12478 12478 12478 12478 12478 12478 12478 12478 12478 ...
$ ORIGIN : chr "ABQ","ALB","ATL",..: 44 44 44 44 44 44 44 44 44 44 ...
$ ORIGIN_CITY_NAME : chr "Aguadilla, PR",..: 56 56 56 56 56 56 56 56 56 56 ...
$ ORIGIN_STATE_ABR : chr "AL","AR","AZ",..: 25 25 25 25 25 25 25 25 25 25 ...
$ DEST_AIRPORT_ID : int 12892 12892 12892 12892 12892 12892 12892 12892 12892 12892 ...
$ DEST : chr "ABQ","ALB","ATL",..: 46 46 46 46 46 46 46 46 46 46 ...
$ DEST_CITY_NAME : chr "Aguadilla, PR",..: 47 47 47 47 47 47 47 47 47 47 ...
$ DEST_STATE_ABR : chr "AL","AR","AZ",..: 4 4 4 4 4 4 4 4 4 4 ...
$ CRS_DEP_TIME : int 900 900 900 900 900 900 900 900 900 900 ...
$ DEP_TIME : int 855 850 853 853 853 856 859 856 901 903 ...
$ DEP_DELAY : num -5 -10 -7 -7 -7 -4 -1 -4 1 3 ...
$ CRS_ARR_TIME : int 1230 1230 1230 1230 1230 1235 1235 1235 1235 1235 ...
$ ARR_TIME : int 1237 1211 1151 1218 1222 1300 1221 1158 1241 1235 ...
$ ARR_DELAY : num 7 -19 -39 -12 -8 25 -14 -37 6 0 ...
$ CANCELLED : num 0 0 0 0 0 0 0 0 0 0 ...
$ CANCELLATION_CODE : chr "","A","B","C",..: 1 1 1 1 1 1 1 1 1 1 ...
$ DIVERTED : num 0 0 0 0 0 0 0 0 0 0 ...
$ CRS_ELAPSED_TIME : num 390 390 390 390 390 395 395 395 395 395 ...
$ ACTUAL_ELAPSED_TIME: num 402 381 358 385 389 424 382 362 400 392 ...
$ DISTANCE : num 2475 2475 2475 2475 2475 ...
$ CARRIER_DELAY : num NA NA NA NA NA 0 NA NA NA NA ...
$ WEATHER_DELAY : num NA NA NA NA NA 0 NA NA NA NA ...
$ NAS_DELAY : num NA NA NA NA NA 25 NA NA NA NA ...
$ SECURITY_DELAY : num NA NA NA NA NA 0 NA NA NA NA ...
$ LATE_AIRCRAFT_DELAY: num NA NA NA NA NA 0 NA NA NA NA ...
$ FIRST_DEP_TIME : int NA NA NA NA NA NA NA NA NA NA ...
$ TOTAL_ADD_GTIME : num NA NA NA NA NA NA NA NA NA NA ...
$ LONGEST_ADD_GTIME : num NA NA NA NA NA NA NA NA NA NA ...
$ DIV_ARR_DELAY : num NA NA NA NA NA NA NA NA NA NA ...
 
Osservando la tipologia di ogni variabile, appare evidente come sara necessa-
rio rimuovere gli attributi UNIQUE CARRIER, CARRIER, ORIGIN, ORIGIN CITY NAME,
ORIGIN STATE ABR, DEST, DEST CITY NAME, DEST STATE ABR in quanto non as-
sumono valori numerici. Il metodo subset() restituisce una tabella formata da
un sottoinsieme degli attributi della tabella aeroporto 2015, eliminando quelli
indicati:

> aeroporto_2015 <- subset(aeroporto_2015, select = -c(UNIQUE_CARRIER, CARRIER, ORIGIN,
ORIGIN_CITY_NAME, ORIGIN_STATE_ABR, DEST, DEST_CITY_NAME, CANCELLATION_CODE))
 

E bene notare come lattributo DEST STATE ABR, pur costituito da valori te-
stuali, non e stato eliminato per conservare informazioni relative allaeroporto di
6.3 Analisi e Preparazione dei Dati 99

partenza. Si osserva come tale attributo presenti valori discreti e, per questo moti-
vo, puo essere ancora utilizzato, in un modello di regressione lineare, se tali valori
vengono associati ad alcuni indici numerici tramite il metodo factor(). Median-
te questultimo, ciascun valore alfabetico verra assegnato ad un indice numerico;
dunque, sara possibile usare la variabile DEST STATE ABR:

> > aeroporto_2015$CANCELLATION_CODE <- factor(aeroporto_2015$CANCELLATION_CODE)
 
Usando il metodo summary(), il quale restituisce il numero di osservazioni corri-
spondenti ad ogni possibile valore discreto di una variabile, e possibile determinare
il numero di osservazioni relativo ad ogni valore discreto di DEST STATE ABR:

> summary(aeroporto_tot$ORIGIN_STATE_ABR)
AL AR AZ CA CO FL GA HI IL IN KY LA MA MD ME MI MN MO NC NE
183 288 928 8520 1506 22012 6093 101 7836 129 521 857 5125 1962 355 3237 942 1083 5438 39
NH NJ NM NV NY OH OR PA PR SC TN TX UT VA VI VT WA WI WY
176 572 79 1544 90911 2584 227 340 1893 769 1173 4758 699 3904 231 379 593 386 2
 
Il risultato del metodo mostra come CANCELLATION CODE possa assumere esclusi-
vamente 39 valori possibili, i quali rappresentano alcuni dei codici che vengono attri-
buiti ai diversi aeroporti in tutto il mondo dalla IATA (International Air Transport
Association).
Poiche allinterno dei dati prelevati, sono presenti, tra i vari attributi, informazio-
ni numeriche sul ritardo che ha caratterizzato ogni volo, lalgoritmo che verra scelto
per la realizzazione del modello sara un algoritmo di apprendimento supervisiona-
to. Al fine di indicare esplicitamente tale intervallo temporale e utile evidenziare
un attributo di uscita il quale rappresenta il ritardo e che costituira la variabile di
restituzione del modello. Tale valore sara dato dallintervallo di attesa prima dellar-
rivo di ogni aereo (ARR DELAY) e verra , per convenienza, rinominato come OUTPUT
mediante la sintassi:

> colnames(aeroporto_2015)[colnames(aeroporto_2015)=="ARR_DELAY"] <- "OUTPUT"
 
Lattributo OUTPUT rappresenta, dunque, la variabile indipendente. Esso po-
tra, inoltre, indicare eventuali anticipi mediante valori negativi. I restanti attributi
rappresenteranno, invece, le variabili indipendenti del modello.
Dopo aver definito attributi dipendenti ed indipendenti, e necessario esaminare
il dataset al fine di individuare le variabili le quali hanno un reale impatto nel deter-
minare il ritardo di arrivo di un aereo. Tale operazione, in casi piu complessi, viene
svolta mediante lintervento di esperti del settore. In questo caso verranno rimosse
le variabili, le quali, intuitivamente, non rappresenteranno una possibile causa del
mancato rispetto dellorario di arrivo previsto per ogni aereo. Le variabili YEAR, FL
NUMBER, ORIGIN AIRPORT ID, DEST AIRPORT ID e DISTANCE risultano non avere
alcun peso su tale ritardo, verranno quindi rimosse mediante la seguenti istruzione:

> aeroporto_2015 <- subset(aeroporto_2015, select = -c(YEAR, FL_NUM, ORIGIN_AIRPORT_ID, DEST_AIRPORT_ID))
 
Il dataset modificato in tale maniera contiene esclusivamente valori numerici i
quali hanno, quasi tutti, un impatto nel determinare i tempi di ritardo di un viaggio
100 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

aereo. Lattributo CANCELLED non e stato eliminato in quanto, mediante un valore


booleano, indica i voli cancellati per qualche motivo. Non avendo tali osservazioni
alcun utilizzo nel descrivere una lista di voli, i quali possono o no aver subito un
ritardo, devono essere eliminati. Verra, dunque, usato il valore CANCELLED = 1 per
individuare le tuple relative ad ogni volo mai arrivato a destinazione. Tali tuple
dovranno essere rimosse mediante il comando:

> aeroporto_2015 <- aeroporto_2015[!(aeroporto_2015$CANCELLED == 1), ]
 
Poiche, infine, i restanti valori dellattributo CANCELLED saranno esclusivamente
valori nulli, tale attributo potra essere eliminato.

> aeroporto_2015 <- subset(aeroporto_2015, select = -c(CANCELLED))
 

6.4 Estrazione di Nuove Variabili

Durante la realizzazione di un modello di previsione si tenta di recuperare quante


piu informazioni possibili al fine di ottenere risultati particolarmente accurati. In
genere, unorganizzazione che possiede dati propri tenta di integrare questi ultimi,
precedentemente analizzati, con dati provenienti da fonti esterne. Nel caso in esame,
si vuole aggiungere, ai dati gia prelevati ed analizzati, delle informazioni riguardanti
lintervallo di tempo tra la data di partenza del volo, il quale puo aver subito un
ritardo, ed il giorno festivo piu vicino. Si vuole mettere in evidenza il fatto che il
tempo di arrivo di un mezzo aereo possa essere influenzato da festivita recenti o in
arrivo.
Per determinare la presenza di festivita vicine al giorno della partenza, viene
creato un vettore allinterno del quale si riportano le date dei giorni festivi a partire
dagli ultimi mesi del 2014 fino ai primi mesi del 2015:

> vacanze <- c(2015-01-01, 2015-01-06, 2015-02-17, 2014-10-30, 2014-12-06, 2014-12-24, 2014-12-25)

> vacanze <- as.Date(vacanze)


 
Il comando as.Date() converte il vettore di stringhe in un vettore di date.
Lo scopo e quello di creare un nuovo attributo del data frame aeroporto 2015,
chiamato GiorniVacanze. Per ogni osservazione, verra confrontata la data relativa
ad essa con ogni data contenuta del vettore in cui sono riportati i giorni festivi. Alla
data di ogni volo, dunque, verra associata la differenza, in giorni, con la festivita
piu vicina, e tale quantita sara aggiunta come nuovo attributo del data frame. Lo-
perazione finora descritta verra effettuata mediante luso di una funzione. R infatti,
essendo, a tutti gli effetti, un linguaggio di programmazione, permette la realizza-
zione di funzioni personalizzate per affrontare un problema al quale gli sviluppatori
non hanno previsto soluzioni. Cio rende stesso R un sistema per lanalisi dei dati
molto potente e versatile. La funzione verra creata mediante la seguente sintassi:

6.4 Estrazione di Nuove Variabili 101

> GiorniAlleVacanze <- function(mese, giorno) {

anno <- 2015;

data <- as.Date(paste(anno,mese,giorno,sep = -));

numGiorni <- as.numeric(min(abs(data-vacanze)));

return(numGiorni);

}
 
dove il costrutto function introduce la definizione della funzione, la quale ac-
cettera in ingresso il mese e il giorno in cui e stato effettuato ogni volo (ossia, i primi
due attributi di ogni osservazione) e restituira la minore tra le differenze, in giorni,
tra tale data e ogni data del vettore delle date festive (denominato vacanze). Il
metodo paste() serve a comporre una stringa a partire da piu stringhe, le quali,
in tal caso, saranno costituite dai parametri mese e giorno forniti alla funzione. La
stringa numGiorni <- as.numeric(min(abs(data-vacanze))) contiene i metodi
abs() il quale preleva il valori assoluti della differenze tra lelemento data ed ogni
elemento del vettore vacanze (ogni differenza potra essere positiva, se la data con-
frontata e precedente a quella dellosservazione, oppure negativa, nel caso contrario)
ed il metodo min(), il quale preleva la piu piccola tra tali differenze.
La funzione cos definita potra essere, infine, utilizzata sui dati appartenen-
ti ad ogni osservazione al fine di associare a questultima il valore di restituzione
numGiorni. Cio puo essere realizzato mediante il metodo mapply(), il quale, co-
me primo parametro, invoca la funzione indicata per ogni coppia di elementi delle
colonne MONTH e DAY OF MONTH; il risultato sara aggiunto alla rispettiva tupla.

> aeroporto_2015$GiorniVacanze <- mapply(GiorniAlleVacanze, aeroporto_2015$MONTH, aeroporto_2015$DAY_OF_MONTH)
 
Il dataset cos ottenuto conterra unulteriore informazione la quale fornira un
ulteriore punto di forza alla veridicita del modello.
Dopo aver ottenuto tutti gli attributi con cui si intende implementare il modello,
e bene verificare alcune delle ipotesi che sono state assunte durante la definizione del
modello di regressione lineare. Tra tali ipotesi, la piu importante e quella che prevede
la mancanza di unelevata correlazione statistica tra gli attributi del dataset. Essa
viene definita ipotesi di multicollinearita ed e importante per garantire il calcolo
di coefficienti di regressione coerenti. Tale ipotesi puo essere verificata mediante
il metodo cor(). Questultimo crea una matrice quadrata le cui righe e colonne
contengono gli attributi del dataset; per ogni elemento di tale matrice, il metodo
fornisce la covarianza di ogni coppia di attributi:

> matrice_correlazioni <- cov(aeroporto_2015)
 
Utilizzando tale matrice, mostrata in Figura 6.2, e possibile individuare gli
attributi statisticamente correlati tra di loro.
Sfruttando il medoto findCorrelation(), contenuto nel pacchetto caret, e
possibile ottenere suggerimenti sugli attributi che dovrebbero essere eliminati per
garantire un basso livello di correlazione tra gli attributi del dataset:

102 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

Figura 6.2. Matrice delle correlazioni tra gli attributi del dataset

> findCorrelation(matrice_correlazioni, cutoff = 0.75)


[1] 4 7 13 11
 
Il metodo findCorrelation() restituisce un vettore contenente la posizione
degli attributi i quali possiedono una correlazione reciproca maggiore del 75%. Essi
corrispondono alle variabili CRS DEP TIME, CRS ARR TIME, CRS ELAPSED TIME e
DISTANCE. Questi ultimi dovranno essere necessariamente eliminati al fine di favorire
la precisione di questultimo.

> aeroporto_2015 <- subset(aeroporto_2015, select = -c(CRS_DEP_TIME, CRS_ARR_TIME, CRS_ELAPSED_TIME, DISTANCE))
 
Dopo aver eliminato tali valori, il comando findCorrelation() non indica piu
altri attributi correlati; i restanti potranno, dunque, essere utilizzati.

6.5 Suddivisione dei Dati ed Implementazione del Modello

Dopo aver realizzato il dataset, includendo i dati che plausibilmente concorrono a


determinare le cause dei ritardi nei voli, e possibile utilizzare tali dati per la creazione
del modello. Esso servira a realizzare previsioni su dati ancora sconosciuti. A tal
fine sara necessario suddividere il dataset comprendente tutte le osservazioni in due
parti, ossia il training dataset ed il test dataset. Il primo servira alladdestramento
del modello ed al calcolo dei coefficienti di regressione e sara costituito dalla maggior
parte delle osservazioni (e necessaria almeno una percentuale pari al 70% dei dati). Il
secondo gruppo verra impiegato, in seguito, per verificare la veridicita dei risultati e
sara costituito dalla parte restante del dataset. Il numero di osservazioni per ciascun
gruppo puo essere calcolato mediante i comandi:

> dimensione_trainSet <- round(nrow(aeroporto_2015) * 0.7)

> dimensione_testSet <- nrow(aeroporto_2015) - dimensione_trainSet


 
In tal modo alla variabile dimensione trainSet, verra associata la quantita di
osservazioni appartenenti al training dataset (pari a 116.573 osservazioni), mentre
la variabile dimensione testSet conterra il numero di osservazioni del test dataset
(49.960 elementi).
6.5 Suddivisione dei Dati ed Implementazione del Modello 103

E importante, a questo punto, considerare lordine con il quale i vari dati vengo-
no prelevati e collocati nei due gruppi. Realizzare un training dataset, utilizzando
rispettivamente, le prime osservazioni del dataset di partenza, infatti, non e sem-
pre una scelta possibile. Osservando la tabella aeroporto 2015 e possibile notare
come i vari dati siano ordinati secondo il mese in cui sono stati prelevati. Se ot-
tenuta in questordine, una tale collezione di dati non permette la realizzazione di
un modello di previsione valido in quanto il training dataset deve, necessariamente,
contenere informazioni relative allintera collezioni dei dati di partenza. Impiegan-
do, invece, esclusivamente le prime 116.573 osservazioni, relative ai primi mesi, il
modello non riusultera essere realmente rappresentativo della totalita delle infor-
mazioni disponibili. Una possibile soluzione e quella di prelevare le informazioni da
collocare nel training dataset in maniera casuale. Cio viene realizzato mediante i
seguenti comandi:

> set.seed(123)

> indici_casuali <- sample(seq_len(length = nrow(aeroporto_2015)), size = dimensione_trainSet)

> trainSet <- aeroporto_2015[indici_casuali, ]

> testSet <- aeroporto_2015[-indici_casuali, ]


 
Tra questi comandi citiamo il metodo seq len(length), che genera una se-
quenza casuale di lunghezza length (in questo caso pari alla dimensione del da-
taset di partenza). Questultima viene assegnata al metodo sample(seq, size).
Esso e un generatore che preleva dalla sequenza seq un campione di indici pari
a dimensione trainSet in maniera pseudo-casuale, dopo essere stato inizializzato
assegnando un opportuno valore seed (seme). Ogni volta che si usa lo stesso seme,
si otterra sempre la stessa identica sequenza. La sequenza casuale indici casuali
viene utilizzata, infine, per prelevare le osservazioni che faranno parte del training
dataset trainSet, in maniera casuale. Le restanti saranno assegnate al test dataset
chiamato testSet.
Dati questi ultimi, e, dunque, possibile realizzare il modello di regressione li-
neare mediante la funzione lm() la quale, presi in ingresso la variabile dipenden-
te trainSet$OUTPUT ed il training dataset, ricava automaticamente i coefficienti
di regressione. Ciascuno di questultimi misura il cambiamento nel valore (me-
dio) di OUTPUT associato ad un cambiamento di una unita delln-esima variabile
indipendente, mantenendo costanti tutte le altre variabili.

> model <- lm(formula = trainSet$OUTPUT ~ . , data=trainSet)
 
La variabile model rappresenta limplementazione pratica del modello di regres-
sione lineare.
Mediante questultima e possibile cominciare ad effettuare previsioni vere e pro-
prie. Prima di considerare il modello come valido a tutti gli effetti e necessario
effettuare delle prove su di esso. La prima e piu importante consiste nel fornire al
modello stesso i dati contenuti nel test dataset precedentemente realizzato. In tal
modo i risultati potranno essere confrontati con quelli emersi dallimplementazione
con il training dataset. Se questi ultimi due risultati risulteranno essere simili tra di
104 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

loro, il modello potra essere considerato affidabile. La sintassi per limplementazione


del modello e la seguente:

> predizione <- predict(model, testSet, interval="predict", level=.95)
 
Lattributo level indica il livello di confidenza del modello. La Figura 6.3 mostra
la tabella dei risultati restituiti. Nella colonna fit vengono mostrati i risultati
previsti per per la variabile OUTPUT (viene visualizzato il valore NA se non e previsto
alcun ritardo), mentre, le colonne lwr e upr mostrano lintervallo dentro il quale
possono ricadere i possibili risultati a causa dellerrore.

Figura 6.3. Risultati della Previsione

Per praticita, sara utile affiancare i valori previsti con quelli osservati. Se la
maggior parte di essi risulteranno essere relativamente simili tra di loro il modello
potra essere considerato valido e potra essere impiegato per realizzare previsioni.
Al fine di realizzare unanalisi approfondita e possibile realizzare ulteriori prove le
quali garantiranno, in futuro, una maggiore precisione dei risultati.

6.6 Analisi della Regressione


Prima di utilizzare il modello appena realizzato con dati attuali e bene effettua-
re ulteriori prove per verificare la sua correttezza. Una simile verifica puo essere
realizzata ricorrendo ad alcuni metodi statistici.
6.6 Analisi della Regressione 105

La variabile dipendente nellequazione di regressione e modellata come una fun-


zione delle variabili indipendenti, piu un termine derrore, attraverso il metodo dei
minimi quadrati (OLS). Una volta costruito un modello di regressione, e impor-
tante confermarne la bonta mediante test statistici effettuati sulla base di ipotesi
riguardanti la distribuzione di probabilita degli errori. Tra tali test il piu comune e
lanalisi dei residui [1].
Si definisce residuo ei della regressione la differenza tra il valore osservato OUTPUT
(del training dataset) e lo stesso valore previsto dal modello. Il grafico dei residui e
un diagramma di dispersione con i residui sullasse delle ordinate ed i valori stimati
sullasse delle ascisse. Lanalisi di tali residui risulta essere di particolare importanza
quando si tenta di costruire un modello di regressione lineare valido; essa permette
di valutare se il modello di regressione impiegato e adeguato per lanalisi dellinsieme
dei dati considerato.
Tale analisi prevede di verificare la validita delle assunzioni ipotizzate durante
un processo di regressione lineare (distribuzione normale degli errori, ovvero dei
residui, omogeneita delle varianze derrore, indipendenza degli errori dai valori della
variabile indipendente). Lanalisi puo essere effettuata grazie al linguaggio R il quale
offre la funzione plot().

> plot(model)
 
Essa restituisce una serie di grafici sui quali e possibile effettuare alcune verifiche
al fine di garantire la qualita del modello. In Figura 6.4 viene illustrato il primo di
tali grafici.
Esso mostra gli errori residui sullasse delle ordinate ed i valori stimati della
variabile dipendente sullasse delle ascisse; esso rappresenta, dunque, il grafico dei
residui. Questultimi devono essere distribuiti in modo simmetrico attorno alla linea
orizzontale che rappresenta la linea di regressione; in altre parole, non dovrebbe
esserci una netta tendenza nella distribuzione dei punti. Cio verifica lipotesi che gli
errori (residui) sono normalmente distribuiti. Nel caso in esame, i residui risultano
essere, per la maggior parte, vicini alla linea di regressione, salvo alcune eccezioni
(valori outlier ).
In Figura 6.5 viene mostrato il grafico Q-Q plot. Si tratta di un grafico che con-
fronta i valori dei residui standardizzati (quantile reale) con una linea che individua
la loro distribuzione normale (quantile teorico). La standardizzazione si ottiene di-
videndo il valore di ogni residuo per la deviazione standard dello stesso residuo.
Tale grafico rappresenta una figura per cui se i punti si distribuiscono sulla linea la
distribuzione dei residui risulta normale, e quindi la regressione rappresenta un mo-
dello adeguato. Anche in questo caso, il modello risulta essere affidabile in quanto
la maggior parte dei punti ricade lungo la curva.
In Figura 6.6 viene mostrato un ulteriore grafico che mostra la radice quadrata
dei residui standardizzati in funzione dei valori stimati. Anche in questo caso non
ci deve essere alcuna tendenza evidente in questo grafico, ossia un eccessivo numero
di valori outlier.
In Figura 6.7, infine, viene mostrato un grafico che mostra il valore di leverage dei
punti stimati. Tale parametro, il cui valore varia tra 0 ed 1, e una misura di quanto
un dato valore della variabile indipendente si discosta dalla sua media. Il valore
106 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

Figura 6.4. Residual vs Fitted

Figura 6.5. Q-Q plot


6.6 Analisi della Regressione 107

Figura 6.6. Scale-Location

di leverage dei punti rappresenta una misura dellimportanza dellosservazione nel


determinare il risultato del modello di regressione. I punti spostati a destra ed in
alto sono quelli che hanno peso maggiore sulla regressione. Sovrapposte al plot ci
sono alcune linee di contorno le quali permettono di misurare la distanza di Cook.
Questultima rappresenta unaltra misura dellimportanza di ciascuna osservazione
rispetto alla regressione: valori di distanze di Cook bassi per un punto indicano che la
rimozione della rispettiva osservazione ha poco effetto sui risultati della regressione.
Valori di distanze di Cook superiori a 1, invece, sono sospetti ed indicano la presenza
di un possibile outlier.
Un modello che rispetta le condizioni appena verificate garantira unalta per-
centuale di successo nel prevedere futuri ritardi dei voli. Non sempre, tuttavia, tali
condizioni vengono rispettate. Unerrata scelta dei parametri di ingresso (ossia del-
le variabili indipendenti) puo causare un modello non ottimale. Spesso, infatti, e
necessario ripetere piu volte il processo appena realizzato per ottenere piu modelli,
quindi confrontarli tra di loro e scegliere quello con le caratteristiche migliori, oppu-
re quello che fornisce risultati che piu si avvicinano alle osservazioni date. Laiuto di
esperti del settore spesso risulta essere determinante al fine di scegliere gli attributi
che meglio permettono ai risultati ricavati dal training dataset di concordare con
quelli forniti dal test dataset.
108 6 Case study: Utilizzo di R per Predire i Ritardi dei Voli

Figura 6.7. Residual vs Leverage


7
Conclusioni e uno Sguardo al Futuro

Durante lo svolgimento della presente tesi sono stati approfonditi gli aspetti prin-
cipali dellanalisi predittiva. Tale disciplina e stata descritta partendo dallinsieme
delle tecniche che costituiscono il mondo dellanalisi dei dati digitali, ossia le tecniche
di data mining e di machine learning. Queste ultime, a loro volta, sfruttano teorie
statistiche per formulare strumenti capaci di utilizzare le informazioni, contenute
nei dati, al fine di prevedere lo svolgersi degli avvenimenti futuri.
Lanalisi predittiva si e evoluta partendo dalle discipline appena citate diven-
tando un vero e proprio strumento professionale a disposizione di chiunque voglia
minimizzare la probabilita di eventuali rischi nellaffrontare unimportante decisio-
ne. Sono state illustrate, infatti, molte delle attuali applicazioni di tali metodologie
in ambiti diversi, quali il marketing, la medicina e la sicurezza. Questi ultimi hanno
integrato lanalisi dei dati in maniera sempre piu efficiente, sviluppando un vero e
proprio percorso diventato ormai un metodo comunemente utilizzato per ricavare
quante piu informazioni possibili sul futuro in maniera affidabile. Tale percorso si
compone di una successione di processi da eseguire con un particolare ordine, ed
e stato illustrato a partire dalla raccolta dei dati grezzi fino allesame svolto sui
risultati finali.
La piu importante caratteristica messa in evidenza costituisce anche la regola piu
importante di qualsiasi previsione basata sui dati: al fine di prevedere un evento futu-
ro e, prima di tutto, necessario raccogliere informazioni riguardo il comportamento
passato delloggetto della previsione stessa.
Sulle informazioni appena citate, si basa la parte successiva della tesi. In parti-
colare sono stati analizzati i cosiddetti Big Data, ossia grosse collezioni di dati grezzi
contenenti enormi quantita di informazioni. Sono stati analizzati le fonti dalle quali
proviene una cos ampia mole di dati e, in seguito, gli strumenti capaci di elaborarli.
I Big Data hanno la capacita di fornire un contributo determinante nello sviluppo
di quegli strumenti, sopracitati, tramite i quali vengono effettuate le previsioni vere
e proprie.
In seguito, tali strumenti sono stati oggetto principale della trattazione; si tratta
di modelli matematici, statistici e grafici in grado di utilizzare i dati in modo da
realizzare una rappresentazione della realta passata e di determinare uno schema,
che potra essere impiegato per rappresentare la realta futura. Ognuno di questi
strumenti viene utilizzato in vari ambiti diversi, in base alle proprie caratteristiche
110 7 Conclusioni e uno Sguardo al Futuro

ed al tipo di dato che viene restituito. Per ciascuno di essi, inoltre, sono stati illustrati
i principali vantaggi e svantaggi. Particolare rilievo e stato dato a quella particolare
tipologia di modelli denominati di regressione. Questi ultimi costituiscono una
categoria di strumenti particolarmente utilizzati in vari contesti applicativi.
Nellultima parte sono stati analizzati alcuni dei software in grado di implemen-
tare i modelli appena citati. Data lesistenza di unenorme varieta di tali applicazio-
ni, durante la trattazione sono stati esaminati solo alcuni di essi, i quali presentano
caratteristiche di particolare rilievo rispetto agli altri. Uno di essi e stato utilizzato,
infine, per affrontare un problema reale che richiedeva la conoscenza di informazioni
future al fine di minimizzare i tempi di attesa in aeroporto.
Questultimo e solo un piccolo esempio delle innumerevoli applicazioni attuali
e potenziali dei modelli di previsione. Dati i motivi del successo dellanalisi predit-
tiva, gia esposti durante la presente trattazione, e facile comprendere il successo
che questultima riscuote in misura sempre maggiore, tra le varie organizzazioni
professionali le quali decidono di includerla nei propri processi decisionali. Essa, al
giorno doggi, trova spazio allinterno degli enti piu diversi quali aziende, governi,
ospedali, enti di beneficenza, universita e molti altri ancora. Lefficienza degli in-
numerevoli servizi che questultimi offrono, puo essere notevolmente incrementata
esclusivamente attraverso i risultati delle previsioni.
Levoluzione degli strumenti digitali, della diffusione dei Big Data e dei progressi
scientifici favorisce lespansione dellutilizzo dellanalisi predittiva come strumento
a favore dei servizi. Attualmente, il numero di tool e metodi per la realizzazione di
modelli di previsione e in continuo aumento. Essi vengono resi sempre piu accessibili
mediante luso di Internet e di piattaforme sul web, e di pratico utilizzo, grazie ad
interfacce grafiche intuitive le quali possono essere utilizzate anche da parte di utenti
non esperti.
Il vantaggio di poter realizzare una previsione appare essere di cos grande inte-
resse che il possesso di grosse quantita di dati, relative a coloro i quali usufruiscono
dei vari servizi, e diventato un punto di forza per ogni organizzazione. Al fine di rea-
lizzare modelli di regressione, classificazione, sistemi di raccomandazione ed altro,
tali enti hanno deciso di interscambiare i dati in proprio possesso al fine di ottenere
vantaggi reciproci nellimplementare strumenti predittivi. In tal modo il flusso di
informazioni diventa anchesso sempre piu accessibile e permette la realizzazione di
modelli sempre piu efficienti.
Le capacita di predizione vengono incluse in molti sistemi informatici ed inoltre la
crescente richiesta sta portando alla diffusione capillare degli algoritmi di predizione
su supporti di ultima generazione. E facile immaginare come tali metodi saranno
presto integrati allinterno di applicazioni per smarthphone, dispositivi wearable
come gli smartwatch e, persino, sulle automobili, al fine di implementare meccanismi
di sicurezza.
Nonostante si tratti esclusivamente di semplici congetture, e facile immaginare
come una tale diffusione delle potenzialita offerte dallanalisi predittiva comporti
unenorme quantita di potenziali nuove applicazioni. Si stima [6] che entro il 2020
luso delle previsioni trovera applicazioni in diversi nuovi campi che ancora non
hanno pienamente sperimentato le sue potenzialita.
Alcune delle possibili applicazioni future prevedibili al momento sono le seguenti:
7 Conclusioni e uno Sguardo al Futuro 111

Applicazioni in ambito automobilistico: la possibilita di implementare software


di predizione allinterno dei computer di bordo delle automobili offre una serie
di nuove possibilita e vantaggi (tra queste, la possibilita di analizzare i fatto-
ri che potrebbero determinare incidenti e diminuzione dei fattori di sicurezza).
Mediante luso di diversi tipi di sensori, ad esempio, e gia possibile prevedere i
casi di sonnolenza durante la guida analizzando fattori quali i movimenti degli
occhi degli automobilisti e le ore trascorse al volante senza pausa. Allo stesso
modo, sara presto possibile prevedere molte altre cause di incidenti. Le tecniche
di previsione trovano una vasta applicazione nella ricerca per la costruzione di
automobili senza guidatore, in quanto permettono di analizzare le varie informa-
zioni raccolte dal mondo esterno e garantire, dunque, maggiore sicurezza. Sempre
in ambito automobilistico, infine, gli strumenti di previsione permetteranno di
stabilire lidentita degli utilizzatori di un veicolo, basandosi su dati biometrici,
rendendo la partenza del motore virtualmente impossibile ad eventuali ladri.
Applicazioni per lintrattenimento: diversi algoritmi di previsione saranno presto
implementati al fine di prevedere, con precisione crescente, i servizi di maggio-
re interesse. Utilizzando dati raccolti dalla cronologia web, dai social network
e dalle varie interazioni allinterno del web, e gia possibile prevedere con buo-
na approssimazione le risorse di potenziale interesse. Una delle piattaforme che
intende sfruttare al meglio le potenzialita dellanalisi predittiva e il servizio di
radio on-line denominato Pandora Internet Radio. Effettuando una registra-
zione, questo sito permette agli utenti di creare delle stazioni radio virtuali
partendo dallinserimento di un brano o di un artista che sia gradito allutiliz-
zatore. Il sistema sfrutta un algoritmo di previsione, appositamente creato, per
cercare brani simili a quello segnalato dallutente, e quindi riprodurre musiche
che possibilmente potranno essere di gradimento allascoltatore.
Applicazioni per la previsione degli ingorghi: limplementazione di algoritmi di
previsione allinterno degli strumenti GPS, collegati in rete, permettera presto
di analizzare i dati forniti da fonti appositamente realizzate al fine di fornire
suggerimenti sul percorso migliore da seguire. Cio permettera di evitare ingorghi
che potrebbero crearsi lungo il percorso precedentemente stabilito.
Applicazioni in ambito social: molte piattaforme, quali ad esempio Facebook,
utilizzano gia i recommender system al fine di fornire suggerimenti su relazioni
con altri utenti e pagine di potenziale interesse. Tali tecniche vengono realizzate
con efficacia sempre maggiore, includendo dati da nuove fonti e raffinando gli
algoritmi. Il social network CareerBuilder, ad esempio, implementa tecniche che
tentano di prevedere le migliori offerte di lavoro per ogni utente analizzando il
profilo personale di questultimo. Molte applicazioni di Voicemail, infine, vengo-
no realizzate con lintento di analizzare i messaggi e categorizzarli come eventuali
messaggi di spam, esattamente come gia viene fatto per le email testuali.
Applicazioni in ambito commerciale: le compagnie utilizzano sempre di piu lana-
lisi predittiva come strumento per battere i concorrenti. Esse sono alla continua
ricerca di nuove fonti di dati che possano permettere loro di prevedere quando
e perche linteresse di un cliente verso un prodotto comincia a diminuire. Di
conseguenza, tali informazioni vengono impiegate al fine di offrire nuove offerte
in anticipo sulle altre compagnie.
Le applicazioni finora citate sono solo alcune delle molteplici possibilita offerte
112 7 Conclusioni e uno Sguardo al Futuro

dallanalisi predittiva. E facile aspettarsi come esse siano destinate ad aumentare,


parallelamente allo sviluppo di nuove tecnologie e di nuovi settori di ricerca.
Ringraziamenti

Dopo tanti sacrifici ed una lunga attesa sono finalmente giunto al termine di questa
prima parte del mio percorso universitario e desidero ringraziare tutte le persone
che mi hanno sostenuto in questi anni e mi hanno permesso di raggiungere tale
obiettivo.
Vorrei ringraziare, innanzitutto, la mia famiglia e, in modo particolare, mia
madre ed i miei nonni che mi hanno sempre guidato e mi hanno fornito i mezzi per
il raggiungimento di un traguardo tanto desiderato.
Ringrazio il Professor Domenico Ursino per avermi seguito con grande pazien-
za durante tutto il periodo di realizzazione del progetto ed i ragazzi del gruppo
Barbiana 2.0 per la disponibilita e le piacevoli ore passate insieme.
Ringrazio di cuore tutti i miei amici, dentro e fuori il mondo universitario, per
avermi donato giornate stupende e serate ancora piu belle.
Un ringraziamento particolare va ad una persona speciale senza la quale non
sarei riuscito a raggiungere tale traguardo e, soprattutto, a superare i momenti piu
difficili.
Infine, vorrei ringraziare colui che, nonostante non ci sia piu, e sempre stato al
mio fianco per ispirarmi e darmi la forza di non arrendermi mai.
Riferimenti bibliografici

1. Analisi dei Residui.


https://cran.r-project.org/, 2013.
2. Predictive Analytics in the Cloud.
http://www.analyticsearches.com/, 2013.
3. Breve Introduzione ad R.
http://www.ecology.unibo.it/, 2015.
4. CRM.
http://www.crmpartners.it/cosecrm/, 2015.
5. Regressione Lineare Esempi Pratici.
http://automatica.ing.unibs.it/, 2015.
6. The Future of Prediction.
http://bigthink.com/experts-corner/, 2015.
7. A. Bari. Predictive Analytics for Dummies. John Wiley and Sons, Inc., 2014.
8. J. Dean. Big Data, Data Mining and Machine Learning. John Wiley and Sons, Inc.,
2014.
9. S. Finlay. Predictive Analytics, Data Mining and Big Data: Myths, Misconceptions
and Methods. Palgrave MacMillan, 2014.
10. R. Miguel Forte. Mastering Predictive Analytics with R. Packt Publishing Ltd., 2015.
11. J. Hurwitz. Big Data for Dummies. John Wiley and Sons, Inc., 2014.
12. A. DArcy J. Kelleher, B. Mac Namee. Fundamentals of Machine Learning for
Predictive Data Analytics. Mit Pr, 2015.
13. V. Kotu. Predictive Analytics and Data Mining Concepts and Practice with
RapidMiner. Elsevier, 2015.
14. T. W. Miller. Modeling Techniques in Predictive Analytics with R and Python. Paul
Boger, 2015.
15. B. Ratner. Statistical and Machine-Learning Data Mining, Techniques for Better
Predictive Modeling and Analysis of Big Data. Taylor and Francis Group, 2015.
16. A. Sathi. Big Data Analytics: Disruptive Technologies for Changing the Game. MC
Press, 2012.
17. E. Siegel. Predictive Analytics - The Power to Predict Who Will Click, Buy, Lie or
Die. John Wiley and Sons, Inc., 2013.
18. J. S. Strickland. Data Science And Analytics for Ordinary People. Lulu Inc, 2015.

Potrebbero piacerti anche