Big Data e Predizione: Teoria, Modelli, Tool e Case Study. Tesi di Laurea

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Big Data e Predizione: Teoria, Modelli, Tool e Case Study. Tesi di Laurea"

Transcript

1 Università degli Studi Mediterranea di Reggio Calabria Dipartimento di Ingegneria dell Informazione, delle Infrastrutture e dell Energia Sostenibile Corso di Laurea in Ingegneria dell Informazione Tesi di Laurea Big Data e Predizione: Teoria, Modelli, Tool e Case Study Relatore Prof. Domenico Ursino Candidato Rosario Laface Anno Accademico

2

3 A chi mi vuole bene, a colei che ha reso possibile tutto ciò, e a colui che avrebbe voluto esserci, e che sarà sempre nel mio cuore.

4

5 Indice Introduzione Predictive Analytics Cos è la Predictive Analytics? Le Data Science dietro la Predictive Analytics Statistica Data Mining Machine Learning Applicazioni Pratiche I Dati Il processo di analisi Identificazione dei dati Strutturazione dei dati Preparazione dei dati Scelta del modello Implementazione del modello Valutazione del modello Critiche Big Data Cosa sono i Big Data? Big Data e Predictive Analytics Hardware e Calcolo distribuito Strumenti di Analisi MapReduce Apache Hadoop Ecosistema Hadoop I Modelli di Previsione I Modelli come Strumento di Previsione Data Clustering K-Means K-nearest neighbors... 47

6 VI Indice DBSCAN clustering Data Classification Reti Neurali Support Vector Machine Alberi di decisione Metodi Probabilistici Naive Bayes Classification Il Modello di Markov Recommendation Systems Analisi della Regressione I Modelli di Regressione Regressione Lineare Semplice e Multipla Regressione Logistica Tool di Analisi Predittiva Caratteristiche Generali R Weka Orange Analisi Predittiva Basata sul Cloud Computing Case study: Utilizzo di R per Predire i Ritardi dei Voli Introduzione Definizione degli Obiettivi ed Acquisizione dei Dati Analisi e Preparazione dei Dati Estrazione di Nuove Variabili Suddivisione dei Dati ed Implementazione del Modello Analisi della Regressione Conclusioni e uno Sguardo al Futuro Ringraziamenti Riferimenti bibliografici

7 Elenco delle figure 1.1 Predictive Analytics Big Data Andamento della quantità di ricerche Google riguardo il termine Big Data negli ultimi anni, a testimonianza del crescere della popolarità del tema Dati su un generico prodotto X raccolti da varie fonti Aumento della capacità degli hard disk nel corso del tempo Processo diviso in più sottoparti (task) Flusso dei dati lavorati tramite MapReduce L ecosistema di Hadoop Il logo di Apache Mahout Algoritmo di clustering che individua gruppi di appartenenza esaminando gli attributi dei dati Collezione di documenti in formato tabulare; gli attributi, in questo caso, rappresentano le parole più frequenti all interno del testo. Le lettere da A a F indicano le istanze dei documenti Un dataset relativo a dei clienti Risultato dell algoritmo K-means Densità del dataset Sottoinsieme di elementi che identificano un cluster Definizione di density-reachability Struttura di un neurone Struttura di un neurone artificiale Funzione sigmoidea Classificatore lineare (a sinistra) e non lineare (a destra) Due diversi margini Vettore delle caratteristiche in uno spazio a 2 dimensioni Calcolo dell iperpiano che fornisce il margine migliore Albero di decisione Albero di decisione per la previsione dell esito di un investimento Catena di Markov a tre stati... 64

8 VIII Elenco delle figure 4.1 Modello di regressione lineare Retta di regressione Punti campione Il logo di R L esempio di un dataset utilizzato da R Risultati della funzione predict() Albero di decisione realizzato tramite R Il logo di Weka L interfaccia Explorer di Weka Alcuni dei modelli di classificazione disponibili in Weka Il logo di Orange L interfaccia grafica di Orange L interfaccia grafica di Azure Machine Learning Il logo di Google Cloud Platform Metodo richiamato dall interfaccia di Google Prediction API Dataset prelevato all interno dell ambiente di sviluppo di R Matrice delle correlazioni tra gli attributi del dataset Risultati della Previsione Residual vs Fitted Q-Q plot Scale-Location Residual vs Leverage

9 Elenco delle tabelle 4.1 Dati campione Attributi relativi alle osservazioni... 97

10

11 Introduzione È risaputo come il possesso di informazioni determini notevoli vantaggi all interno di qualsiasi settore. Nell era digitale le informazioni vengono trasmesse attraverso flussi di dati dovuti al sempre maggiore utilizzo di strumenti elettronici connessi tra di loro. Tali informazioni rappresentano l oggetto 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 è quella di tentare di estrarre il maggior numero possibile di informazioni da un insieme scelto di dati. Quest ultimi possono trovarsi, senza alcuna semantica particolare, all interno di pagine web o , oppure (in maniera ben definita) all interno di strutture dati, database; gli stessi possono essere, ancora, prelevati da sensori. Oltre alle informazioni intrinseche, estraibili da ciascuna sorgente di dati, integrando le varie sorgenti è possibile far emergere ulteriori significati ed informazioni non ben evidenti. Questo è lo scopo dell analisi dei dati (data analysis). Quest ultimo è 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 potenzialità di un simile approccio. Oltre ad uno scopo descrittivo di semplice estrazione di nuove informazioni, infatti, spesso si ricorre all analisi dei dati per ottenere risultati particolarmente convenienti, ossia, la previsione di eventi futuri. Molte tecniche di analisi permettono di descrivere una rappresentazione di uno o più 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 è quel particolare settore di analisi dei dati il quale si focalizza sulla modellazione e sulla scoperta di conoscenza per scopi predittivi. A quest ultimo si affianca la disciplina dell apprendimento automatico (machine learning) che rappresenta una delle aree fondamentali dell intelligenza artificiale; essa si occupa della realizzazione di sistemi ed algoritmi i quali catturano caratteristiche di interesse all interno 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 l affidabilità dei modelli che rappresentano le informazioni a venire.

12 2 Introduzione L analisi predittiva è una scienza, relativamente recente, che integra tecniche di data mining e machine learning per determinare particolari informazioni ancora sconosciute a partire da dati attuali. L analisi dei dati, necessaria all ottenimento 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 determinati algoritmi al fine di sviluppare una rappresentazione del loro comportamento chiamata modello di previsione. A partire da quest ultima vengono individuate le informazioni che riguardano eventi non ancora trascorsi. Poichè, dunque, la spinta necessaria a realizzare previsioni è data proprio dalle informazioni, nessuna fonte risulta essere efficace tanto quanto la fonte dei Big Data. Questo termine viene utilizzato per rappresentare enormi raccolte di dati i quali sono caratterizzati, oltre che dall elevato volume di informazioni contenute, da un elevata velocità di aggiornamento e da un estrema varietà. Simili collezioni di dati, pur essendo determinanti ai fini dell analisi predittiva, non possono essere analizzati mediante tradizionali algoritmi. Le caratteristiche dei Big Data impongono l utilizzo di strumenti che possiedono capacità di elaborazione molto elevata o, in alternativa, di reti di calcolatori che permettono di suddividere le diverse operazioni svolte sui dati su più macchine. Proprio su quest ultimo tipo di sistema si basa la piattaforma Apache Hadoop la quale consente l elaborazione distribuita degli algoritmi di predizione. Tali algoritmi permettono di realizzare diversi modelli in base alle diverse esigenze. In alcune applicazioni pratiche, è necessario analizzare i dati allo scopo di individuare particolari somiglianze tra gli oggetti e, dunque, associare ciascuno di essi ad una particolare categoria. È questo il caso degli algoritmi di clustering i quali consentono di individuare diversi possibili gruppi di appartenenza dei dati. A tali categorie è 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 quest ultimo può 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, è 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. Particolare interesse pratico possiede una determinata categoria di modelli denominati modelli di regressione. Questi ultimi consentono di prevedere quantità numeriche, basando le proprie assunzioni su metodi geometrici e matematici. Allo scopo di semplificare l uso dei modelli appena citati, sono stati implementati tool specifici per l analisi dei dati. Alcuni di essi servono come strumenti per svolgere compiti semplici che coinvolgono quantità relativamente piccole di dati. Altri servono, invece, per analizzare situazioni complesse. Quest ultimi vengono implementati sulle piattaforme software per l analisi dei Big Data, citate in precedenza, e permettono dunque di suddividere gli obiettivi dell analisi in più task secondari. Nella presente tesi, verrà utilizzato uno di questi tool al fine di mettere in atto le procedure appena citate in un case study. In particolare, si cercherà 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

13 Introduzione 3 osservati in passato, al fine di costruire un modello capace di utilizzare dati più recenti per prevedere periodi di ritardo non ancora noti. Tutte le tematiche appena affrontate verranno riproposte, con maggiore dettaglio, all interno della presente tesi. In particolare, essa è 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 all utilizzo di ciascuno di essi. Nel Capitolo 6 viene esposto il case study, partendo dalla raccolta dei dati fino all analisi dei risultati finali. Nel Capitolo 7, infine, viene proposto un riassunto dell evoluzione moderna dell analisi predittiva e delle possibili applicazioni future.

14

15 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 più promettenti; viene inoltre fatto un breve 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 Cos è la Predictive Analytics? La Predictive Analytics è 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]. È ovvio che i vantaggi di tutto questo sono praticamente illimitati se non fosse che l analisi predittiva non riesce a prevedere perfettamente il futuro ma riesce comunque a fare delle previsioni con un livello di precisione più che accettabile. Un po come gli scienziati usano modelli fisici e matematici per determinare il comportamento di un sistema, con l analisi predittiva, che invece si basa su dati empirici ottenuti dalle stesse entità sulle quali si vogliono fare previsioni,

16 6 1 Predictive Analytics in particolare dati storici e attuali, è possibile estrarre nuove informazioni, il che significa, sostanzialmente, vedere ciò che agli altri è invisibile. Ad esempio, applicando l analisi al mondo del marketing, che rappresenta circa un terzo delle reali applicazioni di questa disciplina, si possono ottenere principalmente tre vantaggi. Il primo consiste nella lungimiranza, anticipare il comportamento dei clienti, dei quali possiamo conoscere, ad esempio, gli articoli che sono interessati ad acquistare o sapere in anticipo quando e perchè non sono più interessati a un determinato servizio. Il secondo consiste nel poter categorizzare tali clienti in base alle loro necessità, comprendere meglio i loro bisogni migliorando la cosidetta customer experience, migliorare i prodotti, identificare potenziali rischi e opportunità per la compagnia. Come terzo e ultimo vantaggio, scavare a fondo nel passato dei clienti permette di associare i dati già in possesso alla compagnia a dati che potrebbero esserlo; conoscere tali informazioni permette di affinare le strategie e massimizzare i profitti. Un altra possibilità offerta è 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 l esito delle decisioni prese. Un tipico esempio di utilizzo di analisi predittiva è dato dall uso che ne fanno le compagnie bancarie che, analizzando dati provenienti dai movimenti nelle carte di credito dei clienti, prevedono in modo efficiente l esito della decisione di concedere o meno un prestito, spesso in tempo reale tramite dei tool di predizione. Analogamente, nel mondo delle assicurazioni, l analisi 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, l analisi predittiva può essere utilizzata per calcolare qualsiasi tipo di incognita riguardante sia il futuro che il presente, in quanto il processo di predizione consiste nell individuare degli schemi tra i dati che vengono analizzati 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), caratteristica del processo di analisi predittiva, derivano altri vantaggi; possiamo immaginare, infatti, quante risorse e quanto tempo possono essere risparmiati analizzando grandi quantità di dati in maniera automatica tramite dei tool specializzati, senza contare di quanto viene ridotta la possibilità 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, però, si tratta di dati caratteristici dell elemento 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 un elevata affidabilità per quanto riguarda sia dati deterministici 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.

17 1.2 Le Data Science dietro la Predictive Analytics Le Data Science dietro la Predictive Analytics La predictive analytics fa ampiamente uso di tre discipline che sono strettamente legate a essa: statistica, data mining e machine learning. Il legame tra queste discipline è così forte che, spesso, si indica una per fare riferimento a un altra, questo perchè l analisi predittiva combina molte tecniche, strumenti e algoritmi caratteristici delle altre. La differenza fondamentale è l obiettivo: mentre statistica, data mining e machine 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 c è sicuramente, la matematica, che fornisce strumenti a ciascuna di esse, come anche la preventiva analisi dei dati, necessaria per fornire i dati più adatti per prendere le decisioni più accurate. Nelle prossime sottosezioni verranno analizzate in dettaglio ciascuna delle tre discipline di cui sopra: Statistica Comprende metodi per la raccolta e l analisi dei dati relativi a determinati fenomeni al fine di studiarli quando non è possibile avere una completa conoscenza di essi. Utilizza formule matematiche per studiare tali fenomeni quando è presente una incertezza, cioè quando non è possibile osservare in modo deterministico la quantità o la qualità degli attributi del fenomeno. Essa quinti strettamente legata alle teoria delle probabilità. Tramite la statistica è 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 può suddividere in due branchie principali: statistica descrittiva e statistica inferenziale. La prima ha come obiettivo quello di descrivere gli aspetti più rilevanti dei dati osservati e sintetizzarli attraverso strumenti grafici e indicatori come media, varianza, etc. La seconda cerca di stabilire dei comportamenti e delle caratteristiche delle variabili ottenute con un certo grado di precisione predeterminato e, quindi, spesso descrivendoli in termini di densità di distribuzione di probabilità. Usando solo un campione dei dati in nostro possesso è possibile, tramite la statistica, avere una base per avanzare ipotesi su ciò che potrà avvenire Data Mining Con questo termine si intende l insieme di tecniche analitiche che mirano a trovare schemi (pattern) utili o nuove relazioni nei dati al fine di estrarre informazioni nascoste, cioè 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 più variabili come, ad esempio, gli acquisti che vengono fatti da un determinato cliente o gli oggetti di interesse comuni a più 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).

18 8 1 Predictive Analytics Gli algoritmi esistenti prendono spunto da queste discipline; esistono molte tecniche 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 attività di data mining può 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 l 80%, può essere risolto con l uso di una piccola parte degli strumenti a disposizione, cioè il 20%; in questo caso, infatti, è possibile modellare la maggior parte delle situazioni con le tecniche più comuni; tuttavia, è importante anche considerare ulteriori strategie che possono fare emergere schemi ancora più nascosti. Uno degli aspetti chiave del data mining è la generalizzazione degli schemi, cioè l estensione delle relazioni trovate per uno o più particolari valori del dataset, sui quali si applicano i metodi per la creazione dei modelli, a nuove e sconosciute istanze dei dati. Nell ottica della predictive analytics i modelli creati hanno due obiettivi principali: stabilire una relazione tra i dati di input osservati e la tipologia di dati di output desiderata e, tramite questa relazione, prevedere l output dato da valori non ancora conosciuti. Al fine di ottenere un processo di estrazione delle informazioni soddisfacente è necessario possedere una conoscenza preliminare sui dati e sui processi che li hanno generati (subject matter expertise). In questo modo si può 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 quantità di dati strutturati, affiancandosi, spesso, a tecniche (come la computazione parallela e distribuita) che giocano spesso un ruolo fondamentale nell elaborazione Machine Learning Questo termine fu coniato nel 1959 da Arthur Samuel, pioniere dell Intelligenza Artificiale, per indicare quel campo che studia l abilità 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 può 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. Tuttavia questo metodo utilizza, per le proprie scelte, dei metodi puramente statistici; perciò, 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 è un altra disciplina che ha come obiettivo l analisi dei dati e la scoperta di nuove informazioni provenienti da essi, ma questo scopo è raggiunto in

19 1.3 Applicazioni Pratiche 9 maniera automatica, tramite degli algoritmi implementati. Anche in questo caso si tratta di un meccanismo iterativo in quanto più la macchina apprende dai dati e più è 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 priori a quale istanza i possibili risultati della previsione si riferiscono (label o target features), quindi hanno già a disposizione, in input, le possibili variabili di output. I restanti attributi saranno quelli utilizzati dall algoritmo per prendere le decisioni (descriptive features). Quest ultimi rappresentano gli scenari più frequenti e hanno un vantaggio; infatti, avere già a disposizione i possibili risultati della previsione prima ancora di lanciare l algoritmo 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 possibilità, e senza label non è possibile rappresentare a priori i dati in output. In questo caso è, quindi, necessario individuare delle similitudini tra le varie istanze; questo processo è noto come clustering. Gli algoritmi di machine learning operano cercando il migliore, tra una serie di possibili modelli, cioè 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 è consistente con il dataset. Tra i metodi supervisionati e quelli non supervisionati esistono altre due categorie importanti ai fini della predictive analytics, cioè 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 l altra parte è 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 proprietà che hanno determinato le relazioni già 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 determinato 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 partite. Per ogni singola mossa fornita in input non esiste una relazione diretta con la prossima mossa più conveniente che si sta cercando di prevedere, ma l algoritmo 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 perchè è applicata in innumerevoli campi,

20 10 1 Predictive Analytics cosa ovvia se si pensa alla possibilità 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 l opportunità di possedere un formidabile strumento costituito dalle informazioni. Il successo che questa nuova opportunità 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, cioè Content Managment System, è 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 attività 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 è un applicazione 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 più 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 l analisi 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 è 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 località 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

21 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 all influenza e il numero di persone che hanno contratto realmente l influenza. Come Google stesso ha dichiarato: c è 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 può 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 l appunto, la diffusione di una malattia in una determinata regione. Basandosi su un dataset costituito da dati raccolti dal motore di ricerca e da altre fonti, in più di cinque anni, Google è riuscito a costruire un modello che funge da strumento di sorveglianza internazionale per la prevenzione delle epidemie. Gli impieghi dell analisi predittiva in ambito medico non finiscono qui: il professor Abdelghani Bellaachia e il suo team all università di Washington, nel loro articolo Predicting Breast Cancer Survivability Using Data Mining Techniques, mostrano come l analisi predittiva possa essere usata per minimizzare i rischi di contrarre il cancro al seno. Utilizzando dati storici raccolti, disponibili al pubblico, sui vari tipi di cancro, dati contenenti svariati attributi, come tempi di sopravvivenza, cause di morte, parametri vitali, etc., e implementando, tramite questi dati, degli algoritmi basati su modelli di classificazione come classificatori bayesiani, reti neurali e alberi di decisione, i ricercatori sono riusciti 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 l insorgere 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 conformità del modello sono stati raggiunti dal modello ad albero di decisione. Analisi per le riscossioni dei crediti: un gran numero di risorse finanziarie vengono spesso sprecate su clienti fraudolenti; l analisi predittiva può aiutare a ottimizzare la cessione dei crediti, identificando le strategie e le azioni legali più efficienti per ogni cliente, incrementando significativamente le entrate e riducendo le perdite. Cross-Selling: è una strategia di marketing che consiste nel mettere a disposizione dell utente beni o servizi in qualche modo collegati a un prodotto già esistente; per un azienda usare l analisi predittiva per analizzare le abitudini dei clienti può essere utile per offrire prodotti di interesse, per aumentare il profitto sul singolo cliente e incrementare la fedeltà. Fidelizzare i clienti: per affrontare la concorrenza le aziende devono concentrare i loro sforzi nel mantenere alta la customer satisfaction, premiando la lealtà del clienti e minimizzando ciò che può farli allontanare. Tuttavia, quando un cliente ha deciso di allontanarsi da un certo servizio, è praticamente già impossibile fargli cambiare idea; l analisi predittiva può far si che non si arrivi a questo pun-

22 12 1 Predictive Analytics to; analizzando i precedenti utilizzi del servizio è, infatti, possibile individuare schemi che permettono di riconoscere i fattori che determinano l allontanamento da parte dei clienti. Rilevamento delle frodi: le frodi rappresentano un grosso problema per ogni genere di attività, si va dalle transazioni finanziarie fraudolente alle false richieste di indennizzo. L analisi predittiva può ridurre le esposizioni a tali rischi. Il governo statunitense usa da molti anni questa analisi per identificare eventuali evasioni fiscali. 1.4 I Dati Nell era dell informazione i dati vengono raccolti con grande rapidità e varietà e vengono accumulati in database, documenti, , file audiovisivi, e molti altri supporti. Conoscere le varie tipologie di dati con cui si ha a che fare è essenziale per comprenderli al meglio e per categorizzarli in modo da poterli utilizzare durante il processo di previsione. Le compagnie, spesso, negli anni accumulano grandi quantità di dati grezzi ; più cose si sanno su questi dati e più si è in grado di analizzarli e usarli. Per questi motivi è utile descrivere i dati secondo delle importanti caratteristiche distintive: Dati strutturati e non strutturati: tutte le tipologie di dati finora elencati possono essere distinti in dati strutturati e non; i primi sono sempre ben organizzati; essi appaiono come formalmente ben definiti; su di essi è semplice fare ricerche o modifiche; essi sono efficienti da analizzare. In definitiva sono facilmente accessibili da persone o macchine, ma non sono disponibili spesso; l esempio più tipico è 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, è 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 , pagine web, documenti vari, file di vario genere, sparsi senza una ben precisa disposizione logica. Essi richiedono molto più tempo e molte più risorse per essere elaborati, inoltre, tra tutti i tipi di dati, sono quelli che si trovano in quantità maggiore; per questo motivo uno dei punti di forza più apprezzati dell analisi predittiva è proprio il fatto che i suoi strumenti sono capaci di processare tali dati, dando loro un significato e uno scopo. Ovviamente, è molto più efficiente avere a che fare con dati strutturati in quanto 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, poichè si tratta di una grande e variegata quantità di dati contenenti sicuramente un enorme quantità 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 disciplina del data mining contiene una moltitudine di approcci per processare i dati non strutturati, strumenti e algoritmi utili per trovare schemi nei contenuti, per

23 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 complessità dei dati non strutturati, in quanto è 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 , 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 è sempre presente una struttura ma bisogna saperla trovare. Non sempre i dati a nostra disposizione si trovano in una forma o nell altra: spesso, infatti, essi si trovano in forme miste. Possiamo trovare dati strutturati che contengono al loro interno, ad esempio nelle loro tabelle, dati non strutturati; allo stesso modo, esistono dati strutturati all interno di quelli non strutturati, o perchè si cerca di dare loro uno scopo ben preciso o perchè tali dati ne riflettono il contenuto. Prendiamo in considerazione una pagina web dove all interno 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 all interno di una serie di informazioni non strutturate rappresentate proprio dalla pagina web. In definitiva, possiamo concludere che nel flusso di informazioni al giorno d oggi è quasi impossibile trovare dei dati che si trovano in una forma o nell altra in maniera indistinta; al contrario, ci troviamo quasi sempre di fronte a situazioni miste. Resta, comunque, di grande utilità 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 contengono 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 un analisi. I dati dinamici, al contrario, vengono aggiornati continuamente, spesso a grande velocità. Ad esempio, possiamo considerare dinamiche le pagine web di Facebook o Twitter che vengono aggiornate continuamente. 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 l analisi. Esistono due tipi di approcci per analizzare questo tipo di dati, che rappresentano la tipologia più utile per chi vuole utilizzare l analisi predittiva. Il primo approccio consiste nell esaminare solo le ultime istanze dei dati, ovvero quelle più recenti, e aggiornarelo stato del modello solo in base ad essi questo permette di creare uno schema che riflette solo gli aggiornamenti più recenti. Il secondo approccio consiste nel realizzare il modello utilizzando l intero dataset, compresi i dati passatioltre a quelli più recenti, e aggiornarnelo stato solo in base a questi ultimi. I due approcci vengono scelti in base alla natura del settore al quale interessa l analisi: in molti casi è preferibile concentrarsi sui dati appena raccolti e analizzarli in tempo reale riplasmando, di volta in volta, il modello per rappresentare

24 14 1 Predictive Analytics la situazione corrente. Un tipico esempio è 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 automatica 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 loro 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 è utile fare una distinzione tra due possibili tipi di analisi, ciascuno dei quali è caratterizzato da una serie di vantaggi e svantaggi: Data-Driven Analytics: è un analisi che non richiede la definizione di un particolare obiettivo per essere realizzata. Parte dai dati utilizzando strumenti di data mining e cercando di estrapolare quante più informazioni possibili, siano essi dati interni al settore interessato o esterni, provenienti da altre fonti. Questo processoappare fondamentale se si ha a che fare con grossecollezioni di dati che, altrimenti, sarebbero impossibili da interpretare a causa delle elevate dimensioni e complessità; inoltre, più i dati sono completi e ridondanti e più risultati questo tipo di analisi riesce a fornire. Il vantaggio principale della data-driven analytics è che non è necessario possedere una conoscenza preliminare del settore per individuare i dati più utili all analisi, 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 è possibile, procedendo, sempre, con l osservazione 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 più adatti a supportare tale scopo. Al contrario dell analisi basata sui semplici dati, in questo caso è necessaria una profonda conoscenza del settore interessato alle previsioni, per capire quali risorse possono andare a favore dell obiettivo. Parte dei dati vengono usati per la realizzazione del modello; un altra 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 è che, concentrandosi su un idea ben precisa, 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 più approfondito dell intero dataset a disposizione. Conviene, quindi, se il tempo e le risorse lo permettono provare a farsi un idea su ciò che può emergere da un analisi più approfondita. Una volta scelto il tipo di analisi più adatta a supportare gli obiettivi del settore il processo può iniziare. Esso prevede vari passi che vanno dalla scelta e dalla preparazione dei dati alla visualizzazione del risultato finale.

25 1.5 Il processo di analisi Identificazione dei dati I dati che vengono utilizzati provengono da tantissime fonti e in formati molto diversi tra loro, ma non tutti sono adatte a costruire il modello. Per avere un idea chiara di ciò che può essere utile bisogna avere bene in mente quali sono gli obiettivi da raggiungere e capire quali sono le informazioni necessarie al loro raggiungimento di tale scopo. A tal fine può essere utile interrogare gli esperti del settore; ad esempio, nel mondo del marketing, una tipica richiesta è quella di voler individuare preventivamente i clienti che nell immediato futuro non saranno più interessati a una determinata offerta o ad uno specifico servizio; in questo caso potrebbe essere 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 l uso di strumenti adatti) e la qualità di questi dati. Inoltre, è possibile doverli integrare a dati già provenienti da altri dataset esterni al settore interessato per riuscire a ottenere quante più 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 è posti. Per riprendere l esempio già 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 dovrà contenere sicuramente informazioni sui clienti che hanno già rinunciato a tale servizio e quelli che, invece, non lo hanno ancora fatto. In genere, i dati più rilevanti sono quelli che riguardano gli eventi passati e che coincolgono l entità, o l insieme di entità sulle quali si sta cercando di fare previsioni. Infine, una volta in possesso di una certa quantità di dati, è necessario individuare tra questi quali variabili sono utili e quali, invece, non forniscono alcuna informazione utile. Un tipico approccio consiste nel prendere in considerazione, inizialmente, una grossa quantità di variabili e, quindi, procedendo con la realizzazione e con il collaudo del progetto, una volta acquistite alcune informazioni chiave, eliminare 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 affidabilità possibili Strutturazione dei dati Una volta individuati i dati che si considerano essere più rilevanti ai fini del progetto di analisi predittiva, è necessario, per poterli utilizzare, estrarli dalle sorgenti nelle quali sono stati individuati e inserirli in strutture organizzate, realizzate appositamente. In questo modo l insieme di dati grezzi non strutturati, provenienti da fonti eterogenee, diventa un insieme di dati strutturati, inseriti in tabelle e con gli attributi in evidenza. Questo è utile non solo per organizzare i dati in modo da poter essere utilizzabili dai vari algoritmi, ma anche per esaminarne le proprietà. In base a tali caratteristiche, infatti, viene scelto l algoritmo usato per realizzare il modello di previsione. Per alcuni tipi di dati, infatti, è necessario implementare un determinato tipo di algoritmo.

26 16 1 Predictive Analytics A volte è possibile che le fonti che vengono usate per l estrazione dei dati contengano dati già strutturati, in tal caso, ma anche nel caso in cui ci troviamo di fronte a dati non strutturati, è consigliabile realizzare separatamente un database che contenga quelli estratti, in questo modo anche nel caso in cui si dovranno modificare o eliminare i dati, ad esempio durante la fase di filtraggio dei dati errati, la sorgente dei dati verrà conservata intatta e sarà possibile recuperarli in un secondo momento Preparazione dei dati Questo passo consiste nell individuare, all interno del dataset, valori errati, valori mancanti o valori ripetuti, allo scopo di poter realizzare una previsione il più possibile basata su dati reali e integri. I valori mancanti devono essere inseriti nei limiti del possibile; dove è facile intuirne il significato è possibile inserire valori ben precisi (ad esempio, se manca il valore di un codice postale esso può essere ricavato a partire dall indirizzo); dove, invece, non è possibile individuarne il valore è possibile adottare valori di default. Indicare esplicitamente un valore è preferibile rispetto a lasciare un campo vuoto, in quanto un valore mancante può avere più possibili significati e, quindi, può portare a sviluppi imprevisti durante l implementazione dell algoritmo. I valori anomali, cioè non coerenti con le informazioni che dovrebbero contenere, nella maggior parte dei casi devono essere identificati e rimossi. Esistono, però, 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 è indice di qualcosa che non dovrebbe avvenire. Ultima categoria di dati da tenere sotto osservazione in questa fase è rappresentata dai dati ridondanti; anch essi, a volte, possono essere necessari ai fini dell analisi. Tuttavia quando non contribuiscono al processo di analisi, ma anzi appesantiscono inutilmente ildataset,èopportunoeliminarli.è,spesso,necessariousarel intuizione per individuare quali tra questi dati conservare e quali eliminare, senza dimenticare che in qualsiasi momento è possibile recuperare nuovamente le informazioni escluse e riproporle al modello per verificare se è 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 più volte durante il processo di analisi per evitare che eventuali nuovi valori contengano errori o incoerenze. Una volta identificate le variabili più 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 è quello rappresentato dai dati che vengono derivati da altri dati; è 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 è quello dell età 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 più fasi di esecuzione successive alla prima, ma, probabilmente, forniranno potere di previsione aggiuntivo al modello finale.

27 1.5 Il processo di analisi 17 Un ulteriore strategia utile per garantire l efficienza del modello consiste nel ridurre il più possibile le dimensioni del dataset o, dove ciò non fosse possibile, nel cercare di ottimizzare l accesso ai dati. Questo si traduce in operazioni di ristrutturazione e normalizzazione del dataset; in particolare, una strategia spesso utilizzata per ridurre la quantità di dati in presenza di relazioni uno a molti tra di essi, che causano un eccessivo ingrandimento del dataset, è l operazione di appiattimento. Tale operazione consiste nell inserire i dati ripetuti relativi ad una stessa istanza di un entità come attributi aggiuntivi di essa; ciò 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 Scelta del modello Un modello è una rappresentazione statistica o matematica di un fenomeno; esso rappresenta una descrizione del comportamento di un entità e può essere usato per prevedere alcune azioni. Costruire un modello consiste nell individuare una relazione matematica tra le variabili in ingresso e quelle di uscita. Analizzando i dati in possesso e utilizzando dei modelli già a disposizione coerenti con determinate tipologie di dati, si può stabilire una relazione tra le più 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 l esito di una decisione, o una possibile frode può determinare ingenti perdite. La costruzione del modello rappresenta il cuore dell analisi predittiva; essa parte dalla scelta di un algoritmo matematico che permetta di indiduare schemi e relazioni nell insieme dei dati; in particolare, ci si interessa alla scoperta delle relazioni tra le varibili in ingresso e ciò che si desidera ottenere come variabile di uscita. Durante la creazione del modello è bene tenere a mente qual è l obiettivo della sua realizzazione; un modello non è che una semplice rappresentazione matematica a meno che non ci si domandi a cosa può essere utile. Dare una precisa definizione all obiettivo che si vuole raggiungere aiuta a costruire un modello efficace e a dare ad esso uno scopo, inoltre è bene tenere a mente tutte le risorse che possono aiutare la realizzazione e le varie caratteristiche. Come già detto, infatti, la scelta dell algoritmo più adatto dipende dalle caratteristiche 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 assumerà è 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 potrebbero avere, allora si usano algoritmi di classificazione; infine, quando si usano dati con molti attributi è bene usare algoritmi di clustering. Da questi esempi emerge come avere bene in mente l obiettivo e avere una profonda conoscenza dei dati è fondamentale per scegliere l algoritmo che darà i risultati più completi; alcuni algoritmi sono perfetti per affrontare problemi specifici. Oltre a questo è utile, anche, considerare come verrà usato il modello, chi lo userà, cosa succederebbe se la previsione fosse errata e, infine, come verranno utilizzati i dati; tutto questo sempre per ottimizzare il processo di analisi predittiva.

28 18 1 Predictive Analytics Implementazione del modello Una volta scelto l algoritmo adatto a realizzare il modello un passo fondamentale nel processodi analisi predittiva è quello di dividere i dati in possessoin due gruppi, il dataset sarà 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 rappresentazione più chiara del funzionamento dell algoritmo, 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 l obiettivo della previsione. L implementazione del modello prevede una tecnica iterativa; conviene, infatti, ripetere più volte l esecuzione dell algoritmo cambiando ogni volta i dati in input. Ogni tentativo permetterà di avvicinarsi sempre di più a quella che sarà la realtà, in quanto permetterà di scavare più 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 più di un algoritmo sempre con lo scopo di far emergere nuove scoperte; è anche possibile, per un analisi ancor più approfondita, evidenziare nuovi schemi all interno 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 più risultati possibili è la tecnica chiamata cross-validation; essa consiste nel dividere i dati in n gruppi, quindi scegliere uno di questi gruppi che rappresenterà 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 ciò, i test data diventano training data e viene scelto un altro tra gli n gruppi per fungere da test data. Si continua cosìfinchè ognuno degli n gruppi è stato usato come test dataset; in questo modo si riesce ad avere una visione più ampia di ciò che può 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 ciò che potrà avvenire in futuro. Infine, verrà scelto l algoritmo più soddisfacente. In aggiunta, con il procedere delle varie prove che vengono effettuate l esperienza gioca un ruolo fondamentale in quanto, a lungo andare, aiuta a scegliere algoritmi sempre più convenienti. Tra i problemi più 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 è indice del fatto che i dati con cui si ha a che fare non hanno niente a che vedere con l obiettivo 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 nell efficienza ma, soprattutto, nella precisione dei risultati che rischiano di non rispecchiare più la realtà a venire.

29 1.6 Critiche 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 ciò che è emerso dall analisi va a favore della ragione per la quale è stato necessario cercare di fare delle previsioni; inoltre, sarà necessario verificare l efficienza dell algoritmo anche quando si ha a che fare con grossi dataset. Per determinare quali misure adottare per migliorare la qualità del modello e per vedere se esso incontra gli obiettivi prefissati, è utile osservare i risultati di tutte le implementazioni tramite l utilizzo di grafici. Il modo in cui vengono visualizzati i risultati è importante perchè, se non viene scelto un metodo semplice e immediato per la visualizzazione, a causa dell enorme mole di dati da includere nella rappresentazione di ciò che è 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 complessità dell analisi 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 possibilità finora illustrate costruire un modello predittivo sembra un operazione conveniente in qualsiasi campo in cui venga applicato. Tuttavia, sono state mosse alcune critiche dalle quali emerge un certo scetticismo per quanto riguarda l abilità di un calcolatore di prevedere gli eventi futuri. Il professor Gary King, docente all università di Harvard e direttore dell Institute for Quantitative Social Science afferma [18, pag.19] come sia impossibile determinare con adeguata precisione le variabili che determineranno il comportamento futuro di una persona, in quanto ciascuno di noi può 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 può essere modificato da qualsiasi evento, dalle relazioni personali alle condizioni atmosferiche; questo renderebbe impossibile prevedere in maniera accettabile qualsiasi comportamento e renderebbe l analisi predittiva solo una tecnica valida a livello teorico, durante le prove in laboratorio, ma che non potrebbe mai avere alcun riscontro nel mondo pratico.

30

31 2 Big Data Questo capitolo illustra brevemente il concetto sempre più diffuso di Big Data : enormi quantià di dati sempre più diffusi sul web ma anche su altri sistemi utilizzati al giorno d oggi. Ne vengono illustrate le principali caratteristiche e gli scopi per cui vengono raccolti e analizzati. Tra questi troviamo l analisi 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 diffusione capillare della rete internet hanno determinato un consistente aumento della quantità di dati raccolti e, conseguentemente, della potenziale conoscenza che si può 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 ricerca o provenienti da vari sensori; tutti questi dati sono non strutturati, oppure

32 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 già da moltissimi anni abbiano a che fare con queste ingenti quantità di dati, solo da poco più di un decennio è stato coniato il termine Big Data, per sottolineare quanto al giorno d oggi si è sempre più sommersi da un mare di dati di diverso genere. La Figura 2.2 mostra una testimonianza di ciò. Figura 2.2. Andamento della quantità di ricerche Google riguardo il termine Big Data negli ultimi anni, a testimonianza del crescere della popolarità del tema. Gli eventi degli ultimi venti anni[8, pag.8], a partire dal 1991 con l introduzione del protocollo HTTP, hanno profondamente cambiato il modo in cui i dati vengono creati e trattati. Solo per citare alcuni esempi, consideriamo l introduzione di tecnologie come il GPS, il motore di ricerca Google, l uso della rete denominato internet of things, le pagine del sito web Wikipedia, la diffusione dei social network, l enorme incremento dei dispositivi connessi alla rete (causato dalla diffusione degli smartphone 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, cioè i sistemi di gestione di database relazionali) non sono sufficienti. Talvolta, infatti, tale difficoltà è data non solo dal volume ma anche da altre caratteristiche che rendono i dati coinvolti particolarmente complessi da poter essere trattati; ad esempio, l altissima velocità con la quale questi dati vengono aggiornati e l estrema varietà 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 dell incremento che la quantità di dati ha visto negli ultimi anni basti pensare che, secondo alcuni studi, la quantità di dati che sono stati creati nel 2003 ha superato la quantità di dati digitali creati durante tutta la storia precedente a quel momento. Nel 2011, inoltre, la stessa quantità di dati è stata creata nel giro di soli due giorni. Ogni database troppo grande per essere gestito da un normale PC o server può essere considerato un insieme di big data. Negli ultimi anni si è passato da

33 2.1 Cosa sono i Big Data? 23 database dell ordine dei terabyte a collezioni di dati dell ordine dei petabyte (un petabyte corrisponde a terabyte). L eccessiva quantità di dati rappresenta un problema per molte compagnie che, spesso, sono costrette a scartare i dati in eccesso non avendo le capacità e le risorse adeguate per contenerli. Ad esempio un provider di telecomunicazioni con di clienti raccoglie, ogni giorno, circa 50 terabyte di dati; ciò significa raccogliere 5 petabyte di dati ogni 100 giorni[16, pag.2]. Analizzare una tale quantità di dati porta, sicuramente, a un gran numero di scoperte, ma per farlo è necessario possedere le risorse adeguate in termini di capacità di memorizzazione ed elaborazione dei dati. Velocità: 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, cioè vengono aggiornati con poca frequenza, come, ad esempio, l indirizzo 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 velocità di guida, e i dati biologici). Con il termine velocità si vogliono rappresentare due aspetti utili allo studio dei Big Data. Il primo è il throughtput cioè la quantità di dati che passa da un determinato canale nell unità di tempo. Il secondo aspetto da prendere in considerazione è la latenza, ossia il tempo massimo durante il quale i dati restano immutati. Creare dei tool che riescano ad usare i dati nel minor tempo possibile ed ottenere i dati in tempo reale, nonostante la complessità di questi ultimi, rappresenta una grande sfida per gli analisti che si pongono l obiettivo di scavare dentro i big data. Varietà: 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 è quello di formalizzare questa enorme varietà di informazioni in modo da poter essere compresi anche in maniera automatica. Ulteriore aspetto da prendere in considerazione è la sincerità dei dati. Molti di essi, infatti, provengono da fonti interne all organizzazione che sta realizzando il processo di analisi; ciò significa che essa ha il completo controllo sulla loro struttura e sul loro formato. Molti altri dati (tra cui informazioni finanziarie, pagine web, dati di navigazione dei GPS), provenendo da innumerevoli fonti esterne, sono spesso completamente fuori dal controllo di chi li raccoglie. Risulta, quindi, indispensabile verificare la credibilità 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 ciò che al giorno d oggi si intende quando si cerca di descrivere i Big Data. Senza prendere in considerazione aspetti quali la quantità e la qualità dei dati, il termine Big Data può essere visto come una filosofia che prevede un modo particolare di reperire, memorizzare e analizzare i dati, agendo in conseguenza a ciò che è emerso da tale analisi. Questa filosofia spinge ad esplorare, in maniera più completa possibile, tutte le risorse che si hanno a disposizione (nonostante tali risorse consistano in quantità di dati dell ordine dei petabyte, provengano da innumerevoli fonti e si presentino in formati eterogenei). Tutto ciò si sposa perfettamente con gli obiettivi dell analisi

34 24 2 Big Data predittiva in quanto maggiori quantità di informazioni significano risultati migliori e più precisi risultati. Tuttavia, non bisogna dimenticare che le grandi collezioni di dati sono intrinsecamente più difficili da analizzare rispetto ai dataset più piccoli. Ad esempio, se durante l implementazione di un modello di analisi fosse necessaria la lettura di una serie di valori, trovandosi di fronte a grandi quantità di dati, i costi computazionali aumenterebbero notevolmente; ciò può portare all incapacità di produrre risultati utili. Sia che si tratti di dati strutturati o non strutturati, la sfida principale consiste nel riuscire ad analizzare tutti i dati per individuare schemi per permettano di ottenere sempre più 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 più 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 l analisi predittiva. Il successo di queste tecniche nell ambito dei big data è dovuto al fatto che maggiore è la quantità di dati forniti agli algoritmi e più questi ultimi diventano raffinati e precisi. Ciò significa che grandi quantità di dati implicano un migliore e più affidabile esito nelle previsioni, grazie anche ai moderni sistemi di computazione che garantiscono l elaborazione di dati molto voluminosi e complessi. Una tendenza in continuo aumento è quella che prevede lo svolgimento dell analisi predittiva tramite dati raccolti da fonti molto diverse. L implementazione dell analisi predittiva in questo ambiente distribuito richiede la raccolta di informazioni, (preferibilmente e se le risorse a disposizione lo permettono, dai Big Data, o, comunque, da più 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 più di una fonte. Un tipico esempio[7, pag.297] consiste nella situazione che vede una compagnia tentare di prevedere il successo di una decisione riguardo uno dei suoi prodotti, decisione che può avere tre esiti diversi: investire molte risorse in tale prodotto per cercare di incrementarne le vendite, terminare la produzione di tale prodotto o, infine, modificarne l attuale strategia di vendita. Si può facilmente intuire come una previsione sull esito di tali opzioni possa influire significativamente sulla rendita della compagnia.

35 2.2 Big Data e Predictive Analytics 25 Al fine di costruire un modello che aiuti a prevedere l esito di ciascuna di queste decisioni, potrebbe essere di aiuto prelevare le informazioni necessarie da una moltitudine di fonti diverse, come mostrato in Figura 2.3: è qui che entra in gioco il concetto di Big Data. Tra le varie fonti dalle quali converrà cercare le informazioni utili possono esserci: il reparto ingegneristico, dal quale sarà possibile ottenere dati tecnici quali le specifiche del prodotto, il suo tempo di vita, i tempi di produzione, e molto altro ancora; il reparto vendite, dal quale sarà 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 sarà 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 l analisi di tali dati può essere completata tramite l uso di alcuni strumenti specifici tra i quali uno dei più utilizzati è 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 può essere un procedimento lungo e complesso. Una volta portato a termine, inoltre, una parte delle informazioni emerse risulterà essere inutile. Infatti, anche nel caso dei Big Data, è necessario individuare quella porzione di informazioni che vanno realmente a favore

36 26 2 Big Data del progetto di analisi predittiva (smart data). Tutto ciò ha ancora una volta lo scopo di aumentare la precisione e l affidabilità del modello di previsione. Un esperienza analoga allo studio dei big data è quella che si trovano ad affrontare le industrie minerarie durante la ricerca dei siti di estrazione dell oro[9, pag.14]. Si stima, infatti, che esistono molti giacimenti auriferi sommersi dagli oceani, contenenti migliaia di tonnellate di pepite di oro sepolte al loro interno: una quantità di gran lunga superiore rispetto a quella estratta fino ad oggi. Allo stesso modo ci sarà sicuramente una grande quantità di informazioni non ancora estratte dai big data, ma ricavare tali informazioni può essere molto costoso. Alcune volte i benefici che l analisi predittiva ottiene esaminando i big data valgono lo sforzo e le risorse impiegate durante il processo di estrazione delle informazioni, altre volte no. In base al settore in cui si effettua l analisi, utilizzare fonti esterne quali i big data può essere più 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 c è il chiaro vantaggio di ottenere moltissime informazioni aggiuntive che possono rendere il modello di previsione molto più utile; il rovescio della medaglia è costituito dal fatto che, come già detto, tutto ciò ha un costo. È, 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 quantità di dati. In entrambi gli ambiti gli strumenti devono evolversi di pari passo: complessi software per l estrazione delle informazioni richiedono grosse quantità di memoria ed elevate capacità computazionali. 2.3 Hardware e Calcolo distribuito Come è emerso da ciò che è stato detto finora la scelta di come sfruttare le potenzialità offerte dai big data è strettamente legata alle necessità individuali. Di conseguenza, le configurazioni hardware necessarie variano in base alle quantità di dati che si vogliono passare in rassegna per sfruttare i principi di data mining su di essi. In generale, grosse quantità di dati richiedono grosse capacità di memorizzazione: riuscire a conservare molti dati sulla storia passata significa realizzare previsioni molto più verosimili sul futuro. I tradizionali hard disk che utilizzano dischi magnetizzati sono molto affidabili ma hanno lo svantaggio di accedere ai dati in maniera molto più 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 un architettura tale da incrementare la velocità 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 quantità di dati che possono contenere questi dispositivi di memorizzazione è aumentata in media dal 50% al 100% ogni anno negli ultimi

37 2.3 Hardware e Calcolo distribuito anni, come mostrato in Figura 2.4, mantenendo prezzi relativamente costanti. Questi fattori hanno permesso la diffusione dell utilizzo dei big data come strumento determinante per il successo dell analisi predittiva. Figura 2.4. Aumento della capacità degli hard disk nel corso del tempo Un ulteriore soluzione è rappresentata dalla tecnologia degli SSD (dispositivi di memoria di massa costituiti da memorie flash), che non contengono dischi magnetizzati o parti meccaniche per la lettura e la scrittura. Essi hanno una velocità che può superare i 450 MB/sec, e sono più resistenti ai guasti, non contenendo parti meccaniche. Questi ultimi costituiscono una buona soluzione in quei settori in cui vengono utilizzate quantità di dati moderate, non troppo grandi, i quali cambiano occasionalmente. Sono, inoltre, disponibili anche array di SSD, ma il problema maggiore, in questo caso, è costituito dal costo. Infatti, ogni unità di memoria SSD è molto più costosa rispetto alle singole unità di memoria a dischi magnetizzati. Un buon compromesso è costuito da una strategia ibrida, che usa differenti tecnologie per andare incontro alle varie necessità. Per poter processare grandi quantià di dati è, inoltre, necessaria un adeguata capacità di calcolo. L evoluzione 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 l evoluzione dei microprocessori è stata descritta dalla legge di Moore, cofondatore di Intel, secondo cui la complessità di un microcircuito raddoppia ogni 18 mesi. Non potendo incrementare ulteriormente la capacità 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 nell analisi dei Big Data è, infine, utile citare quei meccanismi che consentono a più macchine di comunicare tra loro, creando una rete di calcolatori. Essi sono rappresentati dai vari protocolli di

38 28 2 Big Data rete e dalle molteplici infrastrutture che mettono in comunicazione le diverse unità di calcolo. Avendo a che fare con enormi flussi di informazione, infatti, può essere utile distribuire i compiti dei vari algoritmi su più macchine per alleggerire il carico sulle singole unità. Tuttavia, il trasferimento di dati attraverso una rete risulta avvenire a una velocità molto inferiore rispetto a quella delle varie componenti finora analizzate. Per questo motivo la rete rappresenta un collo di bottiglia per i vari algoritmi; è necessario, quindi, minimizzare l utilizzo del calcolo distribuito trasferendo informazioni solo quando effettivamente ve ne è bisogno. Con l incremento della quantità e della velocità dei dati che si ottengono (nei casi in cui una singola macchina non è più sufficiente ad elaborare le informazioni in un tempo utile prima che esse vengano aggiornate o, comunque, in un tempo ragionevole) non è più sufficiente assicurare i risultati di un algoritmo di analisi[11, pag.42]. In tali situazioni è necessario ricorrere a componenti distribuite su più macchine e dividere le operazioni di calcolo su più 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 quantità 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 può operare in maniera indipendente. Inoltre, le architetture distribuite devono garantire l apertura, cioè 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 può essere suddiviso in più attività(task), come mostrato in Figura 2.5;aciascunadiesseverràfornitaunafrazionedidatied essarestituiràunrisultato che dovrà essere ricomposto con i risultati forniti dalle altre attività. In alternativa, nelle situazioni più complesse, ad ogni macchina può essere affidato un algoritmo di calcolo diverso. È, inoltre, possibile distribuire i vari algoritmi su più di una rete, sfruttando le capacità offerte da diversi sistemi distribuiti; questo, però, va a svantaggio della velocità di comunicazione: più le reti sono distribuite in un area geografica ampia e più lo scambio di messaggi tra esse risulterà lento e richiederà più cicli di trasferimento per la comunicazione. Un tipico esempio di implementazione di calcolo distribuito nell ambito dei big data è rappresentato dal framework MapReduce introdotto da Google (sul quale si basa Apache Hadoop), che supporta la computazione distribuita su grandi quantità di dati ed è, quindi, capace di implementare le strategie esposte fino ad ora. Combinando insieme architetture di calcolo distribuito, sistemi con hardware avanzato, strumenti come MapReduce e Hadoop è possibile affrontare la sfida dell analisi di vaste e complesse quantità 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 edaltiancora,icostiperlagestioneditalidatisisonoabbassati

39 2.4 Strumenti di Analisi 29 Figura 2.5. Processo diviso in più sottoparti (task). significativamente. Nel seguito daremo uno sguardo ai principali tra questi strumenti di analisi MapReduce MapReduce è un framework che permette agli sviluppatori di scrivere programmi in grado di lavorare su enormi quantità 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 quantità di dati praticamente illimitate sfruttando le potenzialità offerte dalla computazione parallela. Essi presentarono MapReduce come un modello di programmazione generico e ne mostrarono un implementazione per evidenziare la praticità e l efficienza di tale modello. Durante gli anni, poi, furono create molte altre implementazioni, disponibili per i più svariati settori. Tale modello di programmazione prevede l utilizzo 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 è 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 è necessario ripetere uno stesso schema sugli stessi dati più e più volte senza modificare gli stessi. Con la programmazione funzionale, inoltre, non esiste un ordine definito con il quale vengono eseguite le operazioni e non è necessario definire esplicitamente dove i dati di output verranno salvati. Tali caratteristiche

40 30 2 Big Data rappresentano vantaggi fondamentali nel contesto dei Big Data in quanto viene garantita la possibilità di conservare i dati immutati e di proporre più volte gli stessi schemi su di essi. Inoltre, la programmazione funzionale si sposa perfettamente con i sistemi distribuiti in quanto non è 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 più in dettaglio le due attività di Map() e Reduce(). Map(): un sistema distribuito che opera utilizzando il framework MapReduce è composto da un architettura centralizzata in cui un nodo particolare(identificato come nodo centrale o nodo master) ha più 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 più processi, ciascuno dei quali svolge un compito differente. Questi compiti più piccoli vengono assegnati ad ogni nodo secondario, o slave, il quale eseguirà la procedura ottenuta in parallelo, restituendo un risultato. Per fare un esempio[10, pag.103] di un programma che può essere implementato tramite la funzione Map(), supponiamo di voler esaminare una lista di città che hanno partecipato a una recente elezione. Ogni dato prelevato dalla lista e fornito alla funzione Map() è 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 città ogni elemento sarà costituito da una chiave che rappresenta il nome della città e da un valore che rappresenta il numero di abitanti. Tramite l uso della funzione Map() si avrà 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 un implementazione della funzione stessa (ulteriore caratteristica della programmazione funzionale è quella di poter fornire ai parametri delle proprie funzioni altre funzioni). Ognuna di queste funzioni conta il numero di abitanti di ogni città e viene distribuita in un nodo del sistema distribuito, essa dovraà restituire un valore positivo se tale città possiede più di abitanti. In questo modo viene distribuita un implementazione di howmanypeople in ogni nodo, il quale restituirà il risultato indipendentemente dagli altri nodi. Da notare come anche la lista dei dati in input è stata suddivisa ed ogni frazione del dataset viene distribuita alle varie funzioni durante l implementazione 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 sull intero dataset. Reduce(): analogamente alla funzione Map(), anche la funzione Reduce() è realizzata secondo il paradigma della programmazione funzionale e riceve in ingresso una lista di elementi. Tramite Reduce() è possibile implementare una funzione 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

41 2.4 Strumenti di Analisi 31 l esempio precedente, dove era stata mostrata l implemetazione di una funzione tramite Map() la quale restituiva una lista di elementi, viene adesso mostrata l implementazione di una funzione tramite Reduce(). Il risultato della funzione howmanypeople è una lista di città le quali possiedono più di abitanti. Ogni elemento di tale lista è stato ricavato da un nodo del sistema distribuito: (no, county 1; yes, county 2; no, county 3; yes, county 4;?, county nnn) Ogni risultato è una coppia in cui viene indicato il nome della città stessa ed un valore positivo che specifica se quella città possiede o no più di abitanti. La funzione che verrà implementata tramite Reduce() si chiama isdemocrat; essa esamina ogni elemento della lista e restituisce solo quelle città 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 è 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() è 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 un operazione sulla lista dei dati selezionati. Questo appena descritto è il metodo adottato per affrontare il problema della complessità dei Big Data. In tal modo si sfruttano le potenzialità 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. Partendo 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 procedura implementata tramite la funzione Reduce() producendo l output desiderato, come mostrato in Figura 2.6. I programmatori possono implementare qualsiasi funzione tramite tale approccio; anche dovendo esaminare quantità di dati dell ordine dei petabyte, esso risulta particolarmente efficace ed efficiente in quanto sfrutta tutte le potenzialità della programmazione distribuita già illustrate. Inoltre, grazie al paradigma della programmazione funzionale, l ordine con il quale vengono eseguite le varie funzioni implementate tramite Map() è ininfluente. Con questo tipo di programmazione è prevista infatti una sorta di proprietà commutativa per le istruzioni, le quali possono essere eseguite in qualsiasi ordine. Il risultato finale sarà 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 dovrà preoccupare di come esse verranno distribuite all interno del sistema (basterà semplicemente fornire delle istruzioni da un livello superiore, anche tramite degli strumenti

42 32 2 Big Data Figura 2.6. Flusso dei dati lavorati tramite MapReduce quali Apache Hadoop). Il resto del lavoro verrà svolto da MapReduce che risiede in un livello inferiore secondo un architettura a strati in cui l utente, o lo strumento, di livello più alto non vuole conoscere il funzionamento delle applicazioni di livello inferiore ma è interessato semplicemente al risultato che esse forniranno. MapReduce include, anche, altre caratteristiche per la gestione dei vari processi che vengono generati. È presente uno scheduler che fa sì che tali processi abbiano maggiore priorità e vengano eseguiti prima che la funzione implementata tramite Reduce() venga mandata in esecuzione. In questo modo essa non potrà essere lanciata 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, verrà mandata in esecuzione la funzione Reduce(). Se, inoltre, il numero di sottoprocessi è maggiore rispetto al numero di nodi presenti nel sistema allora lo scheduler si occuperà di far sì che ognuno di essi venga servito. È presente, anche, un meccanismo di gestione degli errori tale che, se uno dei nodi non riesce a portare a termine l esecuzione di un processo ad esso assegnato, il sistema riconosce in maniera automatica l insorgere di tale problema e reagisce (talvolta anche assegnando tale processo a un altro nodo). Per sfruttare al massimo le potenzialità degli strumenti offerti da MapReduce sono necessari ulteriori tecnologie che, partendo dai meccanismi che tale piattaforma offre, permettono di affrontare tutte le sfide che l analisi dei Big Data propone. Uno di questi strumenti (forse il più utilizzato) è Apache Hadoop Apache Hadoop Il progetto di Hadoop nasce dall esigenza di avere un mezzo per gestire grosse quantità di dati in modo semplice e pratico. Prima della nascita di tali strumenti i

43 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 ciò 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, l ingegnere Doug Cutting, terminò il progetto nel 2004 utilizzando come punto di partenza il framework MapReduce di Google. Proprio come MapReduce, infatti, l approccio di Hadoop per affrontare la complessità dei Big Data consiste nel dividere il problema in più passi minori e nel risolverli parallelamente. Le componenti principali di Hadoop sono due: Hadoop Distributed File System. Un file system distribuito è un particolare tipo di file system che permette la memorizzazione di file e risorse su dispositivi di archiviazione distribuiti in una rete informatica, anzichè archiviati su un dispositivo locale. L Hadoop Distribuited File System, o HDFS, è stato ideato per soddisfare alcuni requisiti, quali la scalabilità e l affidabilità. Esso è in grado di gestire un numero elevatissimo di file (anche dell ordine dei petabyte). Analogamente 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 un applicazione chiamata namenode. Tale applicazione gestisce l intero file system, controlla l accesso ai file (per operazioni di lettura, scrittura, etc.) e determina come essi verranno suddivisi, nei vari nodi, all interno di blocchi da 64/128MB. La responsabilità del namenode è quella di tenere traccia della posizione nella quale i vari blocchi, che compongono ogni file, vengono distribuiti. Inoltre, il namenode offre una strategia di replica e di controllo degli errori che garantiscono l affidabilità 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 è a conoscenza di tutto ciò che avviene sugli altri nodi; quindi, nel momento in cui un nodo non riuscirà più a gestire il flusso delle informazioni dirotterà 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 è 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. L accesso a ogni datanode è 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 sarà di nuovo capace di accettare nuovi dati in ingresso. Questo meccanismo permette al sistema di essere sempre bilanciato ed è completamente trasparente all utente, il quale vede l intero sistema come se fosse una macchina singola. Al fine di garantire l integrità 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 più volte sui vari nodi; questa funzionalità, oltre a rappresentare un

44 34 2 Big Data ulteriore punto di forza per l affidabilità del sistema, garantisce una riduzione dei tempi di accesso per rendere più efficiente il recupero dei dati. Ulteriore punto di forza di Hadoop è la possibilità di interagire con diversi tipi di dati. L HDFS accetta qualsiasi formato, strutturato e non strutturato, proveniente da qualsiasi tipo di fonte. È possibile memorizzare file di testo, , foto, video, post provenienti da social network, nonchè 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 dimensioni più 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 più grandi. Hadoop MapReduce: è un implementazione del framework MapReduce di Google. Tale versione prevede una serie di funzioni precostruite per affrontare il problema della complessità 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 all interno del sistema distribuito e prelevati tramite HDFS. Prima che i dati possano essere forniti alla funzione implementata utilizzando Map(), come visto precedentemente, è necessario adattarli in modo che rispettino i parametri accettati da tale funzione. Ogni parametro fornito alla 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, elaborerà i dati così convertiti e fornirà 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 un applicazione 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 un applicazione 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 l elaborazione finale. Ciascuno di questi meccanismi è presente su ogni singolo nodo: quando i risultati vengono resi disponibili essi convergono nel nodo che dovrà 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 è emerso finora, Hadoop fornisce una serie di strumenti per rendere estremamente semplice il lavoro con i Big Data. Al contrario dei normali database relazionali, i quali prima di poter ricevere i dati devono essere preventivamente adattati

45 2.4 Strumenti di Analisi 35 alla loro struttura, Hadoop permette di memorizzare le informazioni ed estrarle in qualsiasi momento e senza un opportuna preparazione. In aggiunta, esso porta una serie di vantaggi già esaminati, quali l affidabilità, la gestione degli errori, la velocità 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 strumenti per incrementare la versatilità 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 può avere a che fare nel contesto Big Data. Questo bagaglio di tecnologie appare indispensabile quando si vogliono estrarre informazioni da un mondo di dati così vasto: cercare di comprendere i Big Data senza tali strumenti è come cercare di svuotare l oceano usando un cucchiaio[11, pag.121] 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 l analisi predittiva (come illustrato in Figura 2.7). Figura 2.7. L ecosistema di Hadoop In assenza di tali tecnologie il compito degli esperti del settore sarebbe molto più complesso in quanto si dovrebbero implementare da zero le tecnologie che permettono di realizzare un modello efficace. La loro esistenza quindi rappresenta un opportunità per tutti coloro che vogliono includere l universo dei Big Data alla loro analisi. Yarn: Yarn (acronimo di: Yet Another Resource Negotiator) è una piattaforma che contiene uno scheduler il cui compito è quello di allocare le risorse di sistema alle varie applicazioni implementate dall utente. Lo scheduling dei processi, nonostante sia gestito da MapReduce, non garantisce la flessibilità e l efficienza che vengono fornite dal servizio Yarn. Quest ultimo si prende carico della gestione delle risorse (quali la memoria, la CPU e la rete) e controlla l esecuzione delle applicazioni. Se queste ultime dovessero richiedere un numero maggiore di

46 36 2 Big Data risorse a supporto dell esecuzione, Yarn le fornirà loro aumentando l efficienza complessiva del sistema. Di conseguenza, tale framework è un ulteriore strumento 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 è composto da righe e colonne, ma non esiste alcuna relazione tra i dati contenuti all interno del database. Ogni colonna rappresenta una famiglia di informazioni mentre ogni riga è identificata da una chiave che può essere una stringa, un valore numerico o, perfino, un dato strutturato: ciò rende l accesso ai vari dati molto flessibile. Lo schema della base di dati Hbase non è predefinito; quindi, in ogni momento, è possibile aggiungere righe e colonne: questa caratteristica si sposa perfettamente con i Big Data i quali si evolvonomolto in fretta nella loro varietà. Inoltre, i dati contenuti in Hbase vengono replicati, secondo le specifiche di HDFS; in questo modo l accesso ai vari dati risulta essere più rapido. Hive: è un infrastruttura che implementa un linguaggio simile a SQL, chiamato HiveQL, il quale permette di realizzare interrogazioni sui dati contenuti in HDFS. Diventa, così, possibile analizzare i dati senza dover ricorrere ad applicazioni implementate esplicitamente tramite Map() e Reduce(); ciò viene fatto in maniera automatica e trasparente per l utente. Hive non è progettato per ottimizzare i tempi di risposta: i risultati di una query possono essere restituiti anche dopo moltissimo tempo a causa della complessità dei dati. Per questo motivo Hive è 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 l analisi predittiva. Esso contiene librerie di algoritmi di data mining per implementare metodi quali clustering, classificazione, e molti altri, direttamente su grandi quantità di dati. Ciò avviene grazie alla possibilità di implementare Mahout su reti distribuite che vengono già gestite da Hadoop. In tal modo non è necessario possedere le conoscenze informatiche per la costruzione del modello utile all analisi predittiva: le conoscenze del settore saranno sufficienti per la scelta delle fonti e dell algoritmo più 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 capacità del paradigma MapReduce; anche in questo caso l architettura usata è quella a livelli in cui applicazioni di livello superiore (in questo caso, gli algoritmi forniti da Mahout) utilizzano per i loro scopi infrastrutture già messe a disposizione, quali il framework MapReduce offerto da Hadoop. Mahout è un progetto relativamente giovane e, quindi, aperto allo sviluppo di nuove funzionalità e nuovi algoritmi per includere l implementazione di tutte le tecniche e i modelli che l analisi predittiva richiede. Gli strumenti finora esaminati rappresentano solo una piccola parte di tutti quelli 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 d uso dei Big Data, e con l aumentare, negli ultimi anni, delle richieste di metodi sempre più accessibili per sfruttare tali risorse, è sorta la neces-

47 2.4 Strumenti di Analisi 37 Figura 2.8. Il logo di Apache Mahout sità di sviluppare nuove tecnologie sempre più aperte. Per tale ragione una parte dell ecosistema di Hadoop è dedicata sempre più ad applicazioni che non richiedono conoscenze informatiche o specifiche del particolare settore. Tra questi strumenti, citiamo Pig, Sqoop e Zookeeper: essi rappresentano l evoluzione del concetto di gestione dei Big Data, sempre più accessibili e meno costosi da analizzare. Tutti questi strumenti, inoltre, sono open-source e quindi sono utilizzabili da chiunque voglia usufruire delle potenzialità dei grossi flussi informativi per i propri scopi.

48

49 3 I Modelli di Previsione In questo capitolo vengono illustrati, dal punto di vista teorico, i più comuni modelli i quali rappresentano il cuore dell analisi 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 realtà (e, in seguito, a prevederla) apprendendo dall esperienza. 3.1 I Modelli come Strumento di Previsione I modelli rappresentano il cuore dell analisi predittiva. Per questo motivo è necessario 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 più generale possibile, un modello è la rappresentazione di uno stato, un processo, o un sistema che si intende comprendere o del quale si vuole conoscere il comportamento. Nel caso dell analisi predittiva i modelli si rivelano interessanti in quanto consentono di trarre delle conclusioni sugli eventi osservati, 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 varietà garantisce la possibilità di descrivere qualsiasi fenomeno e, allo stesso tempo, di adattarsi a qualsiasi tipologia di variabili che si intende mettere in relazione. Un modello può essere costituito da un equazione matematica, la quale mette in relazione due o più variabili che possono essere osservate e misurate; esso può, inoltre, essere composto da un insieme di regole. L esempio di un tipico modello è rappresentato dalla seconda legge di Newton. Essa mostra come l accelerazione di un corpo sia direttamente proporzionale alle forze agenti su di esso e inversamente proporzionale alla sua massa. Tale legge viene così rappresentata: F = m a (3.1) In questo caso il modello è rappresentato da un equazione. Quest ultima mette in relazione la somma delle forze F che agiscono su un oggetto di massa m con

50 40 3 I Modelli di Previsione l accelerazione a che tale oggetto subisce in risposta. Questo semplice modello ci permette di compiere delle previsioni riguardo la realtà circostante. In questo caso, applicando una forza a un oggetto (di cui conosciamo già la massa) è possibile prevedere l accelerazione che esso subirà. Dopo diverse osservazioni dei risultati prodotti da tale modello, ottenuti a partire da una serie di campioni di forze in ingresso, sarà possibile prevedere con certezza le conseguenze di una qualsiasi forza che verrà applicata all oggetto di interesse. L esempio appena illustrato mette, inoltre, in evidenza quanto sia importante effettuare una preventiva preparazione dei dati prima di che essi vengano utilizzati. L oggetto osservato, oltre la massa indicata con m, possiede diverse altre caratteristiche (o attributi) che possono essere più o meno interessanti ai fini del risultato che si vuole ottenere. Specifiche come: il colore, la temperatura, la posizione nello spazio, e molte altre che caratterizzano tale oggetto, risultano essere irrilevanti per tale del modello ai fini di calcolare la massa dell oggetto stesso. Per questo motivo molti dettagli dovranno essere rimossi prima dell elaborazione dei dati, concentrando così la propria attenzione solo sulle proprietà realmente indispensabili. La seconda legge di Newton è stata descritta con un modello molto semplice, nel quale entravano in gioco solo tre attributi dell oggetto (che può essere considerato come l istanza 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; l accelerazione rappresenta, al contrario, la variabile dipendente, o di uscita, ossia un valore incognito che può essere derivato attraverso il modello partendo dalle variabili di ingresso. Quest ultimo consiste in una funzione che mette in relazione tali caratteristiche. In particolare, nell esempio illustrato, la funzione matematica è una relazione lineare tra le variabili in ingresso e quelle in uscita. Questo tipo di modello è estremamente semplice in quanto utilizza poche variabili e gode della proprietà di linearità. In generale i modelli più 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 può, a volte, essere rappresentato da più modelli matematici. La scelta del metodo più conveniente, al fine di ottenere i risultati che meglio rispecchiano la realtà, non è semplice e spesso richiede diversi tentativi e l uso dell esperienza. Nella maggioranza dei casi, i modelli che richiedono più attributi sono anche quelli che descrivono con maggiore accuratezza gli eventi. Non sempre, tuttavia, un modello più complesso, come ad esempio un modello non lineare con molte variabili in ingresso, conviene più 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 quantità di rumore tale da rendere imprecisa la misurazione. In questi casi fornire molte variabili al modello non farà che incrementare il grado di imprecisione. Talvolta, invece, potrebbe essere impossibile ottenere le variabili necessarie all implementazione 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 sarà possibile avere un quadro più 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

51 3.1 I Modelli come Strumento di Previsione 41 che assumeranno in futuro. Tali regole, contrariamente a quanto mostrato tramite l esempio 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 ciò che si è 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 quantità di pioggia. Tramite tali informazioni, osservandone le variazioni attraverso una serie di dati campione, è possibile ricavare un modello che potrà essere utilizzato con dati raccolti in futuro. Sarà, quindi, possibile, ad esempio, prevedere il comportamento delle precipitazioni in posti nei quali non è stata fatta alcuna misurazione. Esistono varie categorie di modelli costruiti in questo modo. Questi ultimi possono essere suddivisi in base al compito che svolgono; alcuni permettono di ottenere una variabile dipendente che rappresenta un determinato gruppo di dati, altri restituiscono valori ben precisi. In senso ancor più generale è 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 misurazioni. A questa categoria appartiene il modello già illustrato del secondo principio di Newton, implementato attraverso valori misurati in maniera ben precisa. La seconda categoria è 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 dall impossibilità di misurare con precisione quelle variabili che hanno un maggiore impatto sull implementazione del processo. Un tipico esempio di processo stocastico è il modello che tenta di prevedere, con probabilità ben definita, il risultato del lancio di un dado. Tale modello può essere così definito: P(Y = y) = 1 6,y {1,2,3,4,5,6} (3.2) tali simboli indicano che la variabile di uscita Y può assumere uno tra sei possibili valori; ciascuno di essi ha una probabilità su sei di essere quello corretto. In questo modo è possibile conoscere tutti i possibili risultati e con quale percentuale ci si può aspettare di ottenere ognuno di essi. Esistono diverse altre caratteristiche per suddividere ulteriormente i vari modelli in più categorie. Individuare differenti gruppi a cui appartengono questi ultimi è 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 ciascuno di essi conosciamo solo alcuni attributi (ma che non ci permettono di ricondurli ad una determinata categoria) si utilizzano algoritmi di apprendimento non supervisionato. I modelli realizzati attraverso tali algoritmi permettono di individuare

52 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 è caratteristico dei modelli di clustering. Il vantaggio di questi ultimi è quello di poter gestire collezioni di dati non etichettati, scoprendo gruppi di appartenenza nascosti tra di essi; in questo modo sarà 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 è, spesso, dovuta ad un errore nella scelta del modello che viene usato con il dataset a disposizione. Su una stessa collezione di dati, infatti, è possibile agire tramite un numero praticamente illimitato di algoritmi differenti; ognuno di essi può, talvolta, comportare un errore che allontana i risultati ottenuti da quelli reali. Questo concetto è facilmente comprensibile quando si usano particolari modelli lineari detti modelli parametrici. Questi ultimi sono rappresentati da una funzione lineare, a parametri X 1,X 2,...,X n : Y = f(x 1,X 2,...,X n ) (3.3) Modificando tali parametri è possibile individuare la funzione che meglio si adatta a rappresentare la realtà. In questo caso l errore si definisce riducibile in quanto è possibile eliminarlo scegliendo opportunamente un modello (al contrario di un errore irriducibile che può sorgere, ad esempio, quando non si possiede un numero sufficiente di parametri). Per contro, un modello non parametrico non fa alcun riferimento ad una possibile forma delle variabili di restituzione; in situazioni del genere individuare un errore risulta essere più complesso. Il campo di interesse della maggiorparte 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 quantità 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 esempioil generedi una personaola possibilepatologiadacui èaffetta, ottenuti i sintomi in ingresso). La scelta tra queste due categorie è, ovviamente, dettata dalle necessità richieste dall implementazione 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 Nell illustrazione di alcuni degli innumerevoli modelli a disposizione per lo sviluppo dell analisi predittiva su ogni possibile dataset è bene iniziare da quelli implementati 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; ciò significa che non è disponibile, tra i loro attributi, una variabile di output. Quest ultima 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 è semplice modellare una

53 3.2 Data Clustering 43 realtà 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 più gruppi di dati contemporaneamente, non possono, perciò, essere usati per determinare 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 è 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, è possibile dare un significato ad un flusso di informazioni che, altrimenti, non avrebbe alcuna utilità pratica. Come mostrato nella Figura??, per ricondurre ogni oggetto ad una determinata categoria, l algoritmo 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 attività 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 è composto da una collezione di oggetti (ossia, istanze di determinati dati) i quali derivano, spesso, da misure ed osservazioni e che vengono rappresentati 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 attributi di ciascuna di esse. Applicando un algoritmo di clustering, tali oggetti vengono suddivisi in gruppi chiamati cluster, cioè collezioni di istanze aventi caratteristiche in comune. Ciascun gruppo possiede un particolare valore che rappresenta, meglio di qualsiasi altro oggetto all interno di esso, la categoria stessa. Tale istanza è detta cluster representative. Tutti gli algoritmi di clustering, riassumendo, hanno la capacità di esaminare intere raccolte di dati (anche di grandi dimensioni), individuare

54 44 3 I Modelli di Previsione gruppi caratteristici all interno di essi e, infine, associare ciascun gruppo gruppi a un particolare valore, il quale avrà tutte le caratteristiche della categoria di appartenenza. La similitudine tra due o più oggetti è tanto più forte quanto più elevato sarà un indice di verosimiglianza. Ogni istanza viene confrontata con il cluster representative e, tramite una funzione matematica, viene restituito un valore numerico indice del grado di verosimiglianza tra l oggetto e la categoria alla quale appartiene. La scoperta dei gruppi di appartenenza è essenziale per formulare idee ed ipotesi sulla struttura dei dati e per meglio comprenderli. Essa può essere utile per suddividere le informazioni al fine di esaminarle al meglio. Allo stesso tempo può essere direttamente usata come strumento di previsione in quei determinati ambiti in cui è utile individuare una categoria di appartenenza delle variabili di output. Per citare un possibile utilizzo, nell ambito del marketing ad esempio, potrebbe essere necessario individuare gruppi di clienti i quali condividono gli stessi interessi o necessità, quindi, prevedere quale sarà 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 già in possesso. Con tale strategia è possibile prevedere il comportamento di questi ultimi non appena vengono prelevati. È possibile individuare un tipico esempio di quest ultimo vantaggio nelle applicazioni in cui è necessario categorizzare una , appena ricevuta, come messaggio desiderato o come messaggio di spam. Un simile strumento di predizione ha la necessità, tramite un algoritmo di clustering, di definire due cluster ben precisi: uno contenente di spam e l altro contenente da leggere. Attraverso il confronto con le caratteristiche di queste due categorie, l algoritmo sarà capace di prevedere, con buona approssimazione, a quale dei due insiemi associare ogni nuova in arrivo, esaminando gli attributi messi in evidenza che quest ultima possiede. É 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, è necessario evidenziare gli attributi più 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 può voler dire mostrare il numero di volte in cui un determinato termine appare all interno del testo, come mostrato in Figura 3.2. Allo stesso modo, è possibile scegliere qualsiasi attributo che caratterizza un utente di un social network. È possibile scegliere le proprietà dei dati a disposizione e, successivamente, suddividere (in diversi e appropriati cluster) le istanze di tali dati in funzione delle proprietà prescelte K-Means Il più semplice algoritmo di clustering è l algoritmo K-means. Esso rappresenta il metodo più semplice tra quelli usati nell apprendimento automatico (machine learning). 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 caratteristiche di input e output; K rappresenta l input dell algoritmo ed è, inoltre, il numero

55 3.2 Data Clustering 45 Figura 3.2. Collezione di documenti in formato tabulare; gli attributi, in questo caso, rappresentano le parole più frequenti all interno del testo. Le lettere da A a F indicano le istanze dei documenti di cluster che verranno determinati all interno del dataset. La parola means indica l output dell algoritmo; si riferisce al significato di ognuno dei K cluster individuati dall algoritmo. L algoritmo opera nel seguente modo: esso seleziona K oggetti in maniera casuale 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 è 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 representative verso il quale possiede la distanza minore. A questo punto vengono scelti dei nuovi cluster representative, esaminando le caratteristiche degli oggetti appena aggiunti 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 l aggiunta di nuovi dati, quindi, rappresentato la scelta migliore all interno del cluster. Per mostrare un esempio [7, pag.97] del funzionamento dell algoritmo 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 è presente l indice di gradimento che ciascuno di essi ha mostrato nei confronti di due particolari prodotti. Figura 3.3. Un dataset relativo a dei clienti

56 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 sarà costituito da una tupla, ossia un insieme di attributi relativi ad una stessa istanza. In tal modo l algoritmo costruisce due cluster e assegna, a ciascuno di essi, il cluster representative appena determinato. Per ogni elemento all interno 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: d(x 1,x 2 ) = (x1,x 2 ) 2 (3.4) In questa formula x 1,x 2 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 l oggetto con ID cliente pari a 2, la distanza tra tale elemento e il primo cluster sarà: d(x 1,x 2 ) = (3 2) 2 +(4 2) 2 = 2,23 (3.5) mentre la distanza tra l elemento con ID cliente pari a 2 e il secondo cluster sarà: d(x 1,x 2 ) = (3 10) 2 +)(4 14) 2 = 12,20 (3.6) Questo elemento verrà, quindi, collocato nel secondo cluster, essendo la distanza tra esso ed il cluster representative con ID pari a 4 la minore tra le due. È bene precisare che il calcolo della distanza euclidea non è l unico strumento utile alla scoperta della somiglianza tra due elementi; ne esistono molti altri, impiegati a seconda delle evenienze (nel caso di stringhe, ad esempio, è 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, è necessario ricalcolare i K cluster representative secondo le specifiche fornite. Al contrario della fase iniziale, in tal caso, quest ultimi verranno scelti separatamente all interno di ogni cluster anzichè all interno dell intero dataset. Il risultato sarà quello illustrato nella Figura 3.4. Figura 3.4. Risultato dell algoritmo K-means In tale risultato le varie istanze sono state distribuite ai rispettivi cluster ed i nuovi representative sono stati scelti. L algoritmo K-means è un algoritmo di tipo iterativo; ciò significa che il processo va ripetuto ogni volta che un nuovo elemento viene aggiunto al dataset. Per tale ragione, nell esempio appena illustrato, con l aggiunta di una nuova istanza al dataset,

57 3.2 Data Clustering 47 ed una volta associata quest ultima al gruppo più consono, è necessario aggiornare la scelta del representative. In questo modo la suddivisione dei vari oggetti risulta sempre più precisa. Gli algoritmi basati sul partizionamento sono stati a lungo gli algoritmi più diffusi prima dell avvento 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), l algoritmo K-means presenta una complessità temporale pari a O(nKt) (dove n è il numero di elementi e K il numero indicato di cluster desiderati). Per tale motivo non è consigliabile utilizzare un simile approccio in presenza di grossi database, in cui l elevato valore di n renderebbe troppo costoso (dal punto di vista computazionale) l esecuzione del metodo K-nearest neighbors L algoritmo 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 è usato come soglia per decidere se un elemento sia più o meno somigliante ad un altro. In tal modo, una volta esaminati tutti gli elementi, è possibile associare quelli simili tra di loro a uno tra i K gruppi, cioè cluster, disponibili. Si tratta di un algoritmo molto simile all algoritmo K-means. Anch esso 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 caratteristiche dei dati a disposizione. Tale fase viene spesso realizzata mediante un training dataset; in seguito, con l aggiunta di nuovi elementi, viene creata la matrice delle distanze, la quale deve essere aggiornata ogni volta che un nuovo elemento entra a far parte del dataset DBSCAN clustering Un cluster può essere visto come un area, in uno spazio n-dimensionale, caratterizzata da una maggiore densità di oggetti [13, pag.234]. Tali oggetti (ossia i dati) saranno visti, secondo quest ottica, come dei vettori a n dimensioni. Secondo tale descrizione, la densità può essere definita come il numero di elementi in rapporto ad una porzione unitaria dello spazio a n dimensioni. La quantità n viene definita dal numero di attributi che caratterizzano ogni elemento. Nella Figura 3.5, ad esempio, 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 densità si trova vicina ad altre zone a densità minore, tale zona può essere identificata come un cluster. È anche possibile evidenziare le aree definite come cluster come un sottoinsieme dell area alla quale appartengono i diversi punti che rappresentano le varie osservazioni. Partendo da un elemento A, il quale possiede attributi che si avvicinano molto a quelle caratteristiche del cluster che si vuole mettere in evidenza, è possibile tracciare un intorno di raggio ε, come mostrato in Figura 3.6. Qualsiasi elemento

58 48 3 I Modelli di Previsione Figura 3.5. Densità del dataset (la cui posizione, anche in questo caso, è funzione di due attributi) ricada all interno dell intorno del punto A fa parte del cluster. Questo tipo di misura è chiamata center-based density. Figura 3.6. Sottoinsieme di elementi che identificano un cluster Alcuni algoritmi si basano sul calcolo della densità 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 all interno del dataset. Uno dei più comuni algoritmi di tale genere è DBSCAN (Density-Based Spatial Clustering of Applications with Noise). Quest ultimo crea dei cluster identificando le

59 3.2 Data Clustering 49 zone con alta e con bassa densità all interno dello spazio a n dimensioni che contiene tutti i punti. Non è possibile fornire a priori il numero di gruppi da identificare; l algoritmo troverà in modo automatico tutte le zone in cui vi è un alta presenza di elementi con caratteristiche simili. DBSCAN accetta in ingresso due parametri: il primo è il raggio ε che ogni intorno (il quale identifica un cluster) deve avere. Il secondo è un valore che indica il numero minimo di elementi che ogni cluster deve possedere per essere identificato come tale. L algoritmo esamina un punto scelto in maniera casuale ed osserva tutti gli elementi contenuti nel proprio intorno. Per fare ciò 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 ciò non dovesse avvenire, cioè nel caso in cui nell intorno di raggio ε del punto scelto non dovesse ricadere un numero sufficiente di elementi, il punto viene etichettato come rumore. Un rumore è definito come un punto, o un insieme di punti, sparsi nell area con pochi altri oggetti intorno ad essi. Ciò 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. È bene osservare, tuttavia, che un punto etichettato come rumore potrebbe essere successivamente incluso nell intorno 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. L algoritmo si avvale del concetto di density-reachability per la definizione dei vari cluster. Secondo tale definizione, un punto q si dice direttamente raggiungibile daun punto p (directly density-reachable) setraidue non vi èuna distanzadi valore superioreaε.seesisteunasequenzadipuntip 1,p 2,...,p n,direttamenteraggiungibili tra di loro, dei quali p 1 = p e p n = q, allora si dice che q è 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 all interno

60 50 3 I Modelli di Previsione degli intorni di raggio ε dei punti p 1,p 2,...,p n, 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 sarà circondato da un certo numero di elementi definiti come rumore. Il motivo per cui si utilizza un algoritmo di clustering basato sulla densità consiste, spesso, nel fatto che l utilizzatore non ha la necessità o la possibilità di indicare a priori il numero K di gruppi da individuare. La complessità temporale dell algoritmo è pari a O(n 2 ) in quanto, per ogni elemento, è 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, può essere svolta in un tempo logaritmico; in tal caso il tempo complessivo dell operazione di ricerca, svolta su tutti gli n elementi, diventa pari a O(n lgn). Nonostante quest ultimo costo temporale appaia essere molto conveniente, l algoritmo DBSCAN presenta alcuni limiti. Esso non può essere impiegato per analizzare insiemi di dati con grandi differenze nelle varie densità. Ciò è causato dal fatto che non è 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 densità di quest ultimo insufficiente per essere riconosciuto come gruppo. Per ogni algoritmo di clustering la scelta dei parametri in ingresso, come il raggio ε in DBSCAN, è molto importante per la riuscita dell algoritmo 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 dell algoritmo più verosimili, dunque modelli più affidabili. 3.3 Data Classification Il data clustering, come visto finora, viene utilizzato per descrivere i dati attraverso l estrazione di gruppi o categorie a cui è possibile ricondurre ogni osservazione, sfruttando le similitudini tra queste ultime. Un simile processo può essere indispensabile per diverse applicazioni, mentre per altre può 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. Nell ambito del data mining, viene definito data classification l insieme dei processi che hanno il compito di etichettare gli oggetti (cioè le istanze dei dati) come membri di una ben determinata categoria. Lo scopo di questa categorizzazione è quello di creare un modello che permetta di prevedere in quale gruppo collocare un entità composta da un insieme di attributi e, quindi, un istanza. Tale definizione generale copre un gran numero di campi di applicazione; è 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 l uso di algoritmi di classificazione. In sostanza, in tale ambito, un classificatore è un insieme di procedimenti in grado di analizzare le informazioni in modo da determinare, in maniera automatica, i possibili rischi ai quali si andrà incontro concedendo un prestito ad un cliente con cui l organizzazione non ha

61 3.3 Data Classification 51 mai avuto rapporti precedentemente. Un ulteriore possibile applicazione, in ambito commerciale, prevede l uso dei classificatori per individuare le aree geografiche all interno delle quali un particolare prodotto potrà riscuotere maggiore interesse. Le potenzialità di tali strumenti sono quasi illimitate; avendo a che fare con molteplici applicazioni, appare naturale l esistenza di molti algoritmi per lo studio di tali fenomeni. Si può 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 dall esperienza (ossia attraverso un set di dati precedentemente ottenuti). Tramite tali dati storici è, 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. L obiettivo è quello di istruire la macchina riguardo le regole e gli schemi nascosti all interno dei dati che determineranno il funzionamento del modello. La seconda prevede l uso dei dati di test al fine di sfruttare il modello, precedentemente ottenuto, per compiere previsioni, e valutare i risultati ottenuti per studiarne l efficenza. Tale metodologia è molto comune nel processo di analisi predittiva. I dati possono 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 è quello di analizzare le comunità virtuali ed ottenere informazioni quali gli indici di gradimento nonchè informazioni tecniche e statistiche varie relative ad un particolare prodotto. Usando tali informazioni è 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 più comuni Reti Neurali Una rete neurale è un modello il cui funzionamento viene ispirato dall organizzazione dei neuroni nel cervello umano. Il modello prende tale nome poichè è composto da elementi che rappresentano dei neuroni artificiali, i quali imitano matematicamente le proprietà delle cellule cerebrali umane. La definizione di tale modello risale al 1940; tuttavia, in passato, tale modello non ebbe particolare successo. La causa di ciò fu da imputare alle limitate capacità computazionali dell epoca; con lo sviluppo delle risorse di programmazione distribuita si è potuto assistere, negli ultimi anni, ad un rinnovamento di interesse nei confronti di esso. Essendo ideato e costruito per imitare le capacità 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. Attraverso il loro utilizzo è possibile analizzare dati passati e presenti per stimare il

62 52 3 I Modelli di Previsione valore futuro di questi ultimi; inoltre, esse vengono usate per trovare complesse correlazioni nascoste all interno dei dati. Tutto ciò viene svolto con procedure analoghe a quelle utilizzate dalle cellule del cervello, seppur in maniera molto più semplice. Il principale vantaggio dell utilizzo di modelli basati su reti neurali consiste nel fatto che essi sono capaci di gestire istanze particolarmente ricche di attributi. Inoltre sono intrinsecamente vantaggiosi quando è necessario collocare i dati di output in più di due gruppi di classificazione. Per spiegare il funzionamento delle reti neurali è utile, per prima cosa, mostrare l analogia con le cellule cerebrali umane. I neuroni possono essere pensati come una rete di unità 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, cioè il centro del neurone. Tale conversione, da segnale esterno a segnale locale, può essere rappresentata matematicamente attraverso un valore detto peso il quale moltiplica il segnale in input. Quest ultimo può essere positivo, nel caso di segnali chimici attivatori, o negativo, nel caso di inibitori. Il centro della cellula, o soma (cell soma), raccoglie tutti questi segnali (proporzionali a quelli forniti in ingresso) mediante un processo che può essere assimilato a una somma. Il risultato determina un potenziale che, una volta raggiunta una certa soglia (bias), permette il trasferimento dell informazione attraverso l assone (axon). Nella Figura 3.8 vengono mostrate le componenti appena citate. Figura 3.8. Struttura di un neurone Analogamente, una rete neurale è un interconnessione 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 ciò viene illustrato, dal punto di vista matematico, nella Figura 3.9. Per rappresentare la soglia oltre la quale il segnale viene inviato, è possibile utilizzare una funzione detta funzione di attivazione. Essa può essere, ad esempio, un gradino unitario g(x) così definito:

63 3.3 Data Classification 53 Figura 3.9. Struttura di un neurone artificiale g(x) = { 1,x < 0 1,x 0 (3.7) L intero processo può essere riassunto, matematicamente, mediante l equazione: y = g(w 0 + p w i x i ) (3.8) La funzione di attivazione appena mostrata rappresenta una delle soluzioni più semplici; tuttavia, il modello può essere implementato attraverso l utilizzo di più funzioni di soglia. La caratteristica comune di tali funzioni è quella di fornire due possibili valori di output in base al superamento, o meno, di un determinato valore, detto valore di soglia. Una di esse, la funzione sigmoidea, è 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 diminuire la pendenza della funzione gradino e, quindi, per rendere meno drastico il cambiamento dell output al superamento della soglia. Implementati in tale maniera, i neuroni artificiali possono essere legati per costruire una complessa rete di elaborazione. Attraverso il meccanismo delle funzioni di soglia, una rete neurale può essere usata per individuare schemi complessi all interno del dataset in input. Essa è organizzata come internconnessione di neuroni artificiali, distribuiti su più livelli. Essa, inoltre, è un sistema adattivo, cioè che cambia la sua struttura ed i suoi parametri, in base alle informazioni che scorrono attraverso la rete in fase di apprendimento. La funzionalità più interessante dei sistemi come le reti neurali è la loro possibilità di apprendere. Ciò significa modificare il modello, durante una fase di costruzione dello stesso preventiva all utilizzo vero e proprio, impiegando un set di osservazioni 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 opportunamente istruita: Paradigma di Apprendimento Supervisionato (supervised learning). Questo metodo viene utilizzato quando si ha a disposizione un training dataset in cui ogni dato è etichettato, e contiene, quindi, una label corrispondente ad uno dei i=1

64 54 3 I Modelli di Previsione Figura Funzione sigmoidea possibili valori di output. In presenza di tali esempi di ingressi, con le relative uscite, la rete viene addestrata mediante un opportuno algoritmo detto di backpropagation. Quest ultimo usa tali dati allo scopo di modificare i pesi ed altri parametri della rete stessa in modo da minimizzare l errore di previsione relativo al training set. Se l addestramento ha successo, la rete impara a riconoscere la relazione incognita che lega le variabili d ingresso a quelle d uscita ed è, quindi, in grado di fare previsioni anche laddove l uscita non è nota a priori. Ciò consente di risolvere problemi classificazione. Paradigma di Apprendimento non Supervisionato (unsupervised learning). Questo metodo è basato su algoritmi d addestramento che modificano i pesi della rete facendo esclusivamente riferimento ad un insieme di dati che include le sole variabili d ingresso. Tali algoritmi tentano di raggruppare i dati d ingresso e di individuare pertanto degli opportuni cluster rappresentativi dei dati stessi. In presenza di nuove istanze, l algoritmo 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 comportamento, a partire da un processo d osservazione dell ambiente esterno. Ogni azione ha un impatto sull ambiente, il quale produce una retroazione che guida l algoritmo stesso nel processo d apprendimento. Tale classe di problemi viene affrontata attraverso un componente detto agente, dotato di capacità di percezione, che esplora un ambiente nel quale intraprende una serie di azioni. L apprendimento con rinforzo differisce da quello supervisionato poichè non vengono mai presentate delle coppie input-output di esempi noti. Un classificatore, quale la rete neurale, si dice lineare se tutte le osservazioni, all interno dello spazio a n-dimensioni che le contiene, possono essere separate in due

65 3.3 Data Classification 55 o più gruppi distinti attraverso l uso di un vettore. Quest ultimo 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 è definito iperpiano. Un classificatore, inoltre, si dice non lineare se tali osservazioni possono essere separate da una linea curva, come mostrato in Figura Figura Classificatore lineare (a sinistra) e non lineare (a destra) Il vettore x, che definisce le due areedel classificatorelineare, viene definito vettore delle caratteristiche. Ogni osservazione, corrispondente ad un punto del piano n-dimensionale, può essere individuata come combinazione lineare del vettore delle caratteristiche, le cui componenti vengono moltiplicate per opportuni pesi β n. x o = N β n x n (3.9) n=1 Tramite la fase di apprendimento, fornendo tali coefficienti β n al modello, quest ultimo è 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 può, attraverso la funzione di soglia, essere ulteriormente associato a un punteggio di uscita (il quale può essere un ulteriore parametro dell osservazione stessa) che ne determina l appartenenza a un particolare gruppo e rappresenta, quindi, il parametro di output. In questo modo è possibile realizzare un classificatore lineare attraverso una rete neurale. Per ottenere un classificatore non lineare è necessario implementare una rete lineare a più livelli, ciascuno dei quali definisce un vettore. Questi ultimi formeranno una linea spezzata la quale definirà il percorso che separa le due aree. Le reti neurali sono caratterizzate da un elevata precisione, perfino nel caso in cui i dati in input presentano molto rumore. Ciò 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 affidabilità, consiste nel dover ripetere spesso la fase di apprendimento. La precisione della previsione, infatti, è costante solo in un breve periodo di tempo in seguito all utilizzo del training dataset.

66 56 3 I Modelli di Previsione 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 più 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 dell alto numero di dimensioni dello spazio dei pesi. La tecnica di addestramento SVM risolve entrambi i problemi: presenta un algoritmo efficiente ed è in grado di rappresentare funzioni non lineari complesse. Per illustrare il funzionamento dell algoritmo SVM è bene introdurre prima il concetto di margine. I margini sono le distanze perpendicolari z n che intercorrono tra un iperpiano e ogni elemento appartenente all n-esimo gruppo. Come mostrato in Figura 3.12, il margine migliore è quello maggiore tra tali distanze. Figura Due diversi margini Scegliendo l iperpiano in modo da ottenere il margine più grande, infatti, è possibile definire al meglio le aree corrispondenti ad ogni gruppo, anche in presenza di valori marginali. Nell esempio illustrato, l iperpiano migliore è costituito dalla linea verde. L obiettivo dell algoritmo, quindi, è quello di individuare il vettore x migliore che permetta di definire la linea di separazione tra i cluster. Si vuole ottenere l equazione dell iperpiano come funzione lineare delle stesse caratteristiche di ingresso:

67 3.3 Data Classification 57 G( x) = ω x +ω 0 (3.10) dove x = (x 1,x 2,...,x n ) è un generico vettore dello spazio n-dimensionale degli attributi e ω è il vettore dei pesi (l incognita 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) è mostrato in Figura Figura Vettore delle caratteristiche in uno spazio a 2 dimensioni Per entrare nel dettaglio del meccanismo dell algoritmo SVM si considerino due punti dello spazio da classificare: x 1 = (1,1) e x 2 = (2,3). Uno dei possibili metodi per stabilire la soglia tale da garantire il margine migliore tra i due è calcolare la distanza media misurando la differenza tra i coefficienti dei due vettori. Il vettore dei pesi che definirà l iperpiano avrà coefficienti: ω = (2,3) (1,1) = (α,2α) (3.11) Si osserva, quindi, che la seconda componente dovrà essere doppia rispetto alla prima. In questo modo, le due distanze perpendicolari, tali da congiungere i punti x 1 e x 2 con l iperpiano, saranno esattamente uguali. Tale situazione è mostrata in Figura Sostituendo a G( x) il punto x 1 appartenente al primo cluster si avrà: G( x) = α+2α+ω 0 = 1 (3.12) sostituendo il punto x 2 appartenente al secondo cluster si avrà: G( x) = 2α+6α+ω 0 = 1 (3.13) Considerando w 0 come incognita dell Equazione 3.13, si ha che:

68 58 3 I Modelli di Previsione Figura Calcolo dell iperpiano che fornisce il margine migliore Sostituito questo valore nell Equazione 3.12, si ha: ω 0 = 1 8α (3.14) 3α+1 8α = 1 5α = 2 (3.15) α = 2 5 Tramite α è possibile, finalmente, ottenere il vettore dei pesi ω, il quale sarà: ω = ( 2 5, 4 5 ) (3.16) Tale vettore è detto support vector. Tramite il prodotto scalare del support vector con uno degli elementi del dataset è possibile ottenere un valore che indica l appartenenza di tale elemento al primo cluster (se il valore ottenuto risulta essere 1) o al secondo (se il valore ottenuto è 1). Tale metodologia costituisce l algoritmo 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 un efficace 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 l iperpiano che presenti la distanza maggiore da ogni elemento dell area. Tale separatore viene individuato attraverso l analisi del training dataset. Una possibile applicazione del SVM è la classificazione delle immagini (image recognition). Un immagine delle dimensioni di pixel, infatti, può essere

69 3.3 Data Classification 59 considerata come un elemento di un vettore appartenente al campo R 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 l iperpiano nello spazio a dimensioni, sarà possibile realizzare un modello che consenta di categorizzare un immagine come appartenente a una delle due categorie prima ancora che l immagine stessa venga osservata Alberi di decisione I metodi di classificazione basati sugli alberi rappresentano il metodo più intuitivo per la creazione di un modello predittivo. In particolare, un albero di decisione è 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 è 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 è necessario partire dal nodo radice (root node), cioè il punto di partenza dell albero. A partire da quest ultimo, per ogni nodo interno (inner node) o esterno (outer node), i valori forniti in input vengono sottoposti a varie decisioni. In base all esito 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 è illustrato in Figura Figura Albero di decisione Per ogni nodo viene implementato un costrutto if-else. Il risultato di ogni decisione 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 è utile mostrare un esempio pratico [7, pag.123]. Si supponga di voler prevedere il successo di tre possibili investimenti finanziari: un ristorante, un azienda di trasporti, un negozio di libri. In casi come quest ultimo emerge l ausilio dei metodi statistici al fine di condurre un processo di previsione. Da un intervista con un esperto del settore, il quale si avvale proprio di tali metodi, emerge che la possibilità di successo del primo investimento

70 60 3 I Modelli di Previsione è stimata intorno al 52%, la possibilità di successo del secondo investimento è pari al 60%; infine, la possibilità di successo del terzo investimento è pari al 50%. Per ogni eventualità, inoltre, l esperto del settore calcola le possibili perdite ed i guadagni. Tale situazione può essere descritta attraverso l uso di un albero di decisione, come mostrato in Figura Figura Albero di decisione per la previsione dell esito di un investimento In questo modo nei nodi foglia apparirà ogni possibile esito. Un albero di decisione può essere utilizzato per avere un quadro completo su tutti i possibili sviluppi di un evento e, quindi, scegliere l alternativa più vantaggiosa, minimizzando i rischi. A ogni foglia può essere associato un valore detto valore atteso; in generale, il valore atteso di una variabile casuale discreta (che assuma, cioè, solo un numero finito o una infinità numerabile di valori) è dato dalla somma dei possibili valori di tale variabile, ciascuno moltiplicato per la probabilità di essere assunto (ossia di verificarsi). Nell esempio della scelta del business più remunerativo, esso è dato dalla somma dei possibili guadagni, o perdite, ciascuno moltiplicato per la probabilità che tale evento si realizzi. Si avranno, cioè, i seguenti valori: valore atteso dell investimento nel ristorante: 52% 40,000$+48% ( 21,000$)= 10,720$ (3.17) valore atteso dell investimento nell azienda di trasporti: 60% 20,000$+40% ( 7,000$)= 9,200$ (3.18) valore atteso dell investimento nel negozio di libri: 50% 6,000$+50% ( 1,000$) = 2,500$ (3.19) Si può concludere, quindi, che l investimento che garantirà i risultati migliori sarà quello del ristorante. Tale conclusione rappresenta una previsione sulla strategia che condurrà al profitto maggiore. Gli alberi di decisione rappresentano uno strumento indispensabile per affrontare quella categoria di problemi in cui è necessario scegliere l alternativa che permette di minimizzare i rischi (problemi di decision-making).

71 3.4 Metodi Probabilistici 61 Essi, inoltre, possono essere usati come strumento di classificazione. In tale senso, ogni foglia può rappresentare una diversa classe e in ogni nodo interno vengono prese delle decisioni sugli attributi forniti in input, le quali influenzano la classificazione finale dell istanza. Come per tutti gli altri modelli visti finora, dopo essere stato opportunamente creato, l albero di decisione permette di compiere delle scelte su istanze di dati mai viste prima. Come altri modelli, inoltre, l albero 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, è necessario decidere se dovrà rappresentare una foglia o, in alternativa, dovrà essere uno dei nodi interni. Per ultimo, sarà necessario stabilire la profondità dell albero e, una volta giunti ai nodi foglia, cosa dovranno rappresentare i valori attesi. 3.4 Metodi Probabilistici Il calcolo delle probabilità considera fenomeni osservabili esclusivamente dal punto di vista della possibilità o meno del loro verificarsi. La probabilità di un evento X è un valore numerico. Tale valore può essere calcolato dividendo il numero di volte in cui avviene l evento 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 probabilità 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 probabilità P(A) del verificarsi dell evento A in seguito al verificarsi dell evento B (con probabilità P(B)). Si dimostra che, data la probabilità P(B)) del verificarsi di B) e la probabilità P(A B) del verificarsi di entrambi gli eventi, il valore che indica la probabilità dell evento A) (detto evento condizionato) è data da: P(A B) = P(A B) (3.20) P(B) Il teorema permette di stabilire la probabilità del verificarsi di un evento non direttamente osservabile (quale, ad esempio, la presenza di un appendicite) attraverso il valore della probabilità di un evento osservabile (quale l innalzamento 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 l effetto. Data la conoscenza del teorema di Bayes è possibile esaminare alcuni dei più comuni algoritmi di previsione i quali ne sfruttano le potenzialità Naive Bayes Classification Tecnica tipica delle pratiche di machine learning, esso fa parte delle tecniche probabilistiche di classificazione. Come altri modelli già visti, impiega dati che hanno la

72 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 (cioè i dati impiegati per affrontare il problema), usati da tali algoritmi, sono variabili aleatorie. Tali variabili possono assumere diversi valori con una ben determinata probabilità. Caratteristica comune ai diversi algoritmi che implementano il modello Naive Bayes è che tali variabili casuali sono tutte indipendenti tra di loro. Due o più variabili, le quali possono 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 dell altro. Il modello Naive Bayes viene usato in quei contesti in cui è possibile osservare una serie di fenomeni indipendenti tra di loro e, quindi, di stimare la probabilità di ognuno di essi. Per mostrarne direttamente le capacità è 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 futuro e, di conseguenza, adattare le proprie strategie di marketing. Le componenti C,X 1,X 2,...,X n del vettore osservazione relativo a un cliente C possono rappresentare dei fenomeni direttamente osservabili. Verrà indicato, ad esempio, con X 1 il sentimento del cliente nei confronti di un prodotto (positivo o negativo), con X 2 il fatto che egli abbia acquistato, o meno, prodotti simili, e con X 3 la valutazione del suo merito di credito (affidabile o insolvente). Ognuna di tali variabili assume, come appena mostrato, un valore discreto del quale può essere calcolata la probabilità. Le tre variabili sono, rispettivamente, P(X 1 = valutazionepositiva),p(x 2 = nonacquistatoprodottisimili)ep(x 3 = af f idabile). In questo modo vengono riportate, matematicamente, le probabilità relative a ciascuno dei fenomeni osservati. Come altri già visti, infatti, il modello Naive Bayes utilizza dati storici per realizzare una previsione sul futuro. Tali dati vengono analizzati tramite il teorema di Bayes. Quest ultimo permette di calcolare la probabilità che il prodotto X venga acquistato dal cliente C, date le caratteristiche X 1,X 2,...,X n di quest ultimo. Matematicamente: P(C X 1 X 2 X n ) = P(X 1 X 2,..., X n C) P(C) P(X 1 X 2,..., X n ) (3.21) dove P(C) è la probabilità che il prodotto venga acquistato, X 1 X 2,..., X n rappresenta l intersezione delle probabilità degli eventi X 1,X 2,...,X n e P(X 1 X 2 X n C) rappresenta la probabilità che, dato il verificarsi delle X n condizioni, il prodotto C venga acquistato. Quest ultimo rappresenta l unica incognita del problema. Si può osservare, infatti, come tutti gli altri termini dell espressione rientrino nella categoria dei dati direttamente osservabili e fanno, quindi, parte delle informazioni storiche raccolte per la costruzione del modello, cioè il training dataset. Per il calcolo dell ultimo termine è bene usufruire delle definizioni messe a disposizione dalla statistica. L intersezione di più eventi X 1 X 2 X n è definita come l evento che si verifica se si verificano contemporaneamente X 1,X 2,...,X n. Attraverso l ipotesi di indipendenza delle variabili è possibile usufruire del teorema della

73 3.4 Metodi Probabilistici 63 probabilità composta per il calcolo dell incognita. Tale teorema afferma che, per eventi indipendenti tra di loro, la probabilità dell evento intersezione di più eventi indipendenti è data dal prodotto delle probabilità dei singoli eventi. Cioè: P(X 1 X 2 X n ) = P(X 1 ) P(X 2 )... P(X n )) (3.22) Applicando tale teorema all Equazione 3.21 si ha che: P(C X 1 X 2,..., X n ) = P(X 1 C) P(X 2 C)... P(X n ) C) C) P(C) P(X 1 X 2,..., X n ) (3.23) I termini P(X 1 C) P(X 2 C)... P(X n ) C), come già detto, sono direttamente osservabili, in quanto rappresentano la probabilità che il prodotto C sia stato acquistato, condizionata dal verificarsi dell n-esima osservazione X n. Attraverso tali considerazioni è possibile calcolare la probabilità che un elemento (nell esempio, un cliente), etichettato come C e con X 1,X 2,...,X n caratteristiche, compia una determinata azione. La probabilità P(C X 1 X 2,..., X n ) è definita probabilità a priori, in quanto viene assegnata dopo aver preso in esame le informazioni più rilevanti raccolte. Per ottenere un classificatore sfruttando tale risultato è possibile indicare una serie di classi di uscita C i. Identificando, ad esempio, ogni classe come un potenziale cliente, o un gruppo di essi, sarà possibile prevedere l esito di una decisione di acquisto scegliendo la classe alla quale verrà associata la probabilità maggiore. Si può osservare, infine, che per massimizzare la probabilità a priori di una classe è necessario massimizzare esclusivamente il numeratore (in quanto, come è possibile vedere dalla formula del teorema di Bayes, il denominatore è indipendente dalla classe specifica). Per tale motivo, l esito della previsione può essere indicato mediante la formula: [ ( )] n C i = max P C i P (X n C i 1) (3.24) Il Modello di Markov Tale processo prende il nome dal matematico russo Andrej Andreevic Markov che, per primo, ne sviluppò la teoria. Modelli di tipo markoviano trovano applicazione in molti ambiti, dalla progettazione di reti di telecomunicazione all analisi predittiva. Un modello costruito attraverso un processo di tale genere si basa su un presupposto, cioè l ipotesi di Markov. Quest ultima può essere riassunta in questo modo: la probabilità del verificarsi di un evento futuro, calcolata osservando n eventi passati, è pressappoco uguale alla probabilità del verificarsi dello stesso evento, calcolata osservando solo l evento passato più recente. Tale ipotesi può essere scritta matematicamente in questo modo: n=1 P(evento n evento n 1,evento n 2,...,evento 1 ) P(evento n evento n 1 ) (3.25)

74 64 3 I Modelli di Previsione In sintesi, l ipotesi di Markov indica che non è necessario ricorrere a dati storici troppo datati per prevedere lo svolgersi di un evento futuro. Se un evento è condizionato da un solo fenomeno già 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 può essere applicato al calcolo di una probabilità condizionata tramite l uso del teorema di Bayes. Dato un evento X 1, condizionato da una serie di fenomeni osservati X 2,X 3,X n (dei quali se ne conosce la probabilità), è possibile ottenere un approssimazione di primo livello: P(X 1 X 2 X 2 X n ) = P(X 1 X 2 X 1 ) P(X 1 ) P(X 1 X 2 ) (3.26) 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 all altro viene descritto dalla probabilità di uno stato di assumere un altro valore tra quelli possibili, ed è, perciò, condizionata da questi ultimi. Si può, ad esempio, considerare un sistema a tre stati possibili X 1,X 2,X 3, dove il passaggio ad un nuovo stato è condizionato dagli stati precedenti. Sotto l ipotesi di Markov, tuttavia, è possibile calcolare la probabilità di uno dei tre considerando esclusivamente il precedente stato più recente. Così, lo stato X 1 potrà diventare lo stato X 2, lo stato X 3, o tornare a essere di nuovo X 1. La transizione tra questi ultimi avviene con una probabilità che può essere determinata tramite il teorema di Bayes. Una situazione simile può essere descritta attraverso l uso di un grafo orientato. Un grafo è un insieme di elementi detti nodi (o vertici) che possono essere collegati fra loro da linee chiamate archi. Un arco orientato è un arco caratterizzato da una direzione. Il grafo, inoltre, è detto pesato se ad ogni arco è associato un peso o costo (cioè 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 probabilità. Tale schema viene mostrato nella Figura Figura Catena di Markov a tre stati

75 3.5 Recommendation Systems 65 Un grafo così definito viene chiamato catena di Markov. Esso può essere interpretato affermando che la probabilità che un sistema passi dallo stato X 1 allo stato X 2 è del 35%, mentre la probabilità di restare allo stato X 2 è del 60%. Molti modelli si basano sulla teoria di processi markoviani. Tra questi, l algoritmo 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 l ordinamento 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 verrà maggiormente visitato. Un modello di Markov viene definito nascosto se gli stati precedenti, i quali condizionano quello futuro, sono sconosciuti, cioè non osservabili direttamente. Ogni stato genera un evento con una certa distribuzione di probabilità che dipende solo da esso; inoltre, l evento è osservabile ma lo stato no. Come ogni modello di Markov, ogni stato è 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 probabilità di trovare tale stato nella condizione di partenza. Il secondo contiene la probibilità che ogni stato X n ha di passare allo stato X n+1. L ultimo vettore contiene la probabilità, di ogni stato, di generare un determinato evento. Anche in questo caso il modello deve essere addestrato a ottenere tali vettori di probabilità tramite una fase di preparazione usando il training dataset composto da dati precedenti. In un modello di Markov nascosto è possibile ottenere diversi risultati in uscita, tra questi la probabilità del verificarsi di un particolare evento o di una sequenza di aventi. Queste ultime probabilità vengono calcolate usando il teorema di Bayes. Una volta ottenuti i parametri appena citati, è possibile risolvere diversi problemi costruendo il modello attraverso l uso di particolari algoritmi. Data, ad esempio, una sequenza di eventi in ingresso è possibile trovare la sequenza di stati più probabile che potrebbe generare tale sequenza; questo problema viene risolto dall algoritmo di Viterbi. Attraverso un algoritmo detto algoritmo forward-backward, inoltre, è possibile trovare la probabilità di una particolare sequenza di eventi. Le possibilità offerte dal modello di Markov nascosto sono molteplici. Per tale motivo esso viene utilizzato in molti campi; tra questi, l analisi predittiva. Nella seconda metà degli anni ottanta si è cominciato ad applicare l algoritmo all analisi delle sequenze biologiche; da allora questa metodologia è 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 Nell insieme dei modelli usati per la realizzazione di previsioni è 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.

76 66 3 I Modelli di Previsione Formalmente, è possibile esprimere il problema delle raccomandazioni introducendo alcuni concetti. Sia A l insieme degli n utenti del sistema, inoltre, sia B l insieme 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 (numerica) che un utente ha assegnato o assegnerebbe ad un oggetto. Date queste definizioni, compito del recommendation system è scegliere, per ciascun oggetto in A, l elemento in B tale da massimizzare la funzione u per la coppia. Il problema di tali sistemi è che non sempre u è 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 utilità u anche nella parte dello spazio dei dati in cui essa non è definita. In altre parole, l obiettivo è 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 quantità di dati per determinare l indice di gradimento sconosciuto attraverso l uso di diversi algoritmi. In base alla tecnica utilizzata è possibile suddividere i sistemi di raccomandazione nelle seguenti tre categorie: Sistemi basati sul filtraggio collaborativo. Per filtraggio collaborativo (collaborative 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 l analisi di una grande quantità 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, continuerà a mostrarlo anche in futuro. Tra gli algoritmi usati per determinare le similitudini tra utenti vi è l algoritmo K-Nearest Neighbor già visto. I dati collezionati, riguardanti le preferenze degli utenti, possono essere raccolti tramite sondaggi, osservando gli oggetti acquistati e visualizzati, analizzando le opinioni dei clienti all interno di forum o social network, etc. Una volta individuati i gruppi di utenti simili, l algoritmo costruisce un modello il quale mostra gli oggetti che i clienti che non hanno ancora acquistato potrebbero preferire. Uno degli esempi più interessanti di filtraggio collaborativo è rappresentato dall uso che ne fanno alcune famose piattaforme sul Web, come Amazon, Facebook e Twitter. Il primo usa tali metodi di raccomandazione per consigliare vari oggetti 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, è 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 (cioè, dopo averne definito gli attributi) vengono usati algoritmi di classificazione, come gli alberi di decisione o la rete

77 3.5 Recommendation Systems 67 neurale, per includere gli oggetti non ancora acquistati da un utente in gruppi contenenti oggetti già acquistati. Il giudizio dei clienti può essere usato per dare un maggiore o minore peso a ogni attributo. Anche sistemi di questo genere trovano largo utilizzo tra le più comuni piattaforme all interno 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 essere 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 diversi 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 più nota per l utilizzo di un sistema ibrido è Netflix.

78

79 4 Analisi della Regressione In questo capitolo continua la trattazione dei modelli adottati dall analisi 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 dall analisi statistica, mirano a determinare una valutazione quantitativa, a partire da variabili indipendenti facenti parte di vettori osservazione per l addestramento del modello. Essi rivestono un importanza fondamentale in quanto largamente utilizzati in diversi ambiti. 4.1 I Modelli di Regressione I modelli esaminati nel capitolo precedente coprono alcune delle più importanti categorie di modelli tra quelli fondamentali per l analisi predittiva. Esiste un gruppo di essi, non ancora mostrato, il quale rientra nella categoria dei modelli indispensabili alla risoluzione dei più tipici problemi che richiedono la previsione di eventi futuri. Tale categoria è quella dei modelli di regressione. Quest ultimi vengono realizzati attraverso tecniche definite dallo studio dell analisi della regressione. La differenza fondamentale tra il modello appena citato e un modello di classificazione risiede nella differente tipologia di dati in output che si sta cercando di prevedere. I modelli di classificazione tentano di ricondurre l esito 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 valori già esistenti, ma tentano di prevedere dei valori numerici o quantitativi. Tale distinzione non è 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 è una tecnica utilizzata per analizzare una serie di dati costituiti da una variabile dipendente e una, o più, variabili indipendenti (cioè osservabili). Il modello che rappresenta il fenomeno da prevedere è chiamato equazione di regressione. Essa è funzione delle variabili indipendenti, a meno di un termine di errore il quale è rappresentato da una variabile aleatoria. Quest ultima 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

80 70 4 Analisi della Regressione di altri modelli visti finora, tuttavia, al fine di determinare un modello di regressione è necessario conoscere alcune informazioni riguardo la possibilità che ha il termine di errore di assumere determinati valori. Tale informazione è chiamata distribuzione di probabilità ed è definita come un modello matematico il quale collega i valori di una variabile aleatoria alle probabilità che tali valori possano essere osservati. Dati i valori di ingresso e la distribuzione di probabilità è possibile determinare i parametri che permettono al modello di realizzare previsioni accurate. Secondo l opinione 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 più semplice, ma anche il più comune, tra i modelli di regressione è il modello di regressione lineare. Esso restituisce il valore di una variabile dipendente y o in funzione di una combinazione lineare delle variabili indipendenti x 1,x 2,x n : y o = β 1 x 1 +β 2 x β 0 +ε (4.1) dovex 1,x 2,x n sonoivaloriiningresso(cioèlevariabiliindipendenti) iqualiformano il vettore osservazione x n. Il simbolo ε rappresenta il termine d errore e β 1,β 2,β 0 rappresentano i parametri del modello. Quest ultimi sono chiamati coefficienti di regressione e devono essere determinati durante la fase di addestramento del modello. Una volta ottenuti i parametri β n, è possibile realizzare una previsione sostituendo 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; ciò significa che questa quantità è indicativa del cambiamento che ci si aspetta da ognuno di tali attributi per ogni incremento di un unità di questi ultimi. Un modello di regressione lineare può essere rappresentato in uno spazio a n dimensioni, dove n è il numero di valori indipendenti. Un semplice modello, il quale utilizza dati con un solo attributo, può essere illustrato nello spazio cartesiano. In questo modo, in ascissa, saranno riportati i valori della variabile indipendente x 1 e, in ordinata, i valori della variabile di uscita y o ; tale esempio è 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 quest ultima interseca l asse delle ordinate. Il caso appena mostrato, in cui è presente un solo attributo in ingresso, determina un modello di regressione lineare semplice. Nei casi in cui sono presenti due o più variabili indipendenti x n il modello viene detto di regressione lineare multipla. Al fine di definire un modello semplice è necessario imporre alcune condizioni le quali semplificano la valutazione dei coefficienti di regressione. Per ogni variabile

81 4.2 Regressione Lineare Semplice e Multipla 71 Figura 4.1. Modello di regressione lineare casuale (quale la variabile ε) è possibile definire le quantità media e varianza. La prima è definita come la media degli n campioni osservati da una variabile aleatoria, pesata dalla probabilità di osservare tale campione. Per una distribuzione discreta di variabili aleatorie la media sarà: E(X) = i= Per una variabile aleatoria a valori continui sarà: E(X) = i= X i P(X i ) (4.2) X i P(X i )dx (4.3) La varianza (associata ad una variabile aleatoria) è la misura della variabilità dei valori assunti dalla variabile. Nello specifico, tale grandezza misura quanto essi si discostino quadraticamente dal valore atteso. Essa è 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, all aumentare di una delle due variabili, aumenta anche l altra. Al contrario, una covarianza negativa indica il diminuire di una variabile al decrementare dell altra. Nel caso in cui due variabili siano statisticamente indipendenti, il valore della covarianza risulta essere nullo. Matematicamente essa è 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)

82 72 4 Analisi della Regressione Tali quantità sono ben definite per ogni modello di regressione lineare. In particolare si assume per ipotesi che, per n osservazioni (ossia i vettori x n delle variabili indipendenti x 1,x 2,x n, costituiti da un solo elemento nel caso semplice), la quantità ε n sia sempre, per ogni osservazione, una variabile aleatoria a media pari a zero e varianza costante. Quest ultima ipotesi è nota come ipotesi di omoschedasticità. In tale contesto, inoltre, l errore ε n associato ad una osservazione è statisticamente indipendente dall errore associato ad ogni altra osservazione, ossia due ε n qualsiasi hanno covarianza nulla. Ciò è impensabile in uno scenario reale dove, spesso, l errore è dovuto ad un imperfezione sistematica della misurazione, durante la quale un osservazione può essere funzione di un altra. La variabile ε rappresenta l errore irriducibile al quale è sottoposto l esito della previsione. Tale errore può essere dovuto a problemi di misurazione degli attributi in input non prevedibili. A causa della presenza di quest ultimo, 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 quantità 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, è possibile risalire con facilità ai valori reali di output. Ciò non è sempre possibile. Gli attributi indipendenti relativi a ogni osservazione, per ipotesi, devono essere variabili deterministiche. Ciò 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 indipendenti siano anch esse 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, ciò potrebbe portare ad ottenere una stima inconsistente dei coefficienti di regressione. Per le condizioni viste finora, la variabile dipendente sarà funzione di una variabile indipendente x 1 e di una variabile aleatoria ε n : y o = β 1 x 1 +β 0 +ε n (4.6) Ciò rende y o, a sua volta, una variabile aleatoria.data l ipotesi di omoschedasticità, il valore medio atteso di tali risultati è pari all equazione della retta β 1 x 1 +β 0. Quest ultima è detta retta di regressione. L obiettivo della regressione è quello di trovare la retta che si avvicina maggiormente all insieme dei dati forniti. Si tratta di un problema di ottimizzazione in quanto, dopo aver determinato i coefficienti di regressione, è possibile stimare il valore di un nuovo punto y o a partire dall osservazione di misure più semplici da ottenere. La fase di addestramento del modello prevede, come per altri strumenti già visti, la definizione degli attributi caratteristici di quest ultimo; in tal caso si tratta dei coefficienti di regressione β, i quali verranno calcolati utilizzando un insieme di dati storici già in possesso di chi sta implementando il modello (ossia il training dataset). Tali dati comprendono, tra i loro attributi, oltre alle variabili indipendenti, anche i campioni delle variabili dipendenti, precedentemente ottenuti. I vettori osservazione del training dataset includono, dunque, un ulteriore elemento, il quale corrisponde al risultato del modello dati gli elementi indipendenti dello stesso vettore:

83 4.2 Regressione Lineare Semplice e Multipla 73 x training = (y n,x 1,x 2,x m ) (4.7) Attraversotalivalorièpossibiledeterminareicoefficientiβ.Ènecessarioricavare 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 x 1 e y 1. Il coefficiente che li lega deve essere determinato attraverso il metodo dei minimi quadrati, proposto da Gauss. Questo metodo tenta di individuare l equazione della retta tale da minimizzare la somma dei quadrati delle distanze tra i dati campione e quelli della retta stessa. Poichè alcune distanze sono positive ed altre negative, utilizzando la somma dei quadrati, la retta risultante sarà 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 è ottenuta dai valori dei parametri cui corrisponde la retta che interpola al meglio le osservazioni. Dato il punto (x 1,y 1 ), la differenza: y 1 (β 1 x 1 +β 0 ) = ε n (4.8) rappresenta l errore relativo all attributo x 1. Questo valore, definito scarto, è anche la distanza dal punto campione alla retta di regressione. È necessario determinare β 1 e β 1 minimizzando la somma degli scarti al quadrato di ogni punto osservazione, ossia: min n=1[y n (β 1 x 1 +β 0 )] 2 (4.9)

84 74 4 Analisi della Regressione Dall Equazione 4.9 è possibile, infine, ottenere i parametri di regressione. Si dimostra, a tal fine, che il valore del parametro β 1 è dato da: β 1 = σ x n,y n σ 2 x n (4.10) Dove σ xn,y n è la covarianza calcolata tra i valori della variabile dipendente e quelli della variabile indipendente; inoltre, σ 2 x n 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 x n e y n : β 0 = E[y n ]+β 1 E[x n ] (4.11) Tutto ciò è valido per il caso semplice. Attraverso il metodo dei minimi quadrati, dunque, è possibile ottenere i coefficienti β migliori, tali da ottenere i risultati più fedeli alla realtà rappresentata dal modello (ossia i punti che ricadono sulla retta di regressione) a meno dell errore ε. 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 (m 2 ) Vendite Settimanali (euro) Tabella 4.1. Dati campione La relazione tra il totale delle vendite e lo spazio di esposizione può essere individuata attraverso una relazione lineare del tipo: y o = β 1 x 1 +β 0 +ε o (4.12) Dove x 1 rappresenta lo spazio di esposizione e y 1 rappresenta il totale delle vendite. Tali punti vengono riportati su un grafico cartesiano come mostrato in Figura 4.3.

85 4.2 Regressione Lineare Semplice e Multipla 75 Figura 4.3. Punti campione Calcolando media e varianza delle variabili campione, è possibile utilizzare tali quantità per il calcolo dei coefficienti di regressione: β 1 = 3,2 β 0 = 1092,88 (4.13) Dopo aver determinato β 1 e β 0 sarà, infine, possibile prevedere le vendite settimanali sostituendo il valore del nuovo spazio di esposizione nell equazione della retta di regressione. Ogni volta in cui, al fine di prevedere una determinata quantià, sono disponibili più variabili indipendenti si utilizza un modello di regressione lineare multiplo. Dati n variabili di input, l equazione generale di un tale modello è: y o = β 1 x 1 +β 2 x βnx n +β 0 +ǫ n (4.14) Per la formulazione di un modello lineare multiplo si utilizzano le stesse ipotesi impiegate per il modello semplice. Il caso multiplo, infatti, rappresenta la generalizzazione di quest ultimo. I punti appartenenti all insieme delle osservazioni, possedendo più di un attributo, dovranno essere rappresentati in uno spazio a n dimensioni. Una rappresentazione del genere non produrrà più una retta, ma delineerà un piano nello spazio n-dimensionale. Utilizzando la notazione matriciale per rappresentare l insieme delle osservazioni, il modello di regressione multipla sarà dato da: y 1 x 11 x x 1m β 0 ε 1 y 2 x 21 x x 2m β 1 ε 2 Y = y 3 y 4 X = x 31 x x 3m x 41 x x 4m β = β 2 β 3 ε = ε 3 ε 4 (4.15) y n x n1 x n2... x nm β n ε n Tale notazione permette di esprimere il vettore delle variabili indipendenti Y o come:

86 76 4 Analisi della Regressione Y o = X β +ε (4.16) Per stimare i parametri del modello di regressione multipla si utilizza il metodo dei minimi quadrati. Quest ultimo 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 è la trasposta della matrice delle variabili indipendenti. Se il numero di tali variabili è maggiore di due, l equazione del modello descriverà un iperpiano. Nel caso in cui fosse presente una dipendenza lineare tra gli attributi indipendenti il termine (X X) sarà prossimo allo 0 e non sarà possibile calcolare i coefficienti. È interessante notare come i vari modelli di regressione lineare possano essere utilizzati in un numero elevatissimo di casi diversi. Essi vengono impiegati per prevedere quantità numeriche quali: temperature, prezzo e quantità di oggetti acquistabili, 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, è possibile adattare il modello per risolvere le problematiche di un classificatore binario limitando i valori di restituzione all intervallo [0, 1]. I valori di questo intervallo rappresenteranno le classi, mentre un valore intermedio (in tal caso 0,5) rappresenterà 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, è impossibile limitare i valori di uscita di un modello di regressione ad un intervallo limitato. Essi, quasi sicuramente, assumeranno valori esterni a quest ultimo; tali punti non potranno essere classificati in quanto non appartenenti ad alcuna categoria. Inoltre, un modello di regressione lineare tenta di minimizzare l errore quadratico medio (ossia la discrepanza media al quadrato fra i valori dei dati osservati ed i valori dei dati stimati); ciò è contrario agli scopi di un modello di classificazione. Quest ultimo, infatti, mira ad individuare una retta che separa realmente le varie osservazioni e non quella che minimizza l errore di osservazione. Quest ultima, in presenza di punti molto distanti dalla maggior parte degli elementi, risulta essere vicina a tali punti (in modo da diminuire l errore), ma una simile rappresentazione non rispecchia la soglia di separazione tra gli elementi di due o più categorie. Il modello di regressione logistica riesce ad ovviare a tali problemi. Attraverso tale modello è, infatti, possibile ottenere un valore di output il quale ricade all interno dell intervallo chiuso [0, 1]. Esso, inoltre, viene addestrato mediante un

87 4.3 Regressione Logistica 77 metodo che non mira a minimizzare l errore quadratico medio e, dunque, si presta maggiormente ad essere utilizzato come metodo di classificazione. Quello logistico è un modello di regressione applicato nei casi in cui la variabile dipendente y siariconducibileaivalori0e1(sidice cheessaèdi tipo dicotomico, che può, cioè, 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 indipendenti; inoltre, anche in questo caso, una combinazione lineare di quest ultime restituisce una variabile dipendente y. La differenza fondamentale, rispetto al modello lineare, consiste nel fatto che la variabile y viene usata come input per la funzione sigmoidale: f(y) = ey e y +1 = e y e y e y e y +1 = 1 1+e y (4.18) Sostituendo l equazione lineare della variabile indipendente si ottiene: f(y) = 1 1+e y = 1 (4.19) 1+e β1 X β0 Per y tendente a, il risultato della funzione sigmoidale tende a 0. Al contrario, per y tendente a +, il risultato tenderà 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. È bene notare come, a differenza dell equazione mostrata nel caso lineare, in questo caso non appare il termine di errore ε. Ciò è dovuto al fatto che, poichè il risultato della funzione sigmoidale appartiene all intervallo [0, 1], la funzione stessa rappresenta la caratteristica di casualità del modello. Una tale distribuzione, in cui la variabile aleatoria (in questo caso il punto y) può assumere solo due possibili valori, viene definita distribuzione di Bernoulli. Il risultato del modello di regressione logistica Y o rappresenta, dunque, la probabilità che il punto y ricada in una delle due classi di uscita. P(Y = 1 Y o ) = 1 1+e β1 X β0 (4.20) L Equazione 4.20 mostra come la probabilità che il risultato del modello appartenga alla classe 1, dopo aver osservato l output Y o, coincida con il valore stesso di Y o. Nel caso di un basso valore di Y o, l uscita risulterà appartenente alla classe 0. Il valore medio atteso, in una distribuzione di Bernouilli, è rappresentato dal valore, scelto in maniera arbitraria, del risultato con esito positivo: in questo caso Y o = 1. Partendo dall Equazione 4.20, tramite delle semplici manipolazioni algebriche, è possibile isolare la componente lineare, ossia il contributo delle variabili indipendenti di ingresso: P(Y = 1 Y o ) ln( 1 P(Y = 1 Y o ) ) = β X +β 0 (4.21)

88 78 4 Analisi della Regressione Il termine a sinistra dell Equazione 4.21 viene definito funzione logit. Si può osservare come l argomento del logaritmo rappresenta il rapporto tra la probabilità che il risultato appartenga alla Classe 1 e la probabilità che esso appartenga alla Classe 0. Dall Equazione 4.21, inoltre, è possibile effettuare il calcolo dei coefficienti di regressione β, così come è stato svolto per il modello di regressione lineare. La relazione tra le variabili indipendenti ed il valore Y o = 1, tuttavia, è di tipo non lineare. Ciò impedisce il calcolo dei coefficienti di regressione, come è già 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 probabilità di trovare una determinata osservazione come risultato di un modello; tale probabilità è definita come verosimiglianza. In particolare, la verosimiglianza, relativa all appartenenza alla classe 1, è data da: P(Y = 1 Y o ). La verosimiglianza per la classe 0 vale 1 P(Y = 1 Y o ). La probabilità dell intersezione di tutti gli eventi, ossia la probabilità di osservare le osservazioni date, sarà data dal prodotto delle varia probabilità: P(yn = 1 x on ) 1 P(y m = 1 x om ) (4.22) Il criterio per individuare i coefficienti di regressione consiste nel massimizzare tale probabilità di ottenere un particolare insieme di osservazioni. Utilizzando algoritmi di stima iterativa per equazioni non lineari, sarà possibile determinare i valori di β 0, β 1,..., β n tali da rendere massima la probabilità individuata dall Equazione 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: l azienda 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. Nell ambito del marketing viene usato per evidenziare l incisività delle campagne pubblicitarie sulla propensione all acquisto del consumatore: il cliente acquista (Y=1) o non acquista (Y=0) un dato prodotto in seguito ad una campagna promozionale. Inmedicinaessovieneusatoperstudiarel effetto diunacurasullostatodi 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 l effetto fertilizzante delle sostanze utilizzate sui semi oggetto di studio: una pianta resiste alle gelate (Y=1) oppure no (Y=0) in seguito ad un intervento di modifica genetica.

89 5 Tool di Analisi Predittiva Dopo aver esaminato i modelli matematici che stanno alla base dei processi di predizione, questo capitolo illustra gli strumenti software che implementano tali modelli. Sono innumerevoli i tool che contengono metodi che prevedono algoritmi che permettono di ottenere i modelli precedentemente esaminati. In questo capitolo verranno esaminati alcuni di questi strumenti, tra quelli di uso più comune. 5.1 Caratteristiche Generali Lo sviluppo di nuove tecnologie all interno del Web, ed il conseguente incremento dei vari flussi di informazione, in particolar modo dei Big Data, hanno determinato nuove possibilità offerte dall analisi dei dati. Ultimamente, sempre più organizzazioni tentano di sfruttare tali potenzialità, utilizzando tecniche di data mining e machine learning per realizzare previsioni. Implementare un modello di analisi predittiva, tuttavia, richiede conoscenze specifiche e, per tale motivo, non è sempre una scelta possibile a tutti. Per venire incontro a simili richieste sono stati introdotti degli strumenti software, facilmente accessibili, i quali danno a chiunque la possibilità di realizzare modelli di previsione. In tal modo le varie organizzazioni possono avvalersi con maggior semplicità 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 possibilità di realizzare previsioni partendo da dati di qualunque genere. Tali strumenti vengono realizzati in modo da rimuovere la complessità matematica intrinseca in ogni processo di generazione dei modelli. Essi, inoltre, forniscono un interfaccia 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 utilità senza un operazione di valutazione effettuata sulle variabili restituite. Ogni tool di predizione, dunque, include strumenti che permettono di visualizzare tali risultati in modo immediatamente comprensibile. Sarà possibile illustrare i risultati attraverso l uso di grafici e tabelle e, in tal modo, sarà possibile valutarli e trarre conclusioni

90 80 5 Tool di Analisi Predittiva sulla reale efficacia del modello senza la necessità 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 differenziano tra di loro per il grado di complessità con il quale affrontano il problema della creazione dei modelli. Alcuni contengono opzioni limitate e favoriscono l uso da parte di utenti meno esperti; altri permettono di realizzare modelli particolarmente complessi, ma necessitano di maggiori conoscenze da parte dell utente. È possibile citare numerosi tool i quali possono essere più o meno sfruttati dalle più 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 l analisi predittiva, è impossibile non citare R. Si tratta di un ambiente di sviluppo open-source integrato con un linguaggio di programmazione per utilizzo specifico nel contesto del calcolo statistico. Il linguaggio di programmazione R (Figura 5.1) è largamente utilizzato ai fini dell analisi statistica e del data mining. Per estensione potrà, dunque, essere utilizzato ai fini dell analisi 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 è realizzato con lo stesso linguaggio di programmazione nativo il quale caratterizza l ambiente R. È possibile, tuttavia, collegare a run-time i metodi di R con metodi scritti in linguaggi di programmazione

91 5.2 R 81 quali: C++, Java,.NET, Python; ciò risulta particolarmente utile quando si devono affrontare problemi che richiedono un elevato onere computazionale. Uno dei punti di forza di R è la possibilità di mostrare i risultati delle varie implementazioni attraverso l uso 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, semplicemente, di richiamare una o più funzioni e di utilizzarle con i dati a disposizione. Esso rappresenta, quindi, un ottima base di partenza per familiarizzare con i vari algoritmi. Il linguaggio di programmazione R è un linguaggio interpretato; pertanto, in esso, non esiste un compilatore e il codice sorgente viene tradotto da un interprete in linguaggio macchina al momento dell esecuzione. L interprete è quel software che all avvio del programma, riceve un istruzione alla volta (istruzioni scritte nel linguaggio 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 più memoria ed è meno veloce, a causa dell overhead introdotto dall interprete stesso. Nel caso di R ciò non rappresenta un problema, in quanto le operazioni svolte durante l esecuzione dei metodi non richiedono un numero eccessivo di risorse computazionali, a meno di avere a che fare con grosse quantità di dati (in tal caso è possibile ridurre il peso della computazione assegnando alcuni compiti ad altri programmi o ricorrendo alla programmazione distribuita). La sintassi di R prevede l assegnazione delle variabili tramite l uso dell operatore <, la seguente istruzione assegna la stringa hello, world! alla variabile x e la stampa: > x <- hello, world! hello, world! In aggiunta all operatore di assegnamento, come per altri linguaggi di programmazione, esistono diversi altri operatori. Essi possono essere: Aritmetici (+,,,/) : consentono di svolgere operazioni e assegnare il risultato direttamente ad una variabile: > raggio < > p.greco < > 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

92 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 è necessario dichiarare il tipo da assegnare a una variabile prima di utilizzarla, ma sarà compito dell interprete svolgere tale operazione. Una variabile può essere di tipo numerico(integer, float, double), alfanumerico (string), booleano (TRUE, FALSE). La memoria necessaria, relativa a tali variabili, viene allocata durante l esecuzione (è una caratteristica dei linguaggi interpretati). Il linguaggio prevede un operatore di casting as.nuovo tipo(variabile). È possibile, inoltre, definire collezioni logiche di tali dati per potervi accedere in modo efficiente, ossia le strutture dati. Queste ultime appaiono indispensabili nelle situazioni in cui è necessario gestire 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 elementi di un altro vettore di pari lunghezza. Un esempio classico è quello della suddivisione di una serie di misure eseguite in due siti, ad esempio A e B. 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.

93 5.2 R 83 Data Frame: possono essere considerati come matrici dove ogni colonna può avere un tipo di dato diverso dalle altre. Rappresentano il modo più pratico per gestire tabelle di dati. È possibile specificare un nome per ciascuna colonna; nel caso in cui venga omesso il nome viene utilizzato quello dell oggetto che costituisce la colonna. Un data frame può essere realizzato come una matrice le cui colonne sono costituite da vettori precedentemente definiti. Un esempio di Data Frame è 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, è possibile raggruppare insiemi di più comandi all interno di parentesi graffe. Ciò permette di realizzare istruzioni nidificate e determinare una gerarchia dell esecuzione del programma. Come in molti linguaggi di programmazione, sono presenti alcune strutture di controllo. Tra queste citiamo: if: permette l esecuzione di espressione2 se e solo se espressione1 restituisce come risultato TRUE; in caso contrario, se è presente l istruzione 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 possibità di definire parti di codice indipendenti, R offre l opportunità di definire funzioni all interno del codice. In qualunque momento è 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 già realizzate e sono disponibili agli sviluppatori; esse sono contenute all interno delle librerie dell ambiente. Una funzione può essere richiamata tramite il nome della stessa, seguito dai parametri che necessita. Alcuni esempi di funzioni di uso generale già 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 è la funzione plot(x,y). Quest ultima 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.

94 84 5 Tool di Analisi Predittiva Al fine di effettuare previsioni, il linguaggio R offre una serie di funzioni le quali permettono di realizzare i modelli esaminati nei precedenti capitoli. Per svolgere operazioni di prova su tali metodi è possibile avvalersi di diversi dataset su vari repository disponibili sul web. La funzione autos <- read.csv( URL repository ) permette di importare una collezione di dati generici dal web. Generalmente si tratta di un file contenente dati in formato data frame, in cui ogni riga (ossia, ogni tupla) corrisponde ad un istanza dei dati ed ogni colonna rappresenta un attributo. Prima di poter utilizzare i dati è necessario svolgere alcune operazioni su di essi al fine di prepararli. Tali procedimenti sono necessari per strutturare la collezione dei dati e permettere all algoritmo 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 necessità. La Figura 5.2 mostra un insieme di dati, pronti per l utilizzo, visualizzati attraverso l ambiente 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; è anche presente un attributo(ossia il nome del modello dell automobile) che funge da label e che potrà potrà essere impiegato come variabile di restituzione del modello. Figura 5.2. L esempio di un dataset utilizzato da R Dopo aver adeguatamente preparato il dataset per l elaborazione, è consigliabile suddividerlo in due gruppi: training dataset e test dataset. Lo scopo è quello di usare il primo gruppo per addestrare il modello e, in seguito, per verificarne l efficacia attraverso il test dataset. Una suddivisione in rapporto 70/30 è sufficiente per fornire a ciascun gruppo un sufficiente contenuto di dati. Ciascun gruppo dovrà essere rappresentativo dell intero dataset; un tipico errore consiste nel suddividere i dati in modo che alcuni elementi, con determinate caratteristiche, ricadano esclusivamente all interno di uno dei due sottogruppi. Tale situazione è 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.

95 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, è possibile passare alla fase di addestramento del modello. Per mostrare un esempio di uno degli algoritmi offerti da R, il seguente 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 l attributo, il quale sarà utilizzato come variabile di output del modello di regressione lineare. Il parametro data, inoltre, indicherà il dataset dal quale verranno prelevate le osservazioni. Il modello verrà automaticamente generato ed assegnato alla variabile model. Ultimato il modello, sarà possibile effettuare previsioni, mediante quest ultimo, utilizzando la seguente sintassi: > predictions <- predict(model, testset, interval="predict", level=.95) Attraverso il parametro level sarà 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 l intervallo di valori dentro il quale può variare il risultato della predizione (tenendo conto dell errore). 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, è possibile confrontare tali valori con quelli predetti. In questo modo è possibile valutare l affidabilità 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 è possibile utilizzare il metodo predict() con nuovi dati per realizzare previsioni. In caso contrario sarà necessario incrementare la precisione del modello attraverso un più voluminoso training dataset. Il puntodiforzadi R èlapossibilitàadattarsiaqualsiasiesigenza[14],in quanto, all interno delle proprie librerie, contiene metodi per implementare qualsiasi modello predittivo. R, inoltre, offre la possibilità di lavorare partendo da dati grezzi, in

96 86 5 Tool di Analisi Predittiva Figura 5.3. Risultati della funzione predict() qualsiasi formato essi si trovino. In questo modo è possibile adattarli all utilizzo con ogni possibile modello. Ciò risulta essere particolarmente vantaggioso per chi si avvicina per la prima volta al mondo dell analisi predittiva e, non avendo l esperienza necessaria alla scelta e all utilizzo 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 l implementazione di modelli probabilistici e di recommendation system. È possibile trovare sul Web la documentazione di ciascuno di tali metodi e dei parametri richiesti per l implementazione dei modelli. 5.3 Weka Acronimo di Waikato Environment for Knowledge Analysis, Weka (Figura 5.5) è un ambiente software open-source per l apprendimento automatico, sviluppato nell università di Waikato in Nuova Zelanda. Si tratta di una raccolta di applicazioni, scritte completamente in Java, le quali implementano procedure di data mining e

97 5.3 Weka 87 Figura 5.4. Albero di decisione realizzato tramite R machine learning. Tra queste ultime è 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 è uno strumento che presenta diversi vantaggi. Innanzitutto, esso è opensource, in quanto rilasciato con licenza GNU General Public License. In secondo luogo, poichè interamente implementato in Java, può essere eseguito su qualunque sistema operativo supporti la Java Virtual Machine; per tale motivo esso gode di una elevata portabilità. Ulteriore vantaggio di tale piattaforma è la quantità di metodi implementati utili sia per il pre-processing dei dati, sia per la costruzione dei modelli. Essa supporta tutti i più comuni strumenti di data mining e machine learning. Quest ultimi possono essere richiamati con praticità attraverso l interfaccia grafica inclusa all interno del software. Weka, infine, ha la capacità di interfacciarsi con qualsiasi DBMS, purchè esistano i driver disponibili per la comunicazione con Java. Tale potenzialità permette a Weka di avvalersi dei risultati di una query SQL per ottenere i dati necessari al modello. L interfaccia del software, mostrata nella Figura 5.6, è chiamata Explorer. Essa è costituita da una serie di schede le quali fungono da pannello di controllo per le varie funzionalità. Dalla scheda Preprocess è possibile accedere a diverse funzioni per il caricamento e la visualizzazione dei vari dataset con cui costruire e testare il modello. In Weka è 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

98 88 5 Tool di Analisi Predittiva Figura 5.6. L interfaccia Explorer di Weka (Comma-Separated Values - si tratta di un formato basato su file di testo utilizzato per l importazione ed esportazione di una tabella di dati). Dalla stessa scheda è possibile svolgere operazioni di pre-processamento dei dati attraverso degli algoritmi di filtraggio predefiniti, tramite i quali è possibile trasformare i dati cancellando o modificando le varie istanze, al fine di rimuovere quelle che costituiscono semplice rumore. Per ognuna di tali istanze è, inoltre, possibile cancellare o modificare i diversi attributi che le costituiscono oppure, se necessario, aggiungerne di nuovi. All interno della scheda Classify, come mostrato in Figura 5.7, sono contenuti gli algoritmi di classificazione e di regressione. Da un apposito menù è possibile selezionare lo strumento da utilizzare per analizzare il dataset precedentemente elaborato. Viene data la possibilità di implementare il modello attraverso il training dataset, oppure attraverso il test dataset. Quest ultimo verrà prodotto automaticamente dopo pochi secondi dal momento in cui è stato selezionato. Il menù Result List contiene il risultato dell algoritmo, ossia, il modello appena creato. Weka tiene traccia dei modelli precedentemente realizzati in modo da poter effettuare dei confronti sui risultati. Il menù Classifier Output, infine, contiene i risultati dell elaborazione. Ciascun classificatore contiene una serie 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 dell algoritmo 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 modificati in seguito anche attraverso l uso dell ambiente di sviluppo di R, utilizzando i metodi della libreria RWeka. Una volta generato il modello sarà possibile sfruttarlo per l analisi di nuove

99 5.3 Weka 89 Figura 5.7. Alcuni dei modelli di classificazione disponibili in Weka istanze di dati. Un interessante opzione è quella che consente di esportare la classe che rappresenta il modello (in un file di formato.jar) ed utilizzarla all interno di un programma scritto in Java, indipendentemente dall interfaccia di Weka. Tale opzione offre l opportunità di implementare un modello di predizione ovunque se ne abbia la necessità e rappresenta una delle funzionalità di maggior successo di Weka. Le schede Associate, Select Attribute e Visualize, infine, contengono diversi strumenti 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 è la possibilità di utilizzare gli algoritmi disponibili con grosse collezioni di dati, ossia, con i Big Data. Insieme alle più recenti versioni di Weka (in particolare, quelle che vanno dalla Versione 3.7 in poi) sono stati introdotti alcuni package che offrono la possibilità 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,

100 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 è un tool di programmazione 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 coloro i quali non hanno familiarità con la programmazione, ma hanno comunque la necessità 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 modalità drag and drop, quindi trascinati all interno dell area di lavoro e collegati tra di loro per formare un workflow, ossia, uno schema che mostra l ordine delle operazioni da effettuare. L interfaccia di Orange è mostrata in Figura 5.9. Ogni widget compie un operazione 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. È questo il caso dell elemento File. Tramite una connessione tra elementi i dati vengono trasferiti da un widget all altro. In questo modo è 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 all interno del quale è possibile rappresentare il dataset in memoria, dopo aver indicato gli attributi da inserire lungo l asse delle ascisse e lungo quello delle ordinate.

101 5.4 Orange 91 Figura 5.9. L interfaccia grafica di Orange Tra le varie categorie di widget, vengono messi a disposizione tutti quelli necessari per svolgere la maggior parte dei più comuni processi per l analisi dei dati. Tra questi, è 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 dati possono essere suddivisi in training e test dataset, mediante lo strumento Data Sampler, al fine di valutare l efficacia del modello. Dopo aver realizzato quest ultimo, infine, è possibile effettuare previsioni in tempo reale sfruttando l oggetto Predictions, il quale accetta in ingresso i dati ed il modello precedentemente realizzato e restituisce i risultati. I parametri dei vari modelli, come anche gli attributi di maggiore interesse, possono essere definiti all interno di ogni widget attraverso un menù grafico. Il programma permette la connessione tra due elementi per i quali l output del primo è ammissibile come input per il secondo; inoltre, impedisce la connessione tra elementi per i quali non è 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 visualizzati 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 praticità. Mediante l uso della programmazione visuale è possibile realizzare previsioni, sfruttando i dati in possesso, in poco tempo ed in maniera intuitiva. Tra le possibilità offerte vi è anche quella di poter modificare il codice sorgente Python di ciascun widget. In tal modo, possedendo le capacità di programmazione necessarie, è possibile modificare totalmente le procedure di default del programma, sfruttandone a pieno le capacità. Per una maggiore accessibilità, vengono, inoltre, rese disponibili alcune estensioni, le quali contengono procedure già definite per realizzare previsioni in ambito medico, economico e scientifico.

102 92 5 Tool di Analisi Predittiva 5.5 Analisi Predittiva Basata sul Cloud Computing Grazie alla diffusione dei vari tool, l analisi predittiva, negli ultimi anni, è diventata uno degli argomenti di ricerca di maggior interesse da parte delle compagnie. Il diffondersi dei Big Data, inoltre, ha determinato la necessità di espandere le proprie risorse hardware per beneficiare dei vantaggi offerti dall analisi di tali informazioni. Purtroppo, ciò non è sempre possibile per la maggior parte delle compagnie le quali non hanno la capacità di analizzare grossi flussi di dati. Per venire incontro alle esigenze computazionali richieste dall analisi dei Big Data le compagnie hanno modificato l obiettivo dei loro investimenti dall acquisto 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 l archiviazione, l elaborazione o la trasmissione di dati) caratterizzato dalla disponibilità di tali risorse, su richiesta, attraverso Internet. Sfruttando la tecnologia del cloud computing, gli utenti collegati ad un cloud provider (ossia, un fornitore di servizi attraverso Internet) possono usufruire di risorse quali unità 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; è, così, possibile accedere ad ogni servizio anche tramite un semplice Internet browser. Esistono diverse opportunità offerte dall interazione tra l analisi predittiva ed il cloud computing. Implementare strumenti di previsione attraverso il cloud computing significa, per una compagnia, acquistare piattaforme software, dati, applicazioni ed infrastrutture come se fossero un servizio offerto dal web. Ciò 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 è necessario concentrare tutti i propri sforzi su uno specifico tool. L utentè avrà, infatti, la possibilità di scegliere il migliore tra i tool offerti dai vari servizi per soddisfare, di volta in volta, le proprie necessità. Tali servizi vengono offerti come fossero scatole nere (black-box); l utente non dovrà conoscere il funzionamento di ogni metodo: sarà sufficiente attivare il metodo ed il sistema restituirà il risultato senza che egli debba necessariamente sapere quale tool ha implementato l algoritmo impiegato. I servizi basati sul cloud, inoltre, permettono l integrazione di strumenti di terze parti. Quest ultima possibilità consente, ad esempio, di utilizzare strumenti quali Apache Mahout su nodi distribuiti situati in rete, senza la necessità di dover possedere reti di calcolatori costosi. L accesso ai Big Data costituisce un ulteriore vantaggio offerto dal cloud computing. Molte sorgenti dei Big Data, infatti, sono disponibili esclusivamente all interno del cloud. Ciò permette di usufruire di tali informazioni senza la necessità di grosse banche dati, indispensabili per contenerle. Una simile soluzione incrementa la velocità con cui i vari modelli di previsione possono essere creati; ciò garantisce una maggiore possibilità di testing del modello stesso da parte dell utente. Esistono diverse soluzioni offerte per coniugare le potenzialità dell analisi predittiva con quelle del cloud computing. Tra queste, la piattaforma Microsoft Azure può offrire un supporto per lo sviluppo di modelli di predizione. Azure permette lo sviluppo di applicazioni e servizi all interno di una rete di data center; essa inoltre,

103 5.5 Analisi Predittiva Basata sul Cloud Computing 93 supporta diversi linguaggi di programmazione. All interno 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 all interno 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 problema dei Big Data. Esso comprende strumenti utili all analisi dei dati quali Hive e Mahout. Il secondo strumento permette di costruire e testare direttamente una soluzione di analisi predittiva. Una volta sviluppata, sarà possibile pubblicare tale soluzione come metodo il quale potrà essere richiamato localmente mediante delle Web API (ossia, un interfaccia per applicazioni distribuite basata sul protocollo di comunicazione REST, accessibile anche dal browser). Attraverso interfacce testuali e grafiche, come mostrato in Figura 5.10, è possibile sfruttare tali strumenti al fine di realizzare applicazioni (secondo il paradigma di Hadoop) per l analisi dei Big Data a scopo predittivo. Figura L interfaccia grafica di Azure Machine Learning Grazie alle direttive di entrambi, è possibile gestire qualunque tipologia di dataset, sia strutturato che non strutturato. Un ulteriore soluzione di cloud coumputing è offerta dalla piattaforma Google Cloud Platform (Figura 5.11). Anch essa offre una serie di strumenti, tra cui, Google Prediction API. Si tratta di un interfaccia Web API la quale di accedere agli algoritmi di machine learning di Google e permette di fare previsioni su dati provenienti da varie fonti. Attraverso l interfaccia Web è 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 già esistenti. La Figura 5.12 mostra l implementazione, da parte del client, di un modello di classificazione attraverso la sintassi richiesta per richiamare il metodo.

104 94 5 Tool di Analisi Predittiva Figura Il logo di Google Cloud Platform Figura Metodo richiamato dall interfaccia di Google Prediction API Dall interfaccia è, infine, possibile accedere a diversi metodi per il testing del modello e la visualizzazione dei risultati. Grazie all accesso a tali strumenti, l analisi predittiva basata sul cloud rappresenta la soluzione più rapida e meno costosa per sfruttare a pieno tutti i vantaggi del mondo dei Big Data.

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Nell ambito di questa attività è in fase di realizzazione un applicativo che metterà a disposizione dei policy makers,

Dettagli

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE: IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:! definisce i bisogni e i desideri insoddisfatti! ne definisce l ampiezza! determina quali mercati obiettivo l impresa può meglio servire! definisce i prodotti

Dettagli

Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo

Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo Prima di organizzare un programma di allenamento al fine di elevare il livello di prestazione, è necessario valutare le capacità

Dettagli

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti La manutenzione come elemento di garanzia della sicurezza di macchine e impianti Alessandro Mazzeranghi, Rossano Rossetti MECQ S.r.l. Quanto è importante la manutenzione negli ambienti di lavoro? E cosa

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE 51 Dichiarazione d intenti (mission statement) La dichiarazione d intenti ha il compito di stabilire degli obiettivi dal punto di vista del mercato, e in parte dal

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

MANUALE DELLA QUALITÀ Pag. 1 di 6

MANUALE DELLA QUALITÀ Pag. 1 di 6 MANUALE DELLA QUALITÀ Pag. 1 di 6 INDICE GESTIONE DELLE RISORSE Messa a disposizione delle risorse Competenza, consapevolezza, addestramento Infrastrutture Ambiente di lavoro MANUALE DELLA QUALITÀ Pag.

Dettagli

Data mining e rischi aziendali

Data mining e rischi aziendali Data mining e rischi aziendali Antonella Ferrari La piramide delle componenti di un ambiente di Bi Decision maker La decisione migliore Decisioni Ottimizzazione Scelta tra alternative Modelli di apprendimento

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

CRM: IL FUTURO DEL MARKETING ATTRAVERSO LA CONOSCENZA DEL CLIENTE

CRM: IL FUTURO DEL MARKETING ATTRAVERSO LA CONOSCENZA DEL CLIENTE UNIVERSITÁ DEGLI STUDI DI UDINE FACOLTÁ DI ECONOMIA Corso di Laurea in Economia Aziendale Esame di Laurea CRM: IL FUTURO DEL MARKETING ATTRAVERSO LA CONOSCENZA DEL CLIENTE Tutore: Prof. Maria Chiarvesio

Dettagli

GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO 2011-2012

GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO 2011-2012 GIOCHI MATEMATICI PER LA SCUOLA SECONDARIA DI I GRADO ANNO SCOLASTICO 2011-2012 L unità di Milano Città Studi del Centro matematita propone anche per l a.s. 2011-2012 una serie di problemi pensati per

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Da dove nasce l idea dei video

Da dove nasce l idea dei video Da dove nasce l idea dei video Per anni abbiamo incontrato i potenziali clienti presso le loro sedi, come la tradizione commerciale vuole. L incontro nasce con una telefonata che il consulente fa a chi

Dettagli

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto

Dettagli

ANNO SCOLASTICO 2014-2015

ANNO SCOLASTICO 2014-2015 ATTIVITÀ DI SPERIMENTAZIONE IN CLASSE PREVISTA NELL AMBITO DEL PROGETTO M2014 PROMOSSO DALL ACCADEMIA DEI LINCEI PER LE SCUOLE PRIMARIE E SECONDARIE DI I GRADO ANNO SCOLASTICO 2014-2015 Il Centro matematita,

Dettagli

Nuova funzione di ricerca del sito WIKA.

Nuova funzione di ricerca del sito WIKA. Nuova funzione di ricerca del sito WIKA. Il sito WIKA dispone ora di una funzione di ricerca completamente riprogettata. Essa è uno strumento particolarmente importante in quanto deve fornire al navigatore

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

Marketing relazionale

Marketing relazionale Marketing relazionale Introduzione Nel marketing intelligence assume particolare rilievo l applicazione di modelli predittivi rivolte a personalizzare e rafforzare il legame tra azienda e clienti. Un azienda

Dettagli

L uso della Balanced Scorecard nel processo di Business Planning

L uso della Balanced Scorecard nel processo di Business Planning L uso della Balanced Scorecard nel processo di Business Planning di Marcello Sabatini www.msconsulting.it Introduzione Il business plan è uno strumento che permette ad un imprenditore di descrivere la

Dettagli

Pro e contro delle RNA

Pro e contro delle RNA Pro e contro delle RNA Pro: - flessibilità: le RNA sono approssimatori universali; - aggiornabilità sequenziale: la stima dei pesi della rete può essere aggiornata man mano che arriva nuova informazione;

Dettagli

Piano di gestione della qualità

Piano di gestione della qualità Piano di gestione della qualità Pianificazione della qualità Politica ed obiettivi della qualità Riferimento ad un eventuale modello di qualità adottato Controllo della qualità Procedure di controllo.

Dettagli

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta

Dettagli

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda. Scheda Il CRM per la Gestione delle Vendite Le organizzazioni di vendita sono costantemente alla ricerca delle modalità migliori per aumentare i ricavi aziendali e ridurre i costi operativi. Oggi il personale

Dettagli

Chi sono. Progettista di Formazione. Giudice di Gara dal 1972. Giudice di Partenza Nazionale dal 1981

Chi sono. Progettista di Formazione. Giudice di Gara dal 1972. Giudice di Partenza Nazionale dal 1981 Chi sono Francesco lo Basso Molfetta (Ba) Progettista di Formazione Giudice di Gara dal 1972 Giudice di Partenza Nazionale dal 1981 Esperienze specifiche: Tutor Progetto Formazione Giovani Obiettivi Acquisire

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

DIMENSIONI CRITERI INDICATORI

DIMENSIONI CRITERI INDICATORI Allegato 4 - Manerbio META EDUCATIVA: autonomia in ambito scolastico (classe 4/5 scuola primaria) DIMENSIONI CRITERI INDICATORI GESTIONALE OPERATIVA Uso degli strumenti Conoscere gli strumenti necessari

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

La progettazione centrata sull utente nei bandi di gara

La progettazione centrata sull utente nei bandi di gara Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA La progettazione centrata sull utente nei bandi di gara Autore: Maurizio Boscarol Creatore: Formez PA, Progetto Performance

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING

NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING gno Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING COSA

Dettagli

DIFFERENZIARE LE CAMPAGNE DI MARKETING La scelta del canale adeguato

DIFFERENZIARE LE CAMPAGNE DI MARKETING La scelta del canale adeguato Via Durini, 23-20122 Milano (MI) Tel.+39.02.77.88.931 Fax +39.02.76.31.33.84 Piazza Marconi,15-00144 Roma Tel.+39.06.32.80.37.33 Fax +39.06.32.80.36.00 www.valuelab.it valuelab@valuelab.it DIFFERENZIARE

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

enside www.xdatanet.com

enside www.xdatanet.com enside è il software che affianca responsabili aziendali, energy manager e proprietari di edifici per capire come intervenire sui consumi e sui costi, migliorando l efficienza energetica. enside www.xdatanet.com

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

L ergonomia dei sistemi informativi

L ergonomia dei sistemi informativi Strumenti non convenzionali per l evoluzione d Impresa: L ergonomia dei sistemi informativi di Pier Alberto Guidotti 1 L ergonomia dei sistemi informativi CHI SONO Pier Alberto Guidotti Fondatore e direttore

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

come nasce una ricerca

come nasce una ricerca PSICOLOGIA SOCIALE lez. 2 RICERCA SCIENTIFICA O SENSO COMUNE? Paola Magnano paola.magnano@unikore.it ricevimento: martedì ore 10-11 c/o Studio 16, piano -1 PSICOLOGIA SOCIALE COME SCIENZA EMPIRICA le sue

Dettagli

Ricerca di outlier. Ricerca di Anomalie/Outlier

Ricerca di outlier. Ricerca di Anomalie/Outlier Ricerca di outlier Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Ricerca di Anomalie/Outlier Cosa sono gli outlier? L insieme di dati che sono considerevolmente differenti dalla

Dettagli

Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi.

Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi. 5. Processi Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi. Il criterio vuole approfondire come l azienda agrituristica

Dettagli

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011 I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA Palermo 9 novembre 2011 UNIVERSITÀ DEGLI STUDI DI PALERMO Webquest Attività di indagine guidata sul Web, che richiede la partecipazione attiva degli studenti,

Dettagli

MService La soluzione per ottimizzare le prestazioni dell impianto

MService La soluzione per ottimizzare le prestazioni dell impianto MService La soluzione per ottimizzare le prestazioni dell impianto Il segreto del successo di un azienda sta nel tenere sotto controllo lo stato di salute delle apparecchiature degli impianti. Dati industriali

Dettagli

HR - Sicurezza. Parma 17/12/2015

HR - Sicurezza. Parma 17/12/2015 HR - Sicurezza Parma 17/12/2015 FG Software Produce software gestionale da più di 10 anni Opera nel mondo del software qualità da 15 anni Sviluppa i propri software con un motore completamente proprietario

Dettagli

Norme per l organizzazione - ISO serie 9000

Norme per l organizzazione - ISO serie 9000 Norme per l organizzazione - ISO serie 9000 Le norme cosiddette organizzative definiscono le caratteristiche ed i requisiti che sono stati definiti come necessari e qualificanti per le organizzazioni al

Dettagli

SERVIZIO NAZIONALE DI VALUTAZIONE 2010 11

SERVIZIO NAZIONALE DI VALUTAZIONE 2010 11 SERVIZIO NAZIONALE DI VALUTAZIONE 2010 11 Le rilevazioni degli apprendimenti A.S. 2010 11 Gli esiti del Servizio nazionale di valutazione 2011 e della Prova nazionale 2011 ABSTRACT Le rilevazioni degli

Dettagli

Pianificazione e progettazione

Pianificazione e progettazione Pianificazione e progettazione L analisi preventiva degli eventi e delle loro implicazioni rappresenta una necessità sempre più forte all interno di tutte le organizzazioni variamente complesse. L osservazione

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Tecniche di riconoscimento statistico

Tecniche di riconoscimento statistico On AIR s.r.l. Tecniche di riconoscimento statistico Applicazioni alla lettura automatica di testi (OCR) Parte 4 Reti neurali per la classificazione Ennio Ottaviani On AIR srl ennio.ottaviani@onairweb.com

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

11. Evoluzione del Software

11. Evoluzione del Software 11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

SocialMediaDivision. grippiassociati WEB AGENCY SINCE 1996. Social Marketing & Divulgazione Virale. www.socialmediadiv.com

SocialMediaDivision. grippiassociati WEB AGENCY SINCE 1996. Social Marketing & Divulgazione Virale. www.socialmediadiv.com SocialMediaDivision www.socialmediadiv.com grippiassociati WEB AGENCY SINCE 1996 Social Marketing & Divulgazione Virale Essere raggiungibile tramite i motori di ricerca è sicuramente utile, ma è un'operazione

Dettagli

LE STRATEGIE DI COPING

LE STRATEGIE DI COPING Il concetto di coping, che può essere tradotto con fronteggiamento, gestione attiva, risposta efficace, capacità di risolvere i problemi, indica l insieme di strategie mentali e comportamentali che sono

Dettagli

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

Dettagli

PROGETTO TECNICO SISTEMA DI GESTIONE QUALITA IN CONFORMITÀ ALLA NORMA. UNI EN ISO 9001 (ed. 2008) n. 03 del 31/01/09 Salvatore Ragusa

PROGETTO TECNICO SISTEMA DI GESTIONE QUALITA IN CONFORMITÀ ALLA NORMA. UNI EN ISO 9001 (ed. 2008) n. 03 del 31/01/09 Salvatore Ragusa PROGETTO TECNICO SISTEMA DI GESTIONE QUALITA IN CONFORMITÀ ALLA NORMA UNI EN ISO 9001 (ed. 2008) Revisione Approvazione n. 03 del 31/01/09 Salvatore Ragusa PROGETTO TECNICO SISTEMA QUALITA Il nostro progetto

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15 Indice Introduzione pag. 9 Ringraziamenti» 13 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15 1. I contenuti curati, interessanti e utili aiutano il business» 15 2. Le aziende

Dettagli

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti OBIETTIVO Il vincitore è colui che, dopo due round di gioco, delle sue 11 ordinazioni, ne ha consegnate il maggior numero. CONTENUTO DELLA SCATOLA

Dettagli

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) CORSO DI Gestione aziendale Facoltà di Ingegneria IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto) Carlo Noè Università Carlo Cattaneo Istituto di Tecnologie e-mail: cnoe@liuc.it 1 Il processo di

Dettagli

Capitolo 4 Probabilità

Capitolo 4 Probabilità Levine, Krehbiel, Berenson Statistica II ed. 2006 Apogeo Capitolo 4 Probabilità Insegnamento: Statistica Corso di Laurea Triennale in Economia Facoltà di Economia, Università di Ferrara Docenti: Dott.

Dettagli

LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE

LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE Non c è mai una seconda occasione per dare una prima impressione 1. Lo scenario Oggi mantenere le proprie posizioni o aumentare le quote di mercato

Dettagli

GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10. Angelo Bonomi

GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10. Angelo Bonomi GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10 Angelo Bonomi CONSIDERAZIONI SUL MONITORAGGIO Un monitoraggio ottimale dipende dalle considerazioni seguenti:

Dettagli

Area Marketing. Approfondimento

Area Marketing. Approfondimento Area Marketing Approfondimento CUSTOMER SATISFACTION COME RILEVARE IL LIVELLO DI SODDISFAZIONE DEI CLIENTI (CUSTOMER SATISFACTION) Rilevare la soddisfazione dei clienti non è difficile se si dispone di

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Una tabella Pivot usa dati a due dimensioni per creare una tabella a tre dimensioni, cioè una tabella

Dettagli

I modelli di qualità come spinta allo sviluppo

I modelli di qualità come spinta allo sviluppo I modelli di qualità come spinta allo sviluppo Paolo Citti Ordinario Università degli studi di Firenze Presidente Accademia Italiana del Sei Sigma 2005 1 Si legge oggi sui giornali che l azienda Italia

Dettagli

La Qualità il Controllo ed il Collaudo della macchina utensile. Dr. Giacomo Gelmi

La Qualità il Controllo ed il Collaudo della macchina utensile. Dr. Giacomo Gelmi La Qualità il Controllo ed il Collaudo della macchina utensile Dr. Giacomo Gelmi Che cosa è una macchina utensile? E uno spazio fisico in cui si collocano, sostenuti da adeguate strutture ed in posizioni

Dettagli

Indice. pagina 2 di 10

Indice. pagina 2 di 10 LEZIONE PROGETTAZIONE ORGANIZZATIVA DOTT.SSA ROSAMARIA D AMORE Indice PROGETTAZIONE ORGANIZZATIVA---------------------------------------------------------------------------------------- 3 LA STRUTTURA

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

leaders in engineering excellence

leaders in engineering excellence leaders in engineering excellence engineering excellence Il mondo di oggi, in rapida trasformazione, impone alle imprese di dotarsi di impianti e macchinari più affidabili e sicuri, e di più lunga durata.

Dettagli

Valutare gli esiti di una consultazione online

Valutare gli esiti di una consultazione online Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA Valutare gli esiti di una consultazione online Autore: Antonella Fancello, Laura Manconi Creatore: Formez PA, Progetto Performance

Dettagli

I libri di testo. Carlo Tarsitani

I libri di testo. Carlo Tarsitani I libri di testo Carlo Tarsitani Premessa Per accedere ai contenuti del sapere scientifico, ai vari livelli di istruzione, si usa comunemente anche un libro di testo. A partire dalla scuola primaria, tutti

Dettagli

Mentore. Rende ordinario quello che per gli altri è straordinario

Mentore. Rende ordinario quello che per gli altri è straordinario Mentore Rende ordinario quello che per gli altri è straordinario Vision Creare un futuro migliore per le Nuove Generazioni Come? Mission Rendere quante più persone possibili Libere Finanziariamente Con

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia

Dettagli

LO SVILUPPO DELLE COMPETENZE RELAZIONALI DEL PERSONALE INTERNO A CONTATTO CON IL CLIENTE

LO SVILUPPO DELLE COMPETENZE RELAZIONALI DEL PERSONALE INTERNO A CONTATTO CON IL CLIENTE LO SVILUPPO DELLE COMPETENZE RELAZIONALI DEL PERSONALE INTERNO A CONTATTO CON IL CLIENTE La qualità del servizio passa attraverso la qualità delle persone 1. Lo scenario In presenza di una concorrenza

Dettagli

Project Cycle Management

Project Cycle Management Project Cycle Management Tre momenti centrali della fase di analisi: analisi dei problemi, analisi degli obiettivi e identificazione degli ambiti di intervento Il presente materiale didattico costituisce

Dettagli

Guida Strategica per gli Imprenditori

Guida Strategica per gli Imprenditori Guida Strategica per gli Imprenditori Scopri la Formula atematica del Business 1 La Tavola degli Elementi del Business Come in qualsiasi elemento in natura anche nel Business è possibile ritrovare le leggi

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Alla c.a. Sindaco/Presidente Segretario Generale Dirigente competente

Alla c.a. Sindaco/Presidente Segretario Generale Dirigente competente Alla c.a. Sindaco/Presidente Segretario Generale Dirigente competente Controllo di Gestione e Misurazione delle Performance: l integrazione delle competenze, la valorizzazione delle differenze e la tecnologia

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

GUIDA - Business Plan Piano d impresa a 3/5 anni

GUIDA - Business Plan Piano d impresa a 3/5 anni GUIDA - Business Plan Piano d impresa a 3/5 anni 1 Executive summary...2 2 Business idea...2 3 Analisi di mercato...2 4 Analisi dell ambiente competitivo...2 5 Strategia di marketing...3 5.1 SWOT Analysis...3

Dettagli

Cap.1 - L impresa come sistema

Cap.1 - L impresa come sistema Cap.1 - L impresa come sistema Indice: L impresa come sistema dinamico L impresa come sistema complesso e gerarchico La progettazione del sistema impresa Modelli organizzativi per la gestione Proprietà

Dettagli

IL CASO DELL AZIENDA. Perché SAP. www.softwarebusiness.it

IL CASO DELL AZIENDA. Perché SAP. www.softwarebusiness.it LA SOLUZIONE SAP FOR PROFESSIONAL SERVICES IL CASO DELL AZIENDA Perché SAP Grazie a SAP siamo riusciti a pianificare meglio e ad ottenere tempestive informazioni su tempi e costi delle nostre commesse.

Dettagli

Mercoledì degli Associati. Opportunità di business per le Aziende UCIF. Milano, 20 novembre 2013. Federata

Mercoledì degli Associati. Opportunità di business per le Aziende UCIF. Milano, 20 novembre 2013. Federata Mercoledì degli Associati Opportunità di business per le Aziende UCIF Milano, 20 novembre 2013 Federata Nascita del progetto UCIF rappresenta da 40 anni il settore italiano della Finitura, tramite i relativi

Dettagli

esales Forza Ordini per Abbigliamento

esales Forza Ordini per Abbigliamento esales Rel. 2012 Forza Ordini per Abbigliamento Scopo di questo documento è fornire la descrizione di una piattaforma di Raccolta Ordini via Web e la successiva loro elaborazione in ambiente ERP Aziendale.

Dettagli

ALLEGATO H VALUTAZIONE DELLA PERFORMANCE INDIVIDUALE DEI DIPENDENTI COMUNE DI CINISI Prov. Palermo

ALLEGATO H VALUTAZIONE DELLA PERFORMANCE INDIVIDUALE DEI DIPENDENTI COMUNE DI CINISI Prov. Palermo SCHEDA di 3 II Fattore di Valutazione: Comportamenti professionali e organizzativi e competenze Anno Settore Servizio Dipendente Categoria Profilo professionale Responsabilità assegnate DECLARATORIA DELLA

Dettagli

A.A. 2015/2016. Statistica Medica. Corso di. CdL in Fisioterapia CdL in Podologia

A.A. 2015/2016. Statistica Medica. Corso di. CdL in Fisioterapia CdL in Podologia A.A. 2015/2016 Corso di Statistica Medica CdL in Fisioterapia CdL in Podologia La statistica è la scienza che ha come fine lo studio quantitativo e qualitativo di un "collettivo". Studia i modi in cui

Dettagli

Principi di analisi causale Lezione 2

Principi di analisi causale Lezione 2 Anno accademico 2007/08 Principi di analisi causale Lezione 2 Docente: prof. Maurizio Pisati Logica della regressione Nella sua semplicità, l espressione precedente racchiude interamente la logica della

Dettagli

IN COLLABORAZIONE CON OPTA SRL

IN COLLABORAZIONE CON OPTA SRL PROGRAMMARE LA PRODUZIONE IN MODO SEMPLICE ED EFFICACE IN COLLABORAZIONE CON OPTA SRL SOMMARIO 1. L AZIENDA E IL PRODOTTO 2. IL PROBLEMA 3. DATI DI INPUT 4. VERIFICA CARICO DI LAVORO SETTIMANALE 5. VERIFICA

Dettagli

Che volontari cerchiamo? Daniela Caretto Lecce, 27-28 aprile

Che volontari cerchiamo? Daniela Caretto Lecce, 27-28 aprile Che volontari cerchiamo? Daniela Caretto Lecce, 27-28 aprile Premessa All arrivo di un nuovo volontario l intero sistema dell associazione viene in qualche modo toccato. Le relazioni si strutturano diversamente

Dettagli

Come archiviare i dati per le scienze sociali

Come archiviare i dati per le scienze sociali Come archiviare i dati per le scienze sociali ADPSS-SOCIODATA Archivio Dati e Programmi per le Scienze Sociali www.sociologiadip.unimib.it/sociodata E-mail: adpss.sociologia@unimib.it Tel.: 02 64487513

Dettagli