Machine Learning nell'era dei Big Data: algoritmi scientifici per la modellazione, analisi e creazione di nuova conoscenza dai dati, Tesi di Laurea Specialistica di Algoritmi E Programmazione Avanzata. Università degli Studi di Milano
MattStef
MattStef
Questo è un documento Store
messo in vendita da MattStef
e scaricabile solo a pagamento

Machine Learning nell'era dei Big Data: algoritmi scientifici per la modellazione, analisi e creazione di nuova conoscenza dai dati, Tesi di Laurea Specialistica di Algoritmi E Programmazione Avanzata. Università degli Studi di Milano

112 pagine
5Numero di download
660Numero di visite
Descrizione
Il Machine Learning è senza dubbio una delle più affascinanti e innovative tecnologie in via di sviluppo destinata a rivoluzionare le nostre vite e il nostro mondo. Con questo elaborato si tenta di fornire una guida rias...
24.99
Prezzo del documento
Scarica il documento
Questo documento è messo in vendita dall'utente MattStef: potrai scaricarlo in formato digitale subito dopo averlo acquistato! Più dettagli
Anteprima6 pagine / 112
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento

Machine Learning nell’era dei Big Data: algoritmi scientifici per

la modellazione, analisi e creazione di nuova conoscenza dai dati

Matteo Stefanini

Abstract

Il Machine Learning è senza dubbio una delle più affascinanti e

innovative tecnologie in via di sviluppo destinata a rivoluzionare le

nostre vite e il nostro mondo. Con questo elaborato si tenta di fornire

una guida riassuntiva in lingua italiana che illustri e spieghi alcuni tra i

più importanti algoritmi di apprendimento statistico usati oggigiorno

in ambito Intelligenza Artificiale, affrontando le teorie con un discreto

formalismo matematico necessario ad una comprensione puntuale, e

dandone qualche dimostrazione sperimentale con problemi pratici.

Affronteremo algoritmi di Supervised Learning come la Regressione

Lineare e Regressione Logistica, il Support Vector Machine e le Reti

Neurali Artificiali con accenno al grande campo di ricerca del Deep

Learning; algoritmi di Unsupervised Learning come il K-mean

Clustering, il Principal Component Analysis e l’Anomaly Detection;

parte della teoria di apprendimento per il loro miglioramento ed infine

alcuni algoritmi speciali riguardanti i Recommender System, Content-

based e Collaborative Filtering; un ultimo importante focus è dato

dall’integrazione degli algoritmi su larga scala grazie all’uso dei Big

Data, fenomeno sempre più importante e decisivo non solo per il

mondo del business.

Indice

Abstract ........................................................................................................................... i

1.Introduzione .............................................................................................................. 3

1.1. Intelligenza Artificiale ...................................................................................... 3

1.2. Machine Learning ............................................................................................. 7

1.3. Big Data ............................................................................................................ 9

1.4. Data-Driven Marketing ................................................................................... 11

2. Supervised Learning............................................................................................... 14

2.1. Regressione Lineare ........................................................................................ 14

2.2. Regressione Logistica ..................................................................................... 22

2.3. Overfitting vs Underfitting ............................................................................. 29

2.4. Support Vector Machine ................................................................................. 33

2.5. Reti Neurali Artificiali .................................................................................... 38

2.6. Deep Learning ................................................................................................. 53

3.Teorie di apprendimento degli algoritmi ............................................................. 55

3.1. Diagnostica ..................................................................................................... 55

3.2. Bias Variance trade off ................................................................................... 58

3.3. Metriche di valutazione .................................................................................. 63

4. Unsupervised Learning .......................................................................................... 66

4.1. Clustering K-means ........................................................................................ 66

4.2. Principal component analysis ......................................................................... 70

4.3. Anomaly detection .......................................................................................... 74

5.Recommender System ............................................................................................ 81

5.1. Content Based ................................................................................................. 83

5.2. Collaborative Filtering .................................................................................... 85

6.Machine Learning con big data ............................................................................. 92

6.1. Gradiente Stocastico ....................................................................................... 95

6.2. Online learning ............................................................................................... 98

6.3. Map Reduce .................................................................................................. 101

6.4. Pipeline e Ceiling analysis ............................................................................ 103

6.5. Strumenti Software ....................................................................................... 107

7.Conclusioni ............................................................................................................ 110

References .................................................................................................................. 112

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 3

1. Introduzione

1.1 Intelligenza Artificiale

L’espressione “Intelligenza Artificiale” è stata coniata nel 1956 dal famoso

matematico americano John McCarthy durante uno storico seminario disciplinare

svoltosi nel New Hampshire.

Tutt’oggi non è facile darvi una definizione di validità univoca poiché non esiste una

definizione oggettiva di cosa sia l’intelligenza stessa.

Da un punto di vista più informatico, con questo termine si intende l’abilità di una

macchina di svolgere funzioni e ragionamenti intelligenti tipici della mente umana,

possedendo la capacità di completare compiti, risolvere problemi nuovi, comprendere

la realtà e adattarsi all’ambiente; oggi comprende sempre più le teorie e le tecniche per

lo sviluppo di algoritmi che consentano ai computer di mostrare un’abilità e/o attività

intelligente in domini specifici.

Storicamente l’Intelligenza Artificiale è sempre stata suddivisa in due categorie:

 Intelligenza Artificiale forte (o generale);

 Intelligenza Artificiale debole.

L’IA forte si riferisce ad un’intelligenza che può pensare, avere una mente, ed essere

indistinguibile da una vera intelligenza umana. Sostanzialmente si tratta della

singolarità tecnologia in cui l’intelligenza creata artificialmente raggiunge quella

dell’uomo, intendendo tutte le capacità cognitive e relazionali tipiche. Seppur questa

posizione sia stata predominante nel primo periodo fino agli anni 80’, oggi risulta

molto distante dalle attività dei ricercatori e specialisti del settore, si è assistito ad una

sorta di fallimento dell’IA forte quando si è capito che con le attuali tecnologie non si

era ancora in grado di riprodurla.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 4

L’IA debole si riferisce invece ad un’intelligenza che agisce come se pensasse e avesse

una mente. Non ha più l’obiettivo di raggiungere quella umana, ma si pone in una

posizione utilitaristica dove l’obiettivo è la realizzazione di software e sistemi che

possano simulare alcuni processi cognitivi umani, e che agiscano come un soggetto

intelligente, non che lo siano davvero.

Oggi la polemica tra le due categorie è sicuramente fuori tempo e mal posta,

nonostante la ricerca di un’intelligenza simile a quella umana resti molto affascinante e

il sogno di chiunque si avvicini alla materia.

Grandi progressi sia nel campo del Quantum Computer, o computer quantistico, dove

grazie all’uso delle proprietà della meccanica quantistica al posto dei bits si usano i

qubits come unità di informazione con più di due valori, e soprattutto il recentissimo

progresso nel campo del Biological Computing, dove si stanno realizzando i primi

processori con cellule biologiche neuronali vive, lasciano ipotizzare nuovi e incredibili

sviluppi verso un’intelligenza basata sulla biologia, una tecnologia molto più avanzata

di qualunque altra tecnologia mai inventata dall’uomo poiché frutto di miliardi di anni

di evoluzione naturale [Singularity Web 5].

In generale dal punto di vista filosofico e tecnologico si può suddividere l’Intelligenza

Artificiale in alcune aree di maggiore ricerca e attinenza:

 Machine Learning (o apprendimento automatico in italiano) che riguarda l’attività sempre più trasversale e onnipresente nelle nostre vite dove un

computer impara autonomamente a programmarsi sulla base di esperienze

pregresse e nuovi avvenimenti, riconoscere pattern, classificare, ecc, e che

influenza anche altre aree di seguito elencate;

 Rappresentazione della conoscenza, necessaria per salvare le informazioni in un formato conosciuto e l’utilizzo della logica matematica;

 Ragionamento automatico, dato in buona parte dagli algoritmi di Machine Learning che inferiscono decisioni in maniera simile alla mente umana e

abbiano capacità di pianificazione (planning);

 Computer Vision (o visione artificiale) in quanto un qualsiasi agente deve essere in grado di percepire e vedere l’ambiente esterno per poterci interagire,

tramite l’uso di immagini e video;

 Natural Language Processing (o elaborazione del linguaggio naturale) di fondamentale importanza per capire e produrre informazioni nella lingua

umana, capita e interpretata dagli essere umani;

 Robotica, dove si attribuisce ad un agente intelligente la possibilità di interagire con il mondo esterno attraverso sensori ed attuatori, per lo svolgimento di

compiti e funzioni sempre più intelligenti e meno “deterministiche”.

Il Machine Learning (ML) è in una qualche forma sempre presente in tutte le aree di

interesse dell’Intelligenza Artificiale, e rientra a pieno titolo nell’ambito di ricerca in

maggior fermento, facendo da collegamento tra ciò che computer e uomo sanno fare

bene ma singolarmente.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 5

Per quanto siano affidabili, gli strumenti statistici tradizionali non risolvono

pienamente i problemi più complessi nell’era dei Big Data, cioè quei fenomeni che

richiedono approcci non lineari e modelli che solo il Machine Learning può offrire, e

questo porta con sé una visione scientifica del mondo di tipo nuovo: oggi si tende a

parlare di mutamento di paradigma (o “Paradigm shift” by Thomas Khun) con facilità

eccessiva ma secondo molti scienziati ed esperti siamo davvero di fronte ad uno di

questi [Domingos 2015].

Dando uno sguardo alla Figura 1 con riportato il famoso Hype Cycle di previsione

evolutiva delle tecnologie emergenti di Gartner del 2015, notiamo come quasi tutti

questi ambiti siano presenti con una previsione di sviluppo dai 2 ai 10 anni:

Figura 1 - Hype Cycle Tecnologie Emergenti del 2015 Fonte: Gartner Inc.

Lo stesso Bill Gates, inizialmente cauto e pensieroso nel guardare all’Intelligenza

Artificiale come una possibile minaccia, l’ha definita poco tempo fa (maggio 2016) il

“Sacro Graal” dell’innovazione tecnologica, avendo prodotto più progressi negli ultimi

5 anni che nel resto della storia.

Gli usi di sistemi intelligenti basati su Intelligenza Artificiale e dunque Machine

Learning sono già ovunque intorno a noi. Ci circondano in ogni momento della nostra

giornata ma non ce ne rendiamo conto.

Ma soprattutto non dobbiamo preoccuparcene o averne paura perché sono al nostro

servizio, ci rendono la vita più facile, ci assistono, ci aiutano, ci consigliano le cose

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 6

che preferiamo, ci fanno risparmiare tempo, ci forniscono risultati utili nel lavoro,

governano la finanza, internet, industrie, e a volte ci salvano pure la vita.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 7

1.2 Machine Learning

Il Machine Learning è la scienza che studia come fare comportare e agire i computer

senza che siano esplicitamente programmati a farlo.

Rappresenta una delle aree fondamentali dell’Intelligenza Artificiale e si occupa della

creazione di sistemi e algoritmi che imparino ad auto-programmarsi sfruttano i dati

esistenti per creare nuova conoscenza, fare predizioni e intraprendere azioni

“intelligenti”.

Uno degli obiettivi principali alla base del Machine Learning è quello di individuare

modelli e pattern complessi nelle grandi quantità di dati disponibili, e sulla base di

essi generalizzare un comportamento che sarebbe pressoché impossibile da

programmare a priori, poiché l’insieme di tutti i possibili input sarebbe troppo grande

da poter essere previsto.

Grazie alla grande quantità dei dati forniti su osservazioni ed esperienze pregresse, un

algoritmo di Machine Learning è in grado di apprendere autonomamente quali siano i

migliori output da fornire al presentarsi di nuovi input, cioè di nuovi casi una volta in

funzione.

Ad oggi non siamo ancora in grado di riprodurre sistemi di apprendimento automatico

come quello umano, che dimostrino evidenze di una propria coscienza e posseggano le

vaste abilità cognitive tipiche dell’uomo, tuttavia sono stati inventati numerosi

algoritmi e sistemi che possono emulare e svolgere compiti complessi in modo molto

efficace attraverso questi tipi di apprendimento automatico.

Il Machine Learning è così pervasivo che ogni giorno ognuno di noi usa dozzine di

volte algoritmi di questo tipo senza esserne consapevole: ogni volta che svolgiamo una

ricerca su un motore di ricerca, ogni volta che usiamo Facebook o altre applicazioni

che riconoscono le facce nelle fotografie, ogni volta che guardiamo le nostre email

senza che lo spam ci infastidisca, ogni volta che usiamo un riconoscitore vocale per

interagire con uno smartphone o computer, ogni volta che ci viene proposta una

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 8

pubblicità inerente prodotti a cui siamo recentemente interessati, sono tutti semplici

esempi di dove possiamo trovare algoritmi di questo tipo, ma la lista è

sorprendentemente lunga e riguarda anche argomenti molto attuali su cui si sta

svolgendo ricerca, come le automobili che si guidano da sole, la prevenzione dei

tumori in ambito medico e l’utilizzo efficace dei big data in svariati settori.

Il Machine Learning è di per sé un campo multidisciplinare: si basa sui risultati di

Intelligenza Artificiale, Probabilità, Statistica, Teoria della complessità

computazionale, Teoria di controllo, Teoria dell’informazione, Filosofia, Psicologia,

Neurobiologia e altri campi.

Possiamo sostanzialmente suddividere il Machine Learning in due macro categorie: il

Supervised Learning e l’Unsupervised Learning.

Il Supervised Learning comprende quella parte di algoritmi di apprendimento

automatico basati sugli esempi, cioè sui dati completi composti da un input e un

corrispettivo output osservato e/o desiderato. Le implementazioni più comuni sono

riconducibili sostanzialmente a due categorie di problemi, quelli di regressione e quelli

di classificazione. Le regressioni riguardano ad esempio le previsioni dei prezzi, delle

vendite, dei consumi, delle temperature, e di qualsiasi altra variabile continua; le

classificazioni riguardano invece problemi con output discreto cioè variabili

categoriali con valori fissati a priori, come ad esempio problemi di spam detection,

l’identificazione dei tumori, il riconoscimento facciale e vocale, il riconoscimento

della scrittura manuale, l’elaborazione del linguaggio naturale e molti altri.

L’Unupervised Learning invece tratta gli algoritmi di apprendimento automatico con

dati incompleti, cioè privi di output associato agli input, disponendo quindi solamente

dei dati delle variabili indipendenti fornite in ingresso. L’obiettivo primario di questi

algoritmi è quello di apprendere caratteristiche comuni, patterns e strutture nei dati,

con i quali andranno a classificarli o a effettuare ragionamenti e previsioni con nuovi

input. Alcuni esempi di utilizzo riguardano la segmentazione del mercato, la gestione

dei computer cluster, la riduzione delle dimensioni delle informazioni,

l’individuazione di anomalie nella cybersicurity e nei processi di manufacturing, le

analisi delle reti sociali, l’analisi dei dati astronomici, l’individuazione di similarità e

così via.

In questo elaborato tratteremo i principali algoritmi di queste due macroclassi,

dandone una qualche dimostrazione sperimentale utilizzando il software MATLAB.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 9

1.3 Big Data

Fino a soli 10 anni fa probabilmente in pochi conoscevano il termine Big Data e

ancora di meno lo usavano. Oggi al contrario lo troviamo quasi ovunque ed è sulla

bocca di tutti. Questo è dovuto al fatto che negli ultimi anni, con l’evolversi e

l’espandersi delle tecnologie web e altre tecnologie come l’Internet of Things abbiamo

assistito ad un aumento esponenziale dei dati di qualsiasi tipo e provenienza,

principalmente di carattere digitale.

Vediamo alcuni fatti reali molto esplicativi e affascinanti:

 Ogni 2 giorni l’umanità produce la stessa quantità di informazioni di quella prodotta dall’inizio della storia fino al 2003. E il ritmo è in crescita. (Eric

Schmidt, Chairman Google) (circa 2 exabytes ogni due giorni);

 Il 90% di tutti i dati nel mondo è stato creato negli ultimi 2 anni (Bernard Marr, Data expert);

 Se salvassimo i dati prodotti in un solo giorno su dei DVDs e li impilassimo uno sopra l’altro potremmo raggiungere la luna. Due volte. (Bernard Marr, Data

expert).

Dare però una rigorosa definizione di Big Data risulta difficile, poiché lo si utilizza in

vari contesti: potremmo trovarlo quando si parla di dataset difficili da maneggiare con

i tradizionali Database Management System, oppure quando si hanno collezioni di dati

difficili da processare in un singolo server, o in generale quando ci si riferisce a “tanti

dati”, che talvolta così tanti non lo sono nemmeno.

Cosa significa dunque “Big”? Una precisa specificazione è elusiva. Quello che è

considerato grande per qualche organizzazione potrebbe essere piccolo per altre.

Quello che oggi consideriamo larga scala domani potrebbe essere piccola scala: i

petabytes sono i nuovi terabytes. Dunque la sola dimensione non può specificare i Big

Data, dobbiamo aggiungerci anche la complessità e altre caratteristiche.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 10

Molti oggi si riferiscono ai Big Data con le caratteristiche delle famose 3V coniate da

Doug Laney di Gartner, poi diventate 4V e oggi addirittura 7V:

 Volume: si riferisce alla vasta quantità di dati prodotta ogni secondo – minuto – ora – giorno nel nostro mondo digitalizzato;

 Velocity: si riferisce alla velocità con cui i dati vengono creati, il flusso e il ritmo nel passare da un dato ad un altro;

 Variety: si riferisce alla crescente diversità di formati in cui i dati si trovano, testi, numeri, immagini, audio, video, geospaziali, ecc e alla cosiddetta “curse

of dimensionality” dove i dati sono organizzati in spazi (dimensioni delle

variabili) di grandi dimensioni;

 Variability: si riferisce ai cambiamenti di significato che i dati possono presentare come ad esempio una parola che assume significati diversi a seconda

del contesto in cui si trova;

 Veracity: si riferisce al fatto che la qualità dei dati può variare sensibilmente e quindi occorre tenerli “puliti”;

 Visualization: si riferisce al modo in cui i dati devono essere presentati per essere leggibili e accessibili alle persone;

 Value: forse la più importante caratteristica che devono restituire i Big Data, poiché il solo accumulare dati risulta inutile se non si sa come analizzarli ed

estrapolarci le informazioni rilevanti ai fini della creazione di valore.

Per affrontare e trarre valore dalla sfida dei Big Data occorrono dunque strumenti e

tecnologie innovative, come ad esempio la parallelizzazione e distribuzione delle

esecuzioni computazionali, algoritmi di Machine Learning scalabili, Cloud computing,

Fyle System distribuiti, data centers e data clusters, real time querying, ecc.

Il potenziale di valore proveniente dai Big Data è altissimo. McKinsey stima che

alcune iniziative in healthcare potrebbero ridurre la spesa nel solo sistema sanitario

statuintense dai 300 ai 450 miliardi all’anno di dollari (12-17 % del totale).

In sostanza siamo già sommersi dai Big Data, ma i soli dati senza gli accurati e

innovativi sistemi di analisi e previsioni sono virtualmente inutili, mentre invece con il

loro utilizzo sono virtualmente senza limiti di valore.

D’altro canto, come vedremo nel capitolo 6, è stato ampiamente dimostrato come

l’utilizzo di Big Data aumenti notevolmente le prestazioni e l’accuratezza degli

algoritmi di Machine Learning, creando così un connubio perfetto di grande impatto

tecnologico.

Lo sforzo di dare un senso e sfruttare questa immensa mole di dati che caratterizza il

nostro presente e ancora di più caratterizzerà il nostro futuro porta quindi con sé

incredibili opportunità di crescita e sviluppo.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 11

1.4 Data-Driven Marketing

E’ evidente come i Big Data e il Machine Learning stiano influenzando e cambiando

radicalmente anche gli aspetti legati al Marketing.

I molteplici e crescenti punti di contatto fra imprese e consumatori generano ogni

giorno una sempre crescente quantità di dati che possono aiutare enormemente il

Marketing a offrire esperienze sempre più personalizzate e soddisfacenti.

Tuttavia, senza adeguati strumenti in grado di individuare i contenuti significativi e

coglierne le relazioni, tutti questi dati rischiano di rimanere inutilizzabili. Per evitare

che questa mole di informazioni vada persa occorre una strategia di raccolta pervasiva

e organizzata, che sfrutti le potenzialità dei calcolatori, le nuove tecnologie e

particolari algoritmi adatti ad identificare pattern, insight, trend, e informazioni

nascoste che altrimenti finirebbero per confondersi e mescolarsi tra loro, lasciando

incompiuta la possibilità di sfruttare situazioni vantaggiose per il business e indizi di

futuri cambiamenti.

I modelli predittivi permettono non solo di scoprire i trend presenti, ma anche di

prevedere comportamenti futuri dei clienti e del mercato, aiutando nello sviluppo di

strategie mirate ed efficaci.

Grazie al grande successo degli ultimi anni di molti strumenti per la raccolta

sistematica dei dati e grazie a tutte le piattaforme e canali presenti sul mercato, questo

processo di raccolta e analisi e predizione è oggi alla portata di molte imprese, anche

se spesso, a causa delle limitate conoscenze o capacità d’investimento, le opportunità

vengono trascurate.

Apparentemente aggiungere costantemente nuovi dati (eterogenei e in real-time) in un

sistema che continua a crescere di dimensioni potrebbe sembrare scoraggiante e

disastroso in termini di prestazioni ed efficienza.

Invece la forza di questo approccio è proprio nei Big Data. Per individuare connessioni

fra eventi apparentemente sconnessi con risultati sperimentali attendibili, è necessario

aggiungere costantemente una grande mole di dati, e tramite le odierne tecnologie di

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 12

raccolta ed elaborazione delle informazioni come vedremo, si è resa possibile

l’elaborazione e l’analisi di grandi quantità di dati a costi e tempi relativamente bassi e

impensabili fino a un decennio fa.

Il concetto di Data-Driven Marketing non è certo nuovo nella guida del processo

decisionale di un’impresa, la differenza rispetto al passato è che ora vengono raccolte

molte più informazioni relative ad ogni elemento rilevante, la quantità e complessità

dei dati a disposizione negli ultimi anni è cresciuta esponenzialmente con l’avvento

dei canali digitali (web, mobile, social media, ecc) a fianco dei tradizionali canali

offline, ed è destinata a crescere sempre più con le future tecnologie di IoT, Wearable,

VR, ecc.

L’unione delle diverse fonti di dati (offline e online, ma anche interne ed esterne,

strutturate e non strutturate) rappresenta una sfida, resa ancora più interessante dalla

disponibilità di informazioni in tempo reale. Lo sviluppo di modelli di apprendimento

automatico che aggiornano continuamente la conoscenza del mondo esterno apre le

porte alle strategie che prevedono le azioni ottimali, basate su un’elevata conoscenza

del contesto, amplificando la significatività delle informazioni rispetto agli obiettivi di

business e traducendole in azioni concrete per dirigere le strategie di mercato.

I risultati possono fornire ai marketer una visione più chiara riguardo al

comportamento dei clienti e a come identificare nuove opportunità di business. Per

esempio, possono dare informazioni su quanto è verosimile che un certo cliente

effettui un acquisto, identificare un interesse verso particolari prodotti, personalizzare

le offerte per ogni cliente in maniera interattiva basandosi sulle operazioni da lui

appena effettuate e in base allo storico delle ricerche e acquisti passati, o anche

modificare una strategia di mercato puntando sui canali che risultano più efficaci nel

momento attuale.

I benefici di questo approccio Data-Driven con l’utilizzo di tecniche di Machine

Learning, infatti, sono diventati di importanza strategica e alcuni esempi importanti

dove questo approccio porta i maggiori vantaggi possono essere i seguenti [Web 1] :

 Ottimizzazione delle strategie di ricerca e acquisizione dei clienti, adottando

tattiche appropriate per migliorare il percorso verso la conversione, basandosi

sullo storico delle azioni effettuate;

 Identificazione dei clienti più profittevoli e dei loro ambiti di interesse. La

focalizzazione delle attività sulle reali esigenze dei clienti permette

l’ottimizzazione delle attività di cross-selling e up-selling, con un conseguente

aumento delle Revenue;

 Elaborazione di strategie di marketing personalizzate sui comportamenti degli

utenti in (near) real-time;

 Miglioramento della pianificazione delle campagne digitali, scegliendo i canali più

rilevanti in relazione al trend corrente del mercato;

 Identificazione delle migliori strategie di Retention e affinamento dei processi di

CRM per aumentare la redditività della customer base.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 13

Una ricerca di Teradata, tra i leader mondiali in piattaforme di analisi dati, consulenza

e marketing, già nel 2014 ha dimostrato l’importanza dell’uso corretto dei dati nel

formulare le strategie e nei processi decisionali, portando ai risultati riassunti nella

Figura 2 come confronto tra il 2013 e il 2014:

Figura 2 - Risultati sondaggio Data-Driven Marketing Teradata 2014. Fonte: Teradata

Operations, Inc.

Si può dunque affermare che se il vantaggio competitivo di una qualsiasi impresa sia

dato dal mix di corrette strategie e adeguati piani marketing di azione, è anche vero

che queste strategie e azioni devono essere basate sui dati per essere efficaci, e quindi

investire su di essi equivale a investire al proprio successo.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 14

2. Supervised Learning

2.1 Regressione lineare

La regressione lineare rappresenta uno dei più diffusi strumenti statistici e analitici

usati per descrivere i dati, spiegare e prevedere relazioni tra variabili continue.

Più formalmente, in statistica la regressione lineare rappresenta un metodo di stima del

valore atteso condizionato di una variabile dipendente, Y, dati i valori di altre variabili indipendenti, .

La formulazione statistica della regressione lineare univariata, cioè considerando solo

una variabile indipendente X, viene rappresentata con la famosa formula:

dove i parametri α e β sono generalmente stimati sulla base di un campione di

osservazioni sulla popolazione di riferimento, ed e rappresenta il termine errore o il

termine residuo tra l’osservazione stimata e la realtà.

Generalizzando il modello tenendo in considerazione n variabili indipendenti in

ingresso , nel Machine Learning definiamo la nostra ipotesi di predizione della variabile dipendente Y come h(θ) dove θrappresenta un vettore di parametri , che saranno associati alle variabili indipendenti X in ingresso, più un termine noto corrispondente all’intersezione con l’asse delle ordinate con X nulle:

( )

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 15

Per calcolare il valore dei parametri θ che meglio adattino i nostri dati in input

presenti nel training set, il dataset iniziale contenente le osservazioni conosciute del

fenomeno di riferimento, con le relative “risposte corrette”, detto anche output

osservato, dobbiamo introdurre il concetto di funzione di costo:

( )

( (

( ))

( ))

dove m è il numero di osservazioni del training set, e con la notazione ( ( ) ( )) si intende l’osservazione iesima di input-output presente nel training set.

La funzione di costo non è altro che la misura media degli errori quadratici tra il nostro

modello h(θ) ed i reali output conosciuti Y .

Il nostro obiettivo è dunque quello di minimizzare ( ), e così facendo ci riconduciamo esattamente al caso statistico noto del metodo dei minimi quadrati.

Nel minimizzare la funzione J per ricavare i valori dei parametri risulta molto comodo e affidabile l’implementazione del gradiente discendente, anche detto LMS “least

mean square” un algoritmo adattivo ed iterativo tra i più diffusi grazie alla sua

semplicità e robustezza, specialmente adatto nel caso di grandi moli di dati o grande

numero di variabili ingresso. Il principio di base è la minimizzazione dell'errore

quadratico medio tramite successive iterazioni. L’algoritmo parte da valori iniziali

casuali e ripetutamente compie il seguente aggiornamento:

( )

Aggiornamento effettuato simultaneamente per tutti i valori j = 0,…,n.

Il termine α qui rappresenta il “learning rate” cioè un parametro per impostare la velocità di convergenza dell’algoritmo, valori bassi corrispondono ad un avanzamento

lento, valori troppo alti rischiano invece di provocare divergenza.

Dopo una serie di calcoli per lo svolgimento della derivata parziale si può giungere

alla cosiddetta formula Widrow-Hoff learning rule [Web 2], secondo cui gli

aggiornamenti avvengono nel seguente modo facilmente implementabile:

( (

( ))

( ))

( (

( ))

( )) ( )

L’algoritmo appena mostrato è chiamato più propriamente “Batch Gradient Descent”

poiché utilizza l’intero Training Set per calcolare ad ogni iterazione l’aggiornamento a

cui sottoporre ogni parametro. Come abbiamo constatato successivamente, non sempre

questa è la soluzione migliore, soprattutto nel caso in cui il training set sia di grandi

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 16

dimensioni, andando a gravare notevolmente sulle prestazioni della nostra

implementazione. E’ per questo che sono state introdotte varianti chiamate “stochastic

gradient descent” e “mini-batch gradient descent” che ci permettono di velocizzare le

operazioni e raggiungere euristicamente un punto accettabile molto più velocemente.

Il gradiente discendente non è l’unico metodo per minimizzare J, ma è sicuramente il più utile quando si parla di big data e generalmente grande numero di variabili.

Occorre comunque citare anche la tecnica cosiddetta “Normal Equation” che

rappresenta la risoluzione ottima del problema dei minimi quadrati attraverso la

risoluzione matematica classica delle derivate parziali, il cui risultato finale è :

( )

nella quale la matrice ( ) è chiamata “Moore-Penrose pseudoinverse” [Web 3].

Questa equazione calcola i valori di θ ottimi che minimizzano i residui al quadrato, ma risulta notevolmente onerosa in termini computazionali, dell’ordine di O( ) con n numero di variabili, ed è perciò sconsigliata nei problemi con più di 1.000-10.000

variabili in ingresso, nonostante le moderne potenze di calcolo.

Ciò ci consente finalmente di avere tutto il necessario per implementare in pratica un

algoritmo di regressione lineare con gradiente discendente, eseguirne il training ed

effettuare le successive predizioni con nuovi dati in ingresso arbitrari.

L’algoritmo di regressione lineare con gradiente discendente è stato sperimentato su

MATLAB utilizzando un dataset open source scaricato da [MLStanford 2016].

Per poter implementare e dimostrare l’efficacia della regressione lineare ad una

variabile è stato preso in considerazione un dataset contenente le coppie di valori con

popolazione di una città e profitto associato ad un ristorante in quella città della stessa

catena. Lo scopo dell’implementazione è “prevedere” il profitto di un nuovo ristorante

data la popolazione di una nuova città inserita, dando la possibilità ad un ipotetico

manager della catena alberghiera di prendere decisioni economiche tenendo conto di

questo fattore.

Logicamente si tratta di un esempio banale ed esemplificativo, nella realtà qualsiasi

manager di buon senso prenderebbe decisioni economiche di questo tipo tenendo in

considerazione molte più variabili e modelli più complessi.

In Figura 3 di seguito è mostrato il training set.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 17

Figura 3 - Training Set per Regressione lineare univariata con Popolazione X e Profitto Y.

Segue l’implementazione dell’algoritmo di regressione lineare con gradiente

discendente sviluppato in ambiente e linguaggio MATLAB.

%% FILE MAIN: LinearRegression.m %% Inizializzazione: clear ; close all; clc %% ======================= Grafici ======================= fprintf('Display dei dati iniziali ...\n') data = load('data1.txt'); X = data(:, 1); y = data(:, 2); m = length(y); % numero delle osservazioni del training set % Grafico dati: plotData(X, y); fprintf('Programma in pausa. Premere invio per continuare.\n'); pause; %% =================== Gradient descent =================== fprintf('Esecuzione Gradient Descent ...\n') X = [ones(m, 1), data(:,1)]; theta = zeros(2, 1); % inizializzazione paramentri theta % Gradient descent settings: iterations = 1500; alpha = 0.01; % Calcola e visualizza costo iniziale computeCost(X, y, theta) % esecuzione gradient descent theta = gradientDescent(X, y, theta, alpha, iterations); % visualizza theta fprintf('Theta calcolati dal gradient descent: '); fprintf('%f %f \n', theta(1), theta(2)); % Disegna la linea di regressione: hold on; % mantieni grafico precedente sotto plot(X(:,2), X*theta, '-') legend('Training data', 'Linear regression') hold off % Non sovrapporre nessun altro grafico su questa figura % Predizione valori profitto per popolazioni con 35k e 70k: predict1 = [1, 5] *theta;

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 18

fprintf('Con popolazione di 50 mila abitanti prevediamo un profitto di

%f\n',... predict1*10000); predict2 = [1, 9] * theta; fprintf('Con popolazione di 90 mila abitanti prevediamo un profitto di

%f\n',... predict2*10000); fprintf('Programma in pausa. Premere invio per continuare.\n'); pause; %% ============= Visualizzazione J(theta_0, theta_1) ============= fprintf('Visualizzazione J(theta_0, theta_1) ...\n') % Griglia di valori equidistanziati dove andremo a calcolare J theta0_v = linspace(-10, 10, 100); theta1_v = linspace(-1, 4, 100); % inizializzazione J_vals to ad una matrice di zeri J_v = zeros(length(theta0_v), length(theta1_v)); % Compilazione J_vals for i = 1:length(theta0_v) for j = 1:length(theta1_v) t = [theta0_v(i); theta1_v(j)]; J_v(i,j) = computeCost(X, y, t); end end % Eseguiamo la trasposta di J per poter eseguire il comando surf e stampare % il grafico senza assi invertiti J_v = J_v'; % Grafico superfice parametrica di J in 3D figure; surf(theta0_v, theta1_v, J_v) xlabel('\theta_0'); ylabel('\theta_1'); % Grafico curve di livello figure; % Visualizzare J_v con 15 linee di contorno spaziate logaritmicamente tra

0.01 e 100 contour(theta0_v, theta1_v, J_v, logspace(-2, 3, 20)) xlabel('\theta_0'); ylabel('\theta_1'); hold on; plot(theta(1), theta(2), 'rx', 'MarkerSize', 10, 'LineWidth', 2);

% FILE gradientDescent.m function [theta, J_history] = gradientDescent(X, y, theta, alpha,

num_iters) % Inizializzazione di alcuni valori utili: m = length(y); % numero di training examples J_history = zeros(num_iters, 1); for iter = 1:num_iters theta = theta - (alpha/m)*(X')*(X*theta - y); J_history(iter) = computeCost(X, y, theta); end end

% FILE computeCost.m function J = computeCost(X, y, theta) % Inizializzazione di alcuni valori utili: m = length(y); % numero di trainig examples J = (sum((X*theta - y).^2))/(2*m); end

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 19

I risultati dell’esecuzione del programma sono i seguenti mostrati in Figura 4, 5 e 6:

Figura 4 - Grafico regressione lineare calcolata sul training set.

Figura 5 - Linee di contorno della funzione di costo J con identificazione punto di minimo.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 20

Figura 6 - Rappresentazione grafica della funzione di costo J in funzione dei parametri e .

Una volta calcolati i parametri θ trainando il nostro modello abbiamo ottenuto una linea di regressione visibile in Figura 4 che ci permette di generalizzare una previsione

per altri valori di popolazione.

Ad esempio abbiamo ipotizzato di prevedere i profitti di due nuovi ristoranti, in una

città rispettivamente con 50 mila e 90 mila abitanti e i risultati sono i seguenti:

Theta calcolati dal gradient descent: -3.630291 1.166362.

Con popolazione di 50 mila abitanti prevediamo un profitto di $ 22015,20.

Con popolazione di 90 mila abitanti prevediamo un profitto di $ 68669,69.

Il campo di applicazione della regressione lineare può essere esteso a molti tipi di

problemi, dove i dati possono avere un andamento non lineare oppure il modello

presentare più di un regressore, o variabile indipendente in ingresso.

Nella realtà infatti si assiste molto più frequentemente a problemi che hanno molte

variabili e strutture dati riconducibili a forme non lineari, ma è facilmente dimostrabile

che tramite alcune modifiche ed accorgimenti al modello base appena presentato, è

possibile implementare con relativa facilità queste varianti.

Nel caso di una regressione multivariata ciò che cambia sono il numero di variabili in

ingresso X e conseguentemente il numero dei parametri θ a loro associati, risulta quindi complicata una rappresentazione grafica del funzionamento nonostante le

formule e la base concettuale rimangano le stesse già esposte sopra.

L’unico appunto doveroso è che con la presenza di più variabili in ingresso che

possono essere di natura estremamente eterogenea (ad esempio una può essere la

misura in metri quadri di una casa, la seconda il numero di stanze da letto) si rende

necessario il processo di standardizzazione prima di procedere con il calcolo dei

parametri θ ottimali: ogni variabile va diminuita della propria media e divisa per la

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 21

propria deviazione standard, dopo di che può avere luogo il gradient descend e tutte le

procedure già esposte.

Nel caso in cui ci si presentino problemi più complessi e non lineari è possibile

comunque modellare i dati ricorrendo alle forme di regressione polinomiale, in cui la

formula di regressione viene integrata con forme non lineari delle variabili d’ingresso,

cioè con esponente diverso da uno, come potrebbe essere ad esempio la superficie in

metri quadrati di una casa come prima variabile, più la stessa superficie al quadrato

come seconda variabile, in questo modo avremmo creato due variabili e ottenute entrambe dalla variabile superficie:

( )

con:

( ) ( )

Aggiungendo così più variabili, con modalità diverse, si possono ottenere funzioni

polinomiali di qualunque grado, e riuscire quindi ad adattare meglio i dati del

problema creando un modello che generalizzi bene anche su nuovi dati reali.

Occorre però sottolineare un problema che potrebbe sorgere qualora le variabili siano

correlate tra loro: la Multicollinearità. La presenza di correlazione tra le variabili

indipendenti rende impossibile o inefficace la stima dei parametri, questo perché se

due variabili sono linearmente dipendenti non esiste l’inversa ( ) e le equazioni teoriche risultano non più determinabili. Sebbene nella realtà è molto improbabile che

questa eventualità si verifichi, è possibile si verifichi comunque un alto livello di

dipendenza lineare tra le colonne di X, e ciò porterebbe a stime dei parametri θ

inefficienti e instabili.

Infine esiste un altro pericolo aggiungendo molte variabili: il famoso overfitting,

ovvero creare un modello che si adatti molto bene con i dati del training set, ma che

non si adatti per nulla con il fenomeno reale che si cerca di studiare o prevedere, e di

questo parleremo molto approfonditamente nei prossimi capitoli in quanto il trade-off

overfitting-underfitting rimane un processo centrale nella scelta e

nell’implementazione di qualsiasi modello di Machine Learning.

Nel prossimo paragrafo andremo invece ad introdurre e a testare un’altra categoria di

algoritmi: quelli di classificazione, dove cioè la variabile che vogliamo predire non è

lineare come nella regressione ma discreta e può assumere solo 2 o più valori

predefiniti.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 22

2.2 Regressione logistica

Quando parliamo di problemi di classificazione, nei quali la variabile dipendente che

vogliamo predire è discreta, l’algoritmo della regressione logistica è sicuramente uno

dei più conosciuti e largamente utilizzati.

In molti casi reali infatti ci si presentano dati non metrici che possono essere binari,

ordinali o categoriali, come ad esempio un classificatore spam (1 = spam; 0 = non

spam), un classificatore medico (1 = tumore maligno; 0 = tumore benigno), un

classificatore per il riconoscimento dei caratteri scritti a mano (21 lettere più 10

numeri), e per trattarli con algoritmi di Machine Learning non si utilizza la regressione

lineare che risulterebbe inefficace, bensì altri tipi di funzioni con una soglia prefissata

a priori che discerne tra casi diversi con ad esempio y = 1 e y = 0.

Nel caso della regressione logistica, dunque, riformuliamo le nostre ipotesi ( ) per avere valori di output compresi tra 0 e 1, con l’utilizzo della funzione sigmoid g definita nel seguente modo rispetto ad una generica variabile indipendente z:

( )

che assume solo valori compresi tra 0 e 1 come mostrato di seguito in Figura 7:

Figura 7 - Sigmoid function.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 23

dove il valore di soglia di default è 0,5 in corrispondenza di z = 0.

Riformulando dunque le nostre ipotesi tenendo conto della modifica otteniamo:

( ) ( )

dove è la rappresentazione vettoriale delle ipotesi della regressione lineare, e dunque per esteso

.

Mantenendo invariato il nostro valore di soglia a 0,5, possiamo assumere che se

( ) : y = 1, viceversa se ( ) : y = 0.

Sapendo che ( ) ( ) e che ( ) quando allora ( ) quando .

Quindi per riassumere il ragionamento, nella regressione logistica effettueremo le

seguenti predizioni:

prevediamo y = 1 se ;

prevediamo y = 0 se .

X ovviamente può essere una singola variabile indipendente ma anche rappresentare un vettore di variabili indipendenti di ingresso, caso sicuramente più comune.

Andando a visualizzare graficamente un problema di classificazione, qualora

raffigurabile in 2 o 3 dimensioni, noteremo esempi positivi (y=1) ed esempi negativi

(y=0) sparsi nello spazio o nel piano, che vanno a creare raggruppamenti, o gruppi ben

distinti quando siamo fortunati.

La nostra regressione logistica non farà altro che andare a separare questi gruppi con

una linea (o iperpiano se ad n dimensioni) che riduce al minimo gli errori di

assegnazione, introducendo così il cosiddetto confine di decisione o “decision

boundary”: la linea di demarcazione (se ragioniamo in 2 dimensioni) che dividerà le

future predizioni in positive o negative a seconda della loro posizione rispetto alla

linea di confine, dove in questo caso le due dimensioni rappresentano le due variabili

d’ingresso ipotizzate e quindi ogni punto dello spazio indica una qualsiasi

combinazione di queste due variabili. (da sistemare)

Per calcolare questo “decision boundary” basterà semplicemente risolvere l’equazione

calcolando i valori di che meglio si adattano alla struttura dei dati minimizzando la funzione di costo: lo stesso ragionamento fatto per la regressione

lineare, solo che in questo caso la linea calcolata non serve per fare le predizioni

scalari bensì come demarcazione tra due regioni dello spazio.

Il “decision boundary” è una proprietà che deriva dalle nostre ipotesi, e non

propriamente dal training set. Saranno infatti le nostre ipotesi ad essere adattate il

meglio possibile al training set, calcolando i valori di che minimizzano una qualche funzione di costo come nel caso della regressione lineare.

Il decision boundary anche in questo caso può essere anche una funzione complessa e

polinomiale, aggiungendo termini di qualsiasi grado o prodotti tra termini stessi; può

dunque andare a rappresentare regioni dello spazio ben definite e molto irregolari.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 24

Ci occorre dunque definire la funzione di costo per la regressione logistica. Questa

funzione può essere definita in modi diversi, e la scelta ricade quasi esclusivamente su

una particolare funzione derivata dal metodo statistico della massima verosimiglianza,

dove non riportiamo la dimostrazione matematica ma in buona sostanza vengono

ricercati quei parametri che massimizzano la verosimiglianza tra i dati osservati e le

ipotesi.

Il motivo di questa scelta deriva dal fatto che questa funzione presenta proprietà

desiderabili come la convessità che favoriranno l’algoritmo nel trovare il minimo

globale senza il rischio di fermarsi in minimi locali:

( )

( ) ( (

( ))

) ( ) ( ( ( )))

Sostanzialmente si tratta della somma di due funzioni di costo: ( ( ( ))) e

( ( ( ))) , a seconda che si tratti di un caso positivo ( ) o negativo (

( )).

L’obiettivo è quello di minimizzare come sempre questa funzione per ottenere i valori

di θ che meglio si adattino al nostro training set, e per fare questo si può procedere sempre con il gradiente discendente per ogni parametro come già visto, oppure

utilizzare altri algoritmi matematici di ottimo, come ad esempio quello di Newton–

Raphson che richiede però anche il calcolo della matrice Hessiana delle derivate

seconde [Hastie 2008].

Utilizzeremo la tecnica del gradiente discendente per gli stessi motivi di semplicità,

velocità ed affidabilità.

Dunque andremo ad effettuare le varie iterazioni sui parametri θ fino a convergenza:

( )

Svolgendo queste derivate parziali otteniamo gli stessi algoritmi di aggiornamento

della regressione lineare, chiamati Widrow-Hoff learning rule:

( (

( ))

( )) ( )

questo perché ciò che effettivamente è cambiato nella regressione logistica rispetto a

quella lineare è solamente la nostra ipotesi ( ( )), passata da a

.

Abbiamo ora tutto il necessario per mettere in pratica un algoritmo di classificazione

utilizzando la regressione logistica.

Per questo proposito è stato utilizzato un dataset scaricato sempre da [ML Stanford

2016], contenente i dati degli esiti di due esami (exam 1 e exam 2) da parte di un vasto

numero di studenti, ed il rispettivo risultato di ammissione (y=1) o non ammissione

(y=0) ad un certo bando.

Machine Learning nell’era dei Big Data. 2016 Matteo Stefanini. 25

Lo scopo di questa implementazione è predire l’ammissione al bando di un nuovo

studente dati i suoi risultati ottenuti nei due esami presi in considerazione.

Il dataset, o training set, è mostrato di seguito in Figura 8:

Figura 8 - Training set per regressione logistica con i punteggi di due esami, uno in ascissa ed

uno in ordinata, con ogni punto ad indicare la corrispettiva ammissione o non ammissione.

Segue l’implementazione svolta dell’algoritmo di regressione logistica:

%% FILE MAIN: LogisticRegression.m %% Initializzazione clear ; close all; clc %% Caricamento training set % Le prime due colonne contengono gli score degli esami e la terza

contiene % la label del risultato di ammission (1-0). data = load('data2.txt'); X = data(:, [1, 2]); y = data(:, 3); %% ==================== Grafici ==================== fprintf(['Display del dataset con + per y=1 e o per y=0']); plotData(X, y); hold on; % Labels e Legenda xlabel('Exam 1 score') ylabel('Exam 2 score') legend('Admitted', 'Not admitted') hold off; fprintf('\nProgramma in pausa. Premere invio per continuare.\n'); pause; %% ============ Calcolare costo e gradient descent ============ % Inizializzazione della matrice X [m, n] = size(X); % Aggiungiamo il termine X0 per l'intercetta sia ad X che X_test X = [ones(m, 1) X]; % Inizializzazione dei parametri Theta

non sono stati rilasciati commenti
Questa è solo un'anteprima
6 pagine mostrate su 112 totali
Scarica il documento