SlideShare uma empresa Scribd logo
1 de 73
Data Mining e Open Data
Duccio Schiavon
(Statistica@Ning)

 

Bari, 16 novembre 2013
Cos’è il Data Mining
Enunciazioni autorevoli
‘We’re drawning in information and starving for
knowledge’
John Naisbitt
studioso e futurologo di fama internazionale, ha collaborato con le amministrazioni 
Kennedy e Johnson, ha insegnato presso le Università di Mosca e Harvard.
Enunciazioni autorevoli
‘Data Mining is the art and science of finding interesting
and useful patterns in data’
Gregory Piatetsky-Shapiro
massimo esperto di Data Mining, fondatore di KDD (Knowledge Discovery 
Conferences), cofondatore di ACM SIGKDD, (professional association on Knowledge 
Discovery and Data Mining), e amministratore di KDnuggets.com  

http://www.kdnuggets.com/faq/what-is-data-mining.html
Definizione
‘Data Mining rappresenta l’attività di elaborazione in forma
grafica o numerica di grandi raccolte o di flussi continui di dati con
lo scopo di estrarre informazioni utili a chi detiene i dati stessi’

Adelchi Azzalini
professore di Statistica presso il Dipartimento di Statistica dell’Università degli Studi di 
Padova e autore di Analisi dei dati e data mining. 
Sfide minerarie nella moderna
società dell’informazione

Gli ultimi anni hanno visto una proliferazione delle sorgenti di dati ad 
alta capacità di archiviazione
Alcuni esempi:
• Supermercati: market basket analysis basata sugli scontrini emessi e 
geo-localizzazione attraverso le carte fedeltà
• Compagnie telefoniche: raccolta dei dati di utilizzo, studio di offerte 
progettate sulla base dei consumi, individuazione dei clienti target
• Ricerca scientifica: nella microbiologia, l’analisi delle sequenze di 
porzioni di DNA porta alla costruzione di gigantesche tabelle, dette 
‘DNA microarray’
• Rilevazioni di natura fisica e chimica: analisi dell’evoluzione del clima 
terrestre e di altri fenomeni naturali 
Sfide minerarie nella moderna
società dell’informazione
• Il Web: enorme deposito di informazioni, contenute in tanti 
documenti di forma differente. La ricchezza e la varietà dei contenuti 
contraddistinguono questo ambito dai precedenti. Quando vi è la 
possibilità di accedere ad informazioni strutturate (o strutturabili) le 
possibilità di studio divengono innumerevoli così come le relazioni 
osservabili
Il Web: la sfida più impegnativa
Purtroppo, i maggiori vantaggi offerti dal Web rappresentano spesso 
anche i peggiori svantaggi:
- la quantità di dati è continuamente aggiornata per cui è anche 
difficilmente numerabile
- la gran parte dei dati è organizzata in forma non-strutturata
- all’interno del singolo documento, gli elementi oggetto di ricerca non 
sempre forniscono una pertinenza precisa sulla loro collocazione e sulla 
relazione con gli altri elementi in esso contenuti
Problemi minerari e particolare
approccio analitico
Maledizione della dimensionalità: il problema principale del DM è 
rappresentato da un possibile rischio: ovvero sia che una tale 
abbondanza di dati non consenta in realtà l’estrazione 
dell’informazione utile
‘Informazione utile’: espressione volutamente generica in quanto nel 
DM non è quasi mai specificato a priori quale sia l’oggetto di interesse, 
che spesso si cerca d’individuare proprio “scavando” tra i dati
‘Il DM è una disciplina recente, collocata al punto d’intersezione di varie
aree scientifiche, e specialmente la statistica, l’intelligenza artificiale
(machine learning, pattern recognition, ecc.) e la gestione dei database’
A. Azzalini 
Ritrosia degli statistici verso il DM
1) In molti casi i dati sono raccolti per motivi diversi da quello della loro 
analisi statistica. Ad esempio, in molte imprese, la raccolta avviene per 
fini puramente contabili. I dati in questi casi non rispondono a nessun 
piano di campionamento o piano sperimentale
2) Dato che l’obiettivo spesso non è dichiarato a priori, la situazione 
classica è che andando alla ricerca “di qualcosa” si finisca col trovare 
comunque “qualcosa”… anche se questo “qualcosa” in realtà non esiste.
‘If you torture the data long enough, Nature will always confess’
Ronald H. Coase, premio Nobel 1991 per l’economia
Cosa distingue il data mining dalla
statistica

La statistica viene tradizionalmente considerata un’analisi primaria
(sperimentale) dei dati raccolti per verificare ipotesi specifiche. La 
statistica viene quindi classificata come un’analisi (confermativa) 
condotta dall’alto, una verifica o valutazione d’ipotesi

Il data mining è considerato generalmente come un tipo di analisi 
secondaria (osservazionale) dei dati raccolti per altre ragioni. Il DM 
viene quindi classificato come analisi (esplorativa) condotta dal basso, 
un processo di generazione d’ipotesi e di conoscenze (knowledge 
discovery).
Il modello
‘All Models Are Wrong But Some Are Useful’
George E.P. Bpx
pioniere del controllo di qualità dei processi, nella analisi delle serie storiche, disegno
degli esperimenti e inferenza bayesiana

Il DM è un processo complesso d’identificazione nei dati di tendenze, 
strutture, modelli o trend validi, potenzialmente utili ed infine 
comprensibili che consentano all’utente di prendere decisioni cruciali.
- complesso: non si tratta del calcolo diretto di quantità predefinite come la 
media di un insieme di numeri
- validi: i modelli devono “funzionare”, ovvero sia devono fornire buoni 
risultati se applicati su dati nuovi
- potenzialmente utili: i modelli devono essere di qualche utilità per l’utente
- comprensibili: i risultati devono essere interpretabili e comprensibili
Gli obiettivi del
data mining
Principali funzioni
Classificazione predittiva
• Costruzione del modello: descrizione di un insieme pre-determinato di classi
– Ogni unità appartiene ad una classe predefinita, identificata da una precisa 
etichetta di classe
– L’insieme di unità utilizzato per la costruzione del modello è chiamato 
insieme di addestramento
– Il modello può essere rappresentato da regole di classificazione, alberi 
decisionali, formule matematiche, ecc.
• Utilizzo del modello: per la classificazione di oggetti futuri o non noti
– Accuratezza della stima del modello
• Il modello viene testato attraverso un insieme di test di cui sono note le 
etichette di output
• Il tasso di accuratezza è la percentuale di unità dell’insieme di test 
correttamente classificate dal modello
• L’insieme di test deve essere indipendente dall’insieme di addestramento 
– Se l’accuratezza è accettabile, si utilizza il modello per classificare i dati di cui 
non sono note le etichette
Costruzione del modello

Dati di
addestramento

NOME
Michele
Maria
Luca
Giovanni
Davide
Anna

POSIZIONE
Assistente Prof
Assistente Prof
Professore
Prof. Associato
Assistente Prof
Prof. Associato

ANNI DI RUOLO
3
no
7
si
2
si
7
si
6
no
3
no

Algoritmi di
Classificazione

Modello

IF posizione =
‘professore’
OR anni > 6
THEN di ruolo = ‘si’
Accuratezza della stima
Utilizzo dell’insieme di test per costruirci la seguente MATRICE DI CONFUSIONE: i 
dati sulla var. DI RUOLO sono noti, ma noi applichiamo il modello facendo 
previsioni su di essi “censurandoli”
DI RUOLO Osservati
SI

DI RUOLO
Previsti

SI

NO

Tasso di Accuratezza: 
Numero di unità 
classificate 
correttamente  su 
numero totale di unità

(a+d)/(a+b+c+d)
NO
Applicazione del modello
Modello

Dati di
test

NOME POSIZIONE
Tom
Assistente Prof.
Melissa Prof. Associato
Giorgio Professore
Alessandro
Assistente Prof.

Data Sconosciuti

ANNI DI RUOLO
2
no
7
no
5
si
7
si

(Guido, Professore, 4)

Di Ruolo?

SI
Tecniche di classificazione predittiva
•
•
•
•
•
•

Regressione lineare
Analisi discriminante
Metodi non parametrici
Alberi di classificazione
Reti neurali
Combinazioni di classificatori (bagging, boosting, voting)
Regressione predittiva
• La previsione tramite regressione consiste in
– Costruire un modello secondo una procedura molto simile a quella della
classificazione predittiva
– usare il modello per prevedere valori continui o ordinali per un dato input
• La regressione predittiva è differente dalla classificazione predittiva
– La classificazione consente di prevedere etichette di classe categoriali
– La regressione consente di modellare funzioni di base numerico-continua
• Principale metodo predittivo: Regressione
– modella la relazione tra una o più variabili indipendenti o predittori ed una variabile
dipendente o di risposta
• Analisi di regressione
– Regressione lineare e multipla
– Regressione non-lineare
– Altri metodi di regressione: modelli lineari generalizzati, regressione di Poisson,
modelli log-lineari
Misure di accuratezza della previsione
• Misura di accuratezza predittiva: misura quanto il valore previsto si scosta
dal valore noto
• Funzione di perdita: misura l’errore esistente tra il valore osservato y i e
l’errore previsto yi’ (valori residui)
– Errore assoluto: | yi – yi’|
– Errore quadratico: (yi – yi’)2
• Errore di test (errore di generalizzazione): perdita media sull’insieme di
d
d
test
| yi − yi ' |
∑
∑ ( yi − yi ' ) 2
– Err. assoluto medio:

i =1

d

d

|
∑y
i=
1
d

i

– Err. ass. relativo: ∑ y
|
i=
1

i

Err. quadratico medio:
d

d
∑ ( yi − yi ' ) 2

− yi ' |
−y |

i =1

Err. quad. relativo:

i =1
d

∑(y
i =1

i

− y)2

I più popolari indicatori di accuratezza sono la radice dell’errore
quadratico medio (RMSE) così come la radice dell’errore quadratico
relativo
Complessità vs. Bontà di adattamento
y

Dati di addestramento

x
Complessità vs. Bontà di adattamento
y

Dati di addestramento

x

Troppo semplice?
y

x
Complessità vs. Bontà di adattamento
y

Dati di addestramento

x

y

Troppo complesso?

x

Troppo semplice?
y

x
Complessità vs. Bontà di adattamento
y

Dati di addestramento

Troppo semplice?
y

x

y

x

Troppo complesso?

Ci siamo?
y

x

x
Complessità e Generalizzazione
Funzione di
perdita
Ad es., errore
quadratico
Errore di Test

Errore di
Addestramento

Complessità
Ottimale del modello

Complessità = gradi
di libertà del modello
(ad es. numero di variabili)
Altre tecniche di regressione predittiva
(o meglio: di previsione di una
variabile quantitativa)
•
•
•
•

Spline
Modelli addittivi e GAM
Alberi di regressione
Reti neurali
L’intero processo del
data mining
Definizione del problema
Definizione del
Definizione del
problema
problema

Rispondi alle seguenti domande:
Cosa stai cercando?
Quali tipi di relazioni intendi trovare?
La soluzione che stai cercando è in linea con i tuoi
reali obiettivi?
Desideri costruire un modello per scopi previsionali
oppure sei interessato ad indagare andamenti e
associazioni?
Quali attributi desideri prevedere?
Quale tipo di relazione esiste tra le colonne del tuo
dataset?
Se disponi di diverse tabelle, queste come sono
relazionate?
In che forma sono disponibili i dati?
I dati sono stagionali?

Fase comune ai comuni processi di modellazione
Preparazione dei dati
Definizione del
Definizione del
problema
problema
Preparazione dei
Preparazione dei
dati
dati

La pulitura dei dati non è solo rimozione dei dati
mal-codificati, ma anche trovare correlazioni
nascoste nei dati, identificare sorgenti di dati
che siano sufficientemente accurate, e
determinare quali colonne sono le più
appropriate per l’analisi. Per esempio, desideri
conservare la data di ordine o, in alternativa, la
data di spedizione?
Dati incompleti, dati errati ed input possono
sembrare separati tra loro ma nei fatti possono
influenzare i risultati del modello in modo
inatteso. Quindi, prima d’iniziare occorre
identificare i problemi e correggerli

Fase comune ai comuni processi di modellazione
Esplorazione dei dati
Definizione del
Definizione del
problema
problema
Preparazione dei
Preparazione dei
dati
dati
Esplorazione dei
Esplorazione dei
dati
dati

Le tecniche di esplorazione includono il calcolo
dei valori massimi e minimi, della media e delle
deviazioni standard, così come l’osservazione
della distribuzione dei dati.
Dall’osservazione dei massimi, dei minimi e
delle medie potreste ad esempio verificare che i
dati non sono rappresentativi dei processi
caratteristici della vs. attività di business. A
questo punto sarà necessario ottenere dati più
bilanciati o rivedere gli assunti alla base della
vs. analisi.
Valori elevati di deviazione standard possono
indicare la necessità di aggiungere altri dati al
fine di migliorare il modello, ecc.

Fase comune ai comuni processi di modellazione
Costruzione del modello
Definizione del
Definizione del
problema
problema
Preparazione dei
Preparazione dei
dati
dati
Esplorazione dei
Esplorazione dei
dati
dati
Costruzione del
Costruzione del
modello
modello

Prima dell’elaborazione del modello, un modello
di data mining è soltanto un contenitore in cui
sono riconoscibili le colonne da utilizzare come
input e l’attributo che si desidera prevedere.
L’elaborazione di un modello è chiamato – come
visto – addestramento. L’addestramento
consiste nel processo di applicazione ai dati di
uno specifico algoritmo matematico al fine di
estrarne tendenze.
Le tendenze trovate nel processo di
addestramento dipendono dalla selezione dei
dati di addestramento, dall’algoritmo scelto, e
dal modo in cui l’algoritmo è stato configurato.

Fase tipica del data mining
Validazione del modello
Definizione del
Definizione del
problema
problema
Preparazione dei
Preparazione dei
dati
dati
Esplorazione dei
Esplorazione dei
dati
dati
Costruzione del
Costruzione del
modello
modello

Prima di eseguire il deployment di un modello
sarà necessario testare la sua bontà. Inoltre, in
fase di costruzione generalmente si
costruiscono più modelli basati su tecniche
differenti: quindi si vorrà verificare anche quali
tra questi si adatta meglio ai dati.
Per fare ciò si ricorrerà ad un insieme di dati di
test (o “di verifica”) per osservare quale tra i
modelli (“competitivi”) prodotti funzioni meglio

Validazione del
Validazione del
modello
modello

Fase tipica del data mining
Deployment del modello
Definizione del
Definizione del
problema
problema
Preparazione dei
Preparazione dei
dati
dati
Esplorazione dei
Esplorazione dei
dati
dati
Costruzione del
Costruzione del
modello
modello
Validazione del
Validazione del
modello
modello

Una volta ottenuto il modello, sono diverse le
cose che si possono fare a seconda delle
necessità:
1)Usare il modello per creare previsioni
2)Interrogare i dati per estrarne statistiche o
formule
3)Integrare le funzionalità del modello
direttamente in una qualsiasi applicazione (file
PMML; Predictive Model Markup Language)
4)Aggiornare il modello dinamicamente mano a
mano che arrivano dati nuovi, e applicare
modifiche costanti per migliorare l’efficacia della
soluzione.

Deployment del
Deployment del
modello
modello

Fase tipica del data mining
Il data mining e il Web
Il caso Netflix Prize
Netflix è una società degli Stati
Uniti, nata nel 1997, che offre un
servizio di noleggio di DVD e
videogiochi via Internet. La
spedizione dei dischi è effettuata
tramite il servizio postale, che
viene utilizzato dai clienti anche
per la restituzione. Dal 2008
Netflix offre anche un servizio di
streaming online ai propri clienti,
accessibile tramite un apposito
abbonamento.
Secondo Compete.com, netflix.com è stato mediamente visitato
almeno da 194 millioni di visitatori all’anno dal 2008. Cinque volte il
numero di visitatori di blockbuster.com.
Nell’Aprile 2011, Netflix ha annunciato di aver raggiunto la quota di
26 milioni e 600 mila sottoscrittori. Dall’ottobre del 2012 è presente
sul mercato europeo, in Irlanda ed in Scandinavia.
Il caso Netflix Prize

http://www.netflixprize.com/
Il caso Netflix Prize
Il Netflix Prize è una competizione aperta per il migliore
algoritmo collaborativo di previsione dei giudizi espressi (voti) dagli
utenti nei confronti dei film visti. L’algoritmo si basa sui giudizi passati e
deve fornire la base per un sistema di “raccomandazione”.
Netflix ha reso pubblico ai partecipanti un insieme di
addestramento composto da 100.480.507 giudizi forniti da 480.189
utenti su 17.770 titoli. Ogni record del dataset era composto da
4 variabili (utente, film, data di giudizio, giudizio). I campi utente e film
sono stati popolati da ID interi, mentre i giudizi erano espressi in una
scala da 1 a 5 stelle.
L’insieme di dati di qualificazione conteneva 2.817.131 record di tre
variabili (utente, film, data di giudizio), con giudizi noti solo alla giuria.
I team di partecipanti dovevano eseguire le previsioni sull’intero set di
qualificazione, ma dovevano essere informati solo del punteggio
ottenuto su meta di esso (insieme di quiz; 1.408.342 giudizi). L’altra
metà avrebbe costituito l’insieme di test (1.408.789), e la prestazione
offerta su di esso avrebbe costituito il reale giudizio da parte della
giuria. A solo i membri della giuria era noto sia il risultato sull’insieme
di quiz che sull’insieme di test.
Il caso Netflix Prize
L’accuratezza delle previsioni fornite era espresso in termini di
Radice dell’Errore Quadratico Medio (RMSE) e l’obiettivo era ovviamente
ridurre per quanto possibile il valore di tale errore.
Il concorso aveva l’obiettivo di migliorare la capacità di raccomandazione di
quello che fino ad allora era stato l’algoritmo in uso in Netflix, e che si
chiamava Cinematch. Un algoritmo elementare di previsione – se applicato
all’insieme di quiz – produce in media un RMSE pari a 1,054. Cinematch si
basava su semplici algoritmi a modelli lineari con un alto numero di vincoli sui
dati.
Dopo la costruzione del modello sui dati di addestramento,
Cinematch produceva un RMSE pari a 0,9514 sui dati di quiz, con un
miglioramento di oltre il 10% rispetto ad un qualsiasi algoritmo
elementare.
Cinematch aveva una performance simile sull’insieme di test
(RMSE=0,9525). Per vincere il premio di 1 milione di dollari messo in
palio, i team partecipanti dovevano migliorare almeno di un 10% la
performance sull’insieme di test (per arrivare a RMSE=0,8572).
Sull’insieme si quiz tale miglioramento corrisponde a RMSE=0,8563.
Il caso Netflix Prize
Il concorso fu indetto nell’ottobre del 2006, e per molto tempo il premio non fu
vinto da nessuno. Fu messo in palio un premio minore (di 50.000 dollari) a
chiunque ogni anno avesse raggiunto il risultato migliore. Tuttavia per
vincere questo premio, un algoritmo doveva migliorare di almeno l’1% la
prestazione rispetto a quella del vincitore dell’anno prima.
Per vincere i partecipanti dovevano fornire alla giuria il codice sorgente ed
una descrizione dell’algoritmo con una sua descrizione. Dopo la verifica il
vincitore avrebbe dovuto rilascare una licenza NON-ESCLUSIVA a
Netflix. Netflix avrebbe pubblicato solo la descrizione, e non il codice
sorgente. Un team poteva, se preferiva, non reclamare il premio se
desiderava mantenere segreto il codice.
A giugno 2007 si erano iscritti 20.000 team provenienti da 150 paesi.
2.000 team hanno inviato 13.000 insiemi di previsioni.
Il caso Netflix Prize

http://www.netflixprize.com//community/
Il caso Netflix Prize

http://www.timelydevelopment.com/demos/NetflixPrize.aspx
Il caso Netflix Prize

http://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf
Il caso Netflix Prize

http://www.the-ensemble.com/content/netflix-prize-movie-similarity-visualization
Il caso Netflix Prize

http://abeautifulwww.com/2007/04/03/another-visualization-of-the-netflix-prize-dataset/
Il caso Netflix Prize

http://www.nytimes.com/2008/11/23/magazine/23Netflix-t.html?_r=1&pagewanted=all
Netflix Prize leaderboard
Il 18 settembre 2009, Netflix ha annunciato il vincitore del premio: il team
chiamato "BellKor's Pragmatic Chaos” ha vinto 1 milione di dollari per
avere raggiunto un RMSE Test pari a 0,8567. Il team “The Ensemble” ha
ottenuto il medesimo risultato ma avendo loro presentato i dati 20 minuti
più tardi, a loro è spettata solo la seconda posizione.

http://www.netflixprize.com//leaderboard
Altri casi di “algoritmi collaborativi”

Heritage Health Prize
http://www.heritagehealthprize.com/c/hhp
Lista delle “competizioni algoritmiche”

TUNEDIT
http://tunedit.org/challenges
Come Facebook utilizza il data mining
Le prime considerazioni in merito rilasciate da un analista-sviluppatore di
Fb risalgono al 2009, quando al Predictive Analytics World nello
spazio riservato al Bay Area R Users Group, Itamar Rosenn ha
illustrato quali tecniche di analisi predittiva erano in uso all’interno di Fb
nel 2007

Nel 2007 i due principali obiettivi analitici di Fb erano:
(i) stabilire quali fossero le principali ragioni all’origine dell’abbandono di Fb
da parte degli utenti (Disattivazione account)
(ii) prevedere quali fossero i motivi per cui un utente appena iscritto
rimaneva in Fb per almeno 3 mesi
http://www.lecturemaker.com/2009/02/r-kickoff-video/
Come Facebook utilizza il data mining
Per il primo obiettivo Fb ha utilizzato tecniche di partizionamento ricorsivo
(pacchetto rpart di R) al fine di stabilire se due precise variabili potevano
essere significativamente predittive della possibilità che un utente
rimanesse su Fb:
(i) l’avere compiuto più di una procedura d’iscrizione a Fb
(ii) l’avere inserito le informazioni di base del profilo
Per il secondo obiettivo, è stato adattato ai
dati un particolare modello logistico
secondo l’approccio della least angle
regression (pacchetto lars di R),
trovando che l’attività dei tre mesi
successivi all’iscrizione era “spiegata”
da tre variabili associate alle seguenti
classi di comportamento: (i) numero di
volte che un utente è stato raggiunto da
altri utenti, (ii) frequenza nell’utilizzo di
applicazioni esterne, e (iii) il grado di
apertura dell’utente nei confronti del sito
(“recettività”).
Come Facebook utilizza il data mining
Nel maggio 2011, in occasione di un convegno presso il Laboratorio
d’Intelligenza Artificiale del Jožef Stefan Institute, Lars Backstrom
(Responsabile dei sistemi di analisi dei dati e di machine learning
presso Fb) fornisce alcune utili indicazioni sui metodi di analisi
attualmente adottati
La natura dei dati in Fb
Dati strutturati
- Gli oggetti generalmente possono essere collegabili tra loro
- La funzione di amicizia consente di collegare due persone
- La funzione di tag associa una foto ad una persona
- Il collegamento ad una pagina consente di associare una pagina ad
una persona
- Tutti questi oggetti possono essere facilmente riassunti visivamente e
analiticamente
Dati destrutturati
- Principalmente contenuti testuali e visivi (immagini, foto)
- Difficoltà di analisi
http://videolectures.net/eswc2011_backstrom_facebook/
(Dealing with structured and unstructured data at Facebook)
Come Facebook utilizza il data mining
Obiettivi analitici di Fb nell’immediato
- Disporre di una maggiore quantità di dati strutturati di migliore
qualità per scopi di data mining

Obiettivi analitici futuri di Fb
- Trovare modi più efficaci di analizzare i dati destrutturati con
l’obiettivo di migliorare i “punteggi” ed approntare nuovi servizi
Fb: come analizzare i dati destrutturati
Utilizzo di tecniche automatizzate per l’estrazione d’interessanti diagrammi
Esempio di monitoraggio degli
eventi principali:
Frequenza della parola
“Influenza” pubblicata in
bacheca

Esempio di monitoraggio degli
eventi principali con
associazione:
Frequenza di parole pubblicate
per nazione di provenienza
(registrate nelle 2 ore
successiva al terremoto in
Giappone)
Fb: dati strutturati + dati destrutturati
Vodka Map

Età

Percentuale di maschi
Fb: un problema di classificazione
Molti utenti si trovano a disporre di troppi contenuti provenienti dagli amici.
Un problema mostrarli tutti
FB deve quindi riuscire a filtrare e classificare tali contenuti in modo da
generare i Newsfeed. La sfida quindi si riduce a prevedere quanto
possano essere interessanti i contenuti sulla base del tipo di relazione
che l’utente ha verso un amico, un luogo, un dettaglio, un’attività, ecc.

Feedback
Vs.
Distanza

Il modello che Fb costruisce è quindi relativo ad un problema di
classificazione il cui obiettivo è prevedere i clic, i “Mi piace”, i
commenti, ecc.
Fb: come suggerire gli amici
La maggior parte delle amicizie si crea secondo la logica dell’ “amico
dell’amico” (FOF: “friends of friends”)
- I dati sui maggiori social network dimostrano come le amicizie create
secondo FOF (a 2 salti) siano 5 volte maggiori rispetto alle amicizie
a più di 3 salti (gradi di conoscenza)
Da un punto di vista pratico prevedere i suggerimenti di
amicizia a più di 2 salti è praticamente impossibile:
Ogni utente ha in media 130 amici quindi:
- 130x130=16.900 FOF
- 130x130x130=2.197.000 FOFOF
- ecc.
Fb: come suggerire gli amici
Problema: Dato un utente “sorgente” trovare i FOF migliori da
suggerire
Sfida: un utente tipico in genere presenta decine di migliaia di amici di
amici (FOF): come abbiamo visto, mediamente 17.000 circa.
Soluzione: certamente osservare le
amicizie in comune degli amici è
un buon punto di partenza
Altre caratteristiche del social
network potrebbero essere
d’aiuto (ad es., se il tuo migliore
amico ha da poco stretto
amicizia con una persona è
probabile che questa persona
divenga anche tua amica)
Fb: come suggerire gli amici
Il modello: Il sistema esamina tutti i FOF e genera una lista di 100
candidati
Il modello prevede la
costruzione di una
previsione in tempo reale
basata:
1) sulla costruzione di
punteggi prodotti da un
algoritmo ad alberi
decisionali
2) sulla pubblicazione della
lista che servirà a riclassificare i FOF in tempo
reale e sulla base delle
visite alle singole pagine
eseguite dall’utente
sorgente
CTR: Click-through Rate
Fb: come suggerire gli amici
Predittori:
- Le amicizie comuni pesate
- Caratteristiche demografiche
(età, nazionalità, tempo trascorso in Fb, sesso, numero di amici,
ecc.)
I più importanti:
- Tempo di amicizia stretta dagli amici più vicini
- Nazionalità e tempo trascorso in Fb dell’utente sorgente
- Numero di amici
Modello introdotto a marzo 2011
Risultati:
- Numero ridotto di guasti (singhiozzi)
- Aumento medio delle nuove amicizie del 60%
- Il sistema di analisi del CTR ha ridotto di 1/3 i ricaricamenti della
pagina prima della creazione dell’amicizia
Google Prediction Api
Google ha creato un set di API (Application programming interface)
che permettono di accedere ed utilizzare i suoi algoritmi di
machine learning. E' nato così Google Prediction API.
Attraverso queste API si ha accesso a capacità di analisi predittiva,
attraverso le quale è quindi possibile creare applicazioni intelligenti
come, ad esempio:
-

Identificare lo SPAM
Classificare autonomamente messaggi di posta
Proporre film sulla base dei gusti dell'utente
Giudicare quali post su un blog hanno carattere positivo o
negativo
Identificare la lingua scritta o parlata
Riconoscere in quali zone della casa si concentra
maggiormente lo sporco

Le API sono accessibili tramite interfaccia RESTful (Representational
State Transfer)
L’utente deve (1) ricostruire il problema in un formato che le API
possano gestire; (2) preparare un insieme di addestramento per far
apprendere al programma in modo appropriato il problema.
http://code.google.com/intl/it-IT/apis/predict/
Google Prediction Api
Google fornisce anche diverse librerie e script per poter accedere alle API
attraverso diversi linguaggi come .NET, Java, PHP, Ruby e Python. E'
interessante notare come esista una libreria specifica per R.
Per accedere a Google Prediction API è necessario innanzitutto
disporre di un account Google e secondariamente attivare sia Google
Prediction API che Google Storage nella console delle API.
Google Prediction Api
Esempio di utilizzo di Google Prediction Api per scopi di modellazione e
previsione attraverso R:

http://moderntoolmaking.blogspot.com/2011/08/using-google-prediction-api-from-r.html
Ford e Google Prediction API: per
un’auto ecologica di nuova generazione

http://www.youtube.com/watch?v=gamITudh6DI&feature=youtu.be
Ford e Google Prediction API: per
un’auto ecologica di nuova generazione
A maggio 2011, in occasione della Google I/O developer conference 2011, i
ricercatori della Ford hanno presentato il loro progetto di utilizzo di Google
Prediction API per il miglioramento delle prestazioni di un prototipo di
veicolo elettrico ibrido. Il sistema prevederebbe:
1) un servizio criptato di utilizzo dei dati forma un profilo dell’automobilista costruito sulla
base dei percorsi e dei tempi di viaggio. In sostanza, il sistema apprende le principali
informazioni sia del conducente che del veicolo stesso.
2) durante la corsa del veicolo, Google utilizzerà Prediction per valutare il
comportamento di guida, raccogliere i dati sui tempi di percorrenza fino alla
destinazione ed indicare come ottimizzare le prestazioni di guida.
3) il computer di bordo, dialoga con il conducente. In base alle risposte, indicherà
all’utente come migliorare lo stile di guida, indicherà il percorso migliore e tenterà
di sfruttare quanto più possibile la carica elettrica, in modo da risparmiare benzina.
I software
R: riferimenti su tecniche di Data Mining e
web scraping e web crawling
http://azzalini.stat.unipd.it/Libro-DM/index.html

Dataset e codice
http://azzalini.stat.unipd.it/LibroDM/programmi.html

Librerie di R
RCurl – XML – scrapeR - SSOAP
Altri Software - Gratuiti
Rattle
(Interfaccia utente per il
data mining con R)
http://rattle.togaware.com/

KNIME
(offre anche un’integrazione con R)
http://www.knime.org/
Altri Software - Gratuiti
RapidMiner
(Interfaccia utente per il
data mining con R)
http://rapid-i.com/content/view/181/190/lang,en/

Orange
http://orange.biolab.si/

ADaMSoft
(italianissimo)
http://adamsoft.caspur.it/
Provate ZunZun!
Abbiamo caricato su zunzun.com i dati che
vedete sopra, gli abbiamo detto di costruire
un’equazione 2D y = f(x) e gli abbiamo dato
l’ok.
Ebbene, dopo che ZZ ha adattato una serie
di modelli calcolando per ognuno la somma
quadratica degli errori assoluti come indice
di bontà d’adattamento (nota: è possibile
scegliere tra diverse misure d’errore così
come selezionare le famiglie di modelli da
adattare!) questo è stato il risultato:
Come primo modello è stato adattato un modello “Hockey-Sherby”
secondo la seguente equazione:
y = b - (b-a) * exp(-c * (x^d))
con un indice di bontà d’adattamento pari a 40,545
Come secondo modello è stato adattato un modello “Weibull” secondo
la seguente equazione: y = a - b*exp(-cx^d)
con indice di bontà d’adattamento pari a 40,545
…per aggiornamenti futuri
Statistica@Ning
http://statistica.ning.com/
groups
Gruppi
•Data mining
•R
•OpenData
•Strumenti per
Modellazione
•Tutorials
•Grafici e visualizzazioni
Laboratorio con Rattle
Sito web:
http://rattle.togaware.com/
Per installazione:
http://www.togaware.com/datamining/survivor/Inst
allation_Details.html
Attenzione: assicurarsi di eseguire il seguente
comando in R:
install.packages(c("ada", "amap", "arules",
"bitops“, "cairoDevice", "cba", "combinat", "doBy",
"ellipse", "fEcofin", "fCalendar", "fBasics", "fpc“,
"gdata", "gtools", "gplots", "Hmisc", "kernlab",
"mice", "network", "pmml", "randomForest",
"reshape“, "rggobi", "ROCR", "RODBC", "rpart",
"RSvgDevice", “XML"))

Tutorial:
http://zoo.cs.yale.edu/classes/cs445/misc/mar13l
ae08.pdf
fine

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Data Mining e Open Data

  • 1. Data Mining e Open Data Duccio Schiavon (Statistica@Ning)   Bari, 16 novembre 2013
  • 3. Enunciazioni autorevoli ‘We’re drawning in information and starving for knowledge’ John Naisbitt studioso e futurologo di fama internazionale, ha collaborato con le amministrazioni  Kennedy e Johnson, ha insegnato presso le Università di Mosca e Harvard.
  • 4. Enunciazioni autorevoli ‘Data Mining is the art and science of finding interesting and useful patterns in data’ Gregory Piatetsky-Shapiro massimo esperto di Data Mining, fondatore di KDD (Knowledge Discovery  Conferences), cofondatore di ACM SIGKDD, (professional association on Knowledge  Discovery and Data Mining), e amministratore di KDnuggets.com   http://www.kdnuggets.com/faq/what-is-data-mining.html
  • 5. Definizione ‘Data Mining rappresenta l’attività di elaborazione in forma grafica o numerica di grandi raccolte o di flussi continui di dati con lo scopo di estrarre informazioni utili a chi detiene i dati stessi’ Adelchi Azzalini professore di Statistica presso il Dipartimento di Statistica dell’Università degli Studi di  Padova e autore di Analisi dei dati e data mining. 
  • 6. Sfide minerarie nella moderna società dell’informazione Gli ultimi anni hanno visto una proliferazione delle sorgenti di dati ad  alta capacità di archiviazione Alcuni esempi: • Supermercati: market basket analysis basata sugli scontrini emessi e  geo-localizzazione attraverso le carte fedeltà • Compagnie telefoniche: raccolta dei dati di utilizzo, studio di offerte  progettate sulla base dei consumi, individuazione dei clienti target • Ricerca scientifica: nella microbiologia, l’analisi delle sequenze di  porzioni di DNA porta alla costruzione di gigantesche tabelle, dette  ‘DNA microarray’ • Rilevazioni di natura fisica e chimica: analisi dell’evoluzione del clima  terrestre e di altri fenomeni naturali 
  • 7. Sfide minerarie nella moderna società dell’informazione • Il Web: enorme deposito di informazioni, contenute in tanti  documenti di forma differente. La ricchezza e la varietà dei contenuti  contraddistinguono questo ambito dai precedenti. Quando vi è la  possibilità di accedere ad informazioni strutturate (o strutturabili) le  possibilità di studio divengono innumerevoli così come le relazioni  osservabili
  • 8. Il Web: la sfida più impegnativa Purtroppo, i maggiori vantaggi offerti dal Web rappresentano spesso  anche i peggiori svantaggi: - la quantità di dati è continuamente aggiornata per cui è anche  difficilmente numerabile - la gran parte dei dati è organizzata in forma non-strutturata - all’interno del singolo documento, gli elementi oggetto di ricerca non  sempre forniscono una pertinenza precisa sulla loro collocazione e sulla  relazione con gli altri elementi in esso contenuti
  • 9. Problemi minerari e particolare approccio analitico Maledizione della dimensionalità: il problema principale del DM è  rappresentato da un possibile rischio: ovvero sia che una tale  abbondanza di dati non consenta in realtà l’estrazione  dell’informazione utile ‘Informazione utile’: espressione volutamente generica in quanto nel  DM non è quasi mai specificato a priori quale sia l’oggetto di interesse,  che spesso si cerca d’individuare proprio “scavando” tra i dati ‘Il DM è una disciplina recente, collocata al punto d’intersezione di varie aree scientifiche, e specialmente la statistica, l’intelligenza artificiale (machine learning, pattern recognition, ecc.) e la gestione dei database’ A. Azzalini 
  • 10. Ritrosia degli statistici verso il DM 1) In molti casi i dati sono raccolti per motivi diversi da quello della loro  analisi statistica. Ad esempio, in molte imprese, la raccolta avviene per  fini puramente contabili. I dati in questi casi non rispondono a nessun  piano di campionamento o piano sperimentale 2) Dato che l’obiettivo spesso non è dichiarato a priori, la situazione  classica è che andando alla ricerca “di qualcosa” si finisca col trovare  comunque “qualcosa”… anche se questo “qualcosa” in realtà non esiste. ‘If you torture the data long enough, Nature will always confess’ Ronald H. Coase, premio Nobel 1991 per l’economia
  • 11. Cosa distingue il data mining dalla statistica La statistica viene tradizionalmente considerata un’analisi primaria (sperimentale) dei dati raccolti per verificare ipotesi specifiche. La  statistica viene quindi classificata come un’analisi (confermativa)  condotta dall’alto, una verifica o valutazione d’ipotesi Il data mining è considerato generalmente come un tipo di analisi  secondaria (osservazionale) dei dati raccolti per altre ragioni. Il DM  viene quindi classificato come analisi (esplorativa) condotta dal basso,  un processo di generazione d’ipotesi e di conoscenze (knowledge  discovery).
  • 12. Il modello ‘All Models Are Wrong But Some Are Useful’ George E.P. Bpx pioniere del controllo di qualità dei processi, nella analisi delle serie storiche, disegno degli esperimenti e inferenza bayesiana Il DM è un processo complesso d’identificazione nei dati di tendenze,  strutture, modelli o trend validi, potenzialmente utili ed infine  comprensibili che consentano all’utente di prendere decisioni cruciali. - complesso: non si tratta del calcolo diretto di quantità predefinite come la  media di un insieme di numeri - validi: i modelli devono “funzionare”, ovvero sia devono fornire buoni  risultati se applicati su dati nuovi - potenzialmente utili: i modelli devono essere di qualche utilità per l’utente - comprensibili: i risultati devono essere interpretabili e comprensibili
  • 15. Classificazione predittiva • Costruzione del modello: descrizione di un insieme pre-determinato di classi – Ogni unità appartiene ad una classe predefinita, identificata da una precisa  etichetta di classe – L’insieme di unità utilizzato per la costruzione del modello è chiamato  insieme di addestramento – Il modello può essere rappresentato da regole di classificazione, alberi  decisionali, formule matematiche, ecc. • Utilizzo del modello: per la classificazione di oggetti futuri o non noti – Accuratezza della stima del modello • Il modello viene testato attraverso un insieme di test di cui sono note le  etichette di output • Il tasso di accuratezza è la percentuale di unità dell’insieme di test  correttamente classificate dal modello • L’insieme di test deve essere indipendente dall’insieme di addestramento  – Se l’accuratezza è accettabile, si utilizza il modello per classificare i dati di cui  non sono note le etichette
  • 16. Costruzione del modello Dati di addestramento NOME Michele Maria Luca Giovanni Davide Anna POSIZIONE Assistente Prof Assistente Prof Professore Prof. Associato Assistente Prof Prof. Associato ANNI DI RUOLO 3 no 7 si 2 si 7 si 6 no 3 no Algoritmi di Classificazione Modello IF posizione = ‘professore’ OR anni > 6 THEN di ruolo = ‘si’
  • 17. Accuratezza della stima Utilizzo dell’insieme di test per costruirci la seguente MATRICE DI CONFUSIONE: i  dati sulla var. DI RUOLO sono noti, ma noi applichiamo il modello facendo  previsioni su di essi “censurandoli” DI RUOLO Osservati SI DI RUOLO Previsti SI NO Tasso di Accuratezza:  Numero di unità  classificate  correttamente  su  numero totale di unità (a+d)/(a+b+c+d) NO
  • 18. Applicazione del modello Modello Dati di test NOME POSIZIONE Tom Assistente Prof. Melissa Prof. Associato Giorgio Professore Alessandro Assistente Prof. Data Sconosciuti ANNI DI RUOLO 2 no 7 no 5 si 7 si (Guido, Professore, 4) Di Ruolo? SI
  • 19. Tecniche di classificazione predittiva • • • • • • Regressione lineare Analisi discriminante Metodi non parametrici Alberi di classificazione Reti neurali Combinazioni di classificatori (bagging, boosting, voting)
  • 20. Regressione predittiva • La previsione tramite regressione consiste in – Costruire un modello secondo una procedura molto simile a quella della classificazione predittiva – usare il modello per prevedere valori continui o ordinali per un dato input • La regressione predittiva è differente dalla classificazione predittiva – La classificazione consente di prevedere etichette di classe categoriali – La regressione consente di modellare funzioni di base numerico-continua • Principale metodo predittivo: Regressione – modella la relazione tra una o più variabili indipendenti o predittori ed una variabile dipendente o di risposta • Analisi di regressione – Regressione lineare e multipla – Regressione non-lineare – Altri metodi di regressione: modelli lineari generalizzati, regressione di Poisson, modelli log-lineari
  • 21. Misure di accuratezza della previsione • Misura di accuratezza predittiva: misura quanto il valore previsto si scosta dal valore noto • Funzione di perdita: misura l’errore esistente tra il valore osservato y i e l’errore previsto yi’ (valori residui) – Errore assoluto: | yi – yi’| – Errore quadratico: (yi – yi’)2 • Errore di test (errore di generalizzazione): perdita media sull’insieme di d d test | yi − yi ' | ∑ ∑ ( yi − yi ' ) 2 – Err. assoluto medio: i =1 d d | ∑y i= 1 d i – Err. ass. relativo: ∑ y | i= 1 i Err. quadratico medio: d d ∑ ( yi − yi ' ) 2 − yi ' | −y | i =1 Err. quad. relativo: i =1 d ∑(y i =1 i − y)2 I più popolari indicatori di accuratezza sono la radice dell’errore quadratico medio (RMSE) così come la radice dell’errore quadratico relativo
  • 22. Complessità vs. Bontà di adattamento y Dati di addestramento x
  • 23. Complessità vs. Bontà di adattamento y Dati di addestramento x Troppo semplice? y x
  • 24. Complessità vs. Bontà di adattamento y Dati di addestramento x y Troppo complesso? x Troppo semplice? y x
  • 25. Complessità vs. Bontà di adattamento y Dati di addestramento Troppo semplice? y x y x Troppo complesso? Ci siamo? y x x
  • 26. Complessità e Generalizzazione Funzione di perdita Ad es., errore quadratico Errore di Test Errore di Addestramento Complessità Ottimale del modello Complessità = gradi di libertà del modello (ad es. numero di variabili)
  • 27. Altre tecniche di regressione predittiva (o meglio: di previsione di una variabile quantitativa) • • • • Spline Modelli addittivi e GAM Alberi di regressione Reti neurali
  • 29. Definizione del problema Definizione del Definizione del problema problema Rispondi alle seguenti domande: Cosa stai cercando? Quali tipi di relazioni intendi trovare? La soluzione che stai cercando è in linea con i tuoi reali obiettivi? Desideri costruire un modello per scopi previsionali oppure sei interessato ad indagare andamenti e associazioni? Quali attributi desideri prevedere? Quale tipo di relazione esiste tra le colonne del tuo dataset? Se disponi di diverse tabelle, queste come sono relazionate? In che forma sono disponibili i dati? I dati sono stagionali? Fase comune ai comuni processi di modellazione
  • 30. Preparazione dei dati Definizione del Definizione del problema problema Preparazione dei Preparazione dei dati dati La pulitura dei dati non è solo rimozione dei dati mal-codificati, ma anche trovare correlazioni nascoste nei dati, identificare sorgenti di dati che siano sufficientemente accurate, e determinare quali colonne sono le più appropriate per l’analisi. Per esempio, desideri conservare la data di ordine o, in alternativa, la data di spedizione? Dati incompleti, dati errati ed input possono sembrare separati tra loro ma nei fatti possono influenzare i risultati del modello in modo inatteso. Quindi, prima d’iniziare occorre identificare i problemi e correggerli Fase comune ai comuni processi di modellazione
  • 31. Esplorazione dei dati Definizione del Definizione del problema problema Preparazione dei Preparazione dei dati dati Esplorazione dei Esplorazione dei dati dati Le tecniche di esplorazione includono il calcolo dei valori massimi e minimi, della media e delle deviazioni standard, così come l’osservazione della distribuzione dei dati. Dall’osservazione dei massimi, dei minimi e delle medie potreste ad esempio verificare che i dati non sono rappresentativi dei processi caratteristici della vs. attività di business. A questo punto sarà necessario ottenere dati più bilanciati o rivedere gli assunti alla base della vs. analisi. Valori elevati di deviazione standard possono indicare la necessità di aggiungere altri dati al fine di migliorare il modello, ecc. Fase comune ai comuni processi di modellazione
  • 32. Costruzione del modello Definizione del Definizione del problema problema Preparazione dei Preparazione dei dati dati Esplorazione dei Esplorazione dei dati dati Costruzione del Costruzione del modello modello Prima dell’elaborazione del modello, un modello di data mining è soltanto un contenitore in cui sono riconoscibili le colonne da utilizzare come input e l’attributo che si desidera prevedere. L’elaborazione di un modello è chiamato – come visto – addestramento. L’addestramento consiste nel processo di applicazione ai dati di uno specifico algoritmo matematico al fine di estrarne tendenze. Le tendenze trovate nel processo di addestramento dipendono dalla selezione dei dati di addestramento, dall’algoritmo scelto, e dal modo in cui l’algoritmo è stato configurato. Fase tipica del data mining
  • 33. Validazione del modello Definizione del Definizione del problema problema Preparazione dei Preparazione dei dati dati Esplorazione dei Esplorazione dei dati dati Costruzione del Costruzione del modello modello Prima di eseguire il deployment di un modello sarà necessario testare la sua bontà. Inoltre, in fase di costruzione generalmente si costruiscono più modelli basati su tecniche differenti: quindi si vorrà verificare anche quali tra questi si adatta meglio ai dati. Per fare ciò si ricorrerà ad un insieme di dati di test (o “di verifica”) per osservare quale tra i modelli (“competitivi”) prodotti funzioni meglio Validazione del Validazione del modello modello Fase tipica del data mining
  • 34. Deployment del modello Definizione del Definizione del problema problema Preparazione dei Preparazione dei dati dati Esplorazione dei Esplorazione dei dati dati Costruzione del Costruzione del modello modello Validazione del Validazione del modello modello Una volta ottenuto il modello, sono diverse le cose che si possono fare a seconda delle necessità: 1)Usare il modello per creare previsioni 2)Interrogare i dati per estrarne statistiche o formule 3)Integrare le funzionalità del modello direttamente in una qualsiasi applicazione (file PMML; Predictive Model Markup Language) 4)Aggiornare il modello dinamicamente mano a mano che arrivano dati nuovi, e applicare modifiche costanti per migliorare l’efficacia della soluzione. Deployment del Deployment del modello modello Fase tipica del data mining
  • 35. Il data mining e il Web
  • 36. Il caso Netflix Prize Netflix è una società degli Stati Uniti, nata nel 1997, che offre un servizio di noleggio di DVD e videogiochi via Internet. La spedizione dei dischi è effettuata tramite il servizio postale, che viene utilizzato dai clienti anche per la restituzione. Dal 2008 Netflix offre anche un servizio di streaming online ai propri clienti, accessibile tramite un apposito abbonamento. Secondo Compete.com, netflix.com è stato mediamente visitato almeno da 194 millioni di visitatori all’anno dal 2008. Cinque volte il numero di visitatori di blockbuster.com. Nell’Aprile 2011, Netflix ha annunciato di aver raggiunto la quota di 26 milioni e 600 mila sottoscrittori. Dall’ottobre del 2012 è presente sul mercato europeo, in Irlanda ed in Scandinavia.
  • 37. Il caso Netflix Prize http://www.netflixprize.com/
  • 38. Il caso Netflix Prize Il Netflix Prize è una competizione aperta per il migliore algoritmo collaborativo di previsione dei giudizi espressi (voti) dagli utenti nei confronti dei film visti. L’algoritmo si basa sui giudizi passati e deve fornire la base per un sistema di “raccomandazione”. Netflix ha reso pubblico ai partecipanti un insieme di addestramento composto da 100.480.507 giudizi forniti da 480.189 utenti su 17.770 titoli. Ogni record del dataset era composto da 4 variabili (utente, film, data di giudizio, giudizio). I campi utente e film sono stati popolati da ID interi, mentre i giudizi erano espressi in una scala da 1 a 5 stelle. L’insieme di dati di qualificazione conteneva 2.817.131 record di tre variabili (utente, film, data di giudizio), con giudizi noti solo alla giuria. I team di partecipanti dovevano eseguire le previsioni sull’intero set di qualificazione, ma dovevano essere informati solo del punteggio ottenuto su meta di esso (insieme di quiz; 1.408.342 giudizi). L’altra metà avrebbe costituito l’insieme di test (1.408.789), e la prestazione offerta su di esso avrebbe costituito il reale giudizio da parte della giuria. A solo i membri della giuria era noto sia il risultato sull’insieme di quiz che sull’insieme di test.
  • 39. Il caso Netflix Prize L’accuratezza delle previsioni fornite era espresso in termini di Radice dell’Errore Quadratico Medio (RMSE) e l’obiettivo era ovviamente ridurre per quanto possibile il valore di tale errore. Il concorso aveva l’obiettivo di migliorare la capacità di raccomandazione di quello che fino ad allora era stato l’algoritmo in uso in Netflix, e che si chiamava Cinematch. Un algoritmo elementare di previsione – se applicato all’insieme di quiz – produce in media un RMSE pari a 1,054. Cinematch si basava su semplici algoritmi a modelli lineari con un alto numero di vincoli sui dati. Dopo la costruzione del modello sui dati di addestramento, Cinematch produceva un RMSE pari a 0,9514 sui dati di quiz, con un miglioramento di oltre il 10% rispetto ad un qualsiasi algoritmo elementare. Cinematch aveva una performance simile sull’insieme di test (RMSE=0,9525). Per vincere il premio di 1 milione di dollari messo in palio, i team partecipanti dovevano migliorare almeno di un 10% la performance sull’insieme di test (per arrivare a RMSE=0,8572). Sull’insieme si quiz tale miglioramento corrisponde a RMSE=0,8563.
  • 40. Il caso Netflix Prize Il concorso fu indetto nell’ottobre del 2006, e per molto tempo il premio non fu vinto da nessuno. Fu messo in palio un premio minore (di 50.000 dollari) a chiunque ogni anno avesse raggiunto il risultato migliore. Tuttavia per vincere questo premio, un algoritmo doveva migliorare di almeno l’1% la prestazione rispetto a quella del vincitore dell’anno prima. Per vincere i partecipanti dovevano fornire alla giuria il codice sorgente ed una descrizione dell’algoritmo con una sua descrizione. Dopo la verifica il vincitore avrebbe dovuto rilascare una licenza NON-ESCLUSIVA a Netflix. Netflix avrebbe pubblicato solo la descrizione, e non il codice sorgente. Un team poteva, se preferiva, non reclamare il premio se desiderava mantenere segreto il codice. A giugno 2007 si erano iscritti 20.000 team provenienti da 150 paesi. 2.000 team hanno inviato 13.000 insiemi di previsioni.
  • 41. Il caso Netflix Prize http://www.netflixprize.com//community/
  • 42. Il caso Netflix Prize http://www.timelydevelopment.com/demos/NetflixPrize.aspx
  • 43. Il caso Netflix Prize http://www.cs.uic.edu/~liub/KDD-cup-2007/NetflixPrize-description.pdf
  • 44. Il caso Netflix Prize http://www.the-ensemble.com/content/netflix-prize-movie-similarity-visualization
  • 45. Il caso Netflix Prize http://abeautifulwww.com/2007/04/03/another-visualization-of-the-netflix-prize-dataset/
  • 46. Il caso Netflix Prize http://www.nytimes.com/2008/11/23/magazine/23Netflix-t.html?_r=1&pagewanted=all
  • 47. Netflix Prize leaderboard Il 18 settembre 2009, Netflix ha annunciato il vincitore del premio: il team chiamato "BellKor's Pragmatic Chaos” ha vinto 1 milione di dollari per avere raggiunto un RMSE Test pari a 0,8567. Il team “The Ensemble” ha ottenuto il medesimo risultato ma avendo loro presentato i dati 20 minuti più tardi, a loro è spettata solo la seconda posizione. http://www.netflixprize.com//leaderboard
  • 48. Altri casi di “algoritmi collaborativi” Heritage Health Prize http://www.heritagehealthprize.com/c/hhp
  • 49. Lista delle “competizioni algoritmiche” TUNEDIT http://tunedit.org/challenges
  • 50. Come Facebook utilizza il data mining Le prime considerazioni in merito rilasciate da un analista-sviluppatore di Fb risalgono al 2009, quando al Predictive Analytics World nello spazio riservato al Bay Area R Users Group, Itamar Rosenn ha illustrato quali tecniche di analisi predittiva erano in uso all’interno di Fb nel 2007 Nel 2007 i due principali obiettivi analitici di Fb erano: (i) stabilire quali fossero le principali ragioni all’origine dell’abbandono di Fb da parte degli utenti (Disattivazione account) (ii) prevedere quali fossero i motivi per cui un utente appena iscritto rimaneva in Fb per almeno 3 mesi http://www.lecturemaker.com/2009/02/r-kickoff-video/
  • 51. Come Facebook utilizza il data mining Per il primo obiettivo Fb ha utilizzato tecniche di partizionamento ricorsivo (pacchetto rpart di R) al fine di stabilire se due precise variabili potevano essere significativamente predittive della possibilità che un utente rimanesse su Fb: (i) l’avere compiuto più di una procedura d’iscrizione a Fb (ii) l’avere inserito le informazioni di base del profilo Per il secondo obiettivo, è stato adattato ai dati un particolare modello logistico secondo l’approccio della least angle regression (pacchetto lars di R), trovando che l’attività dei tre mesi successivi all’iscrizione era “spiegata” da tre variabili associate alle seguenti classi di comportamento: (i) numero di volte che un utente è stato raggiunto da altri utenti, (ii) frequenza nell’utilizzo di applicazioni esterne, e (iii) il grado di apertura dell’utente nei confronti del sito (“recettività”).
  • 52. Come Facebook utilizza il data mining Nel maggio 2011, in occasione di un convegno presso il Laboratorio d’Intelligenza Artificiale del Jožef Stefan Institute, Lars Backstrom (Responsabile dei sistemi di analisi dei dati e di machine learning presso Fb) fornisce alcune utili indicazioni sui metodi di analisi attualmente adottati La natura dei dati in Fb Dati strutturati - Gli oggetti generalmente possono essere collegabili tra loro - La funzione di amicizia consente di collegare due persone - La funzione di tag associa una foto ad una persona - Il collegamento ad una pagina consente di associare una pagina ad una persona - Tutti questi oggetti possono essere facilmente riassunti visivamente e analiticamente Dati destrutturati - Principalmente contenuti testuali e visivi (immagini, foto) - Difficoltà di analisi http://videolectures.net/eswc2011_backstrom_facebook/ (Dealing with structured and unstructured data at Facebook)
  • 53. Come Facebook utilizza il data mining Obiettivi analitici di Fb nell’immediato - Disporre di una maggiore quantità di dati strutturati di migliore qualità per scopi di data mining Obiettivi analitici futuri di Fb - Trovare modi più efficaci di analizzare i dati destrutturati con l’obiettivo di migliorare i “punteggi” ed approntare nuovi servizi
  • 54. Fb: come analizzare i dati destrutturati Utilizzo di tecniche automatizzate per l’estrazione d’interessanti diagrammi Esempio di monitoraggio degli eventi principali: Frequenza della parola “Influenza” pubblicata in bacheca Esempio di monitoraggio degli eventi principali con associazione: Frequenza di parole pubblicate per nazione di provenienza (registrate nelle 2 ore successiva al terremoto in Giappone)
  • 55. Fb: dati strutturati + dati destrutturati Vodka Map Età Percentuale di maschi
  • 56. Fb: un problema di classificazione Molti utenti si trovano a disporre di troppi contenuti provenienti dagli amici. Un problema mostrarli tutti FB deve quindi riuscire a filtrare e classificare tali contenuti in modo da generare i Newsfeed. La sfida quindi si riduce a prevedere quanto possano essere interessanti i contenuti sulla base del tipo di relazione che l’utente ha verso un amico, un luogo, un dettaglio, un’attività, ecc. Feedback Vs. Distanza Il modello che Fb costruisce è quindi relativo ad un problema di classificazione il cui obiettivo è prevedere i clic, i “Mi piace”, i commenti, ecc.
  • 57. Fb: come suggerire gli amici La maggior parte delle amicizie si crea secondo la logica dell’ “amico dell’amico” (FOF: “friends of friends”) - I dati sui maggiori social network dimostrano come le amicizie create secondo FOF (a 2 salti) siano 5 volte maggiori rispetto alle amicizie a più di 3 salti (gradi di conoscenza) Da un punto di vista pratico prevedere i suggerimenti di amicizia a più di 2 salti è praticamente impossibile: Ogni utente ha in media 130 amici quindi: - 130x130=16.900 FOF - 130x130x130=2.197.000 FOFOF - ecc.
  • 58. Fb: come suggerire gli amici Problema: Dato un utente “sorgente” trovare i FOF migliori da suggerire Sfida: un utente tipico in genere presenta decine di migliaia di amici di amici (FOF): come abbiamo visto, mediamente 17.000 circa. Soluzione: certamente osservare le amicizie in comune degli amici è un buon punto di partenza Altre caratteristiche del social network potrebbero essere d’aiuto (ad es., se il tuo migliore amico ha da poco stretto amicizia con una persona è probabile che questa persona divenga anche tua amica)
  • 59. Fb: come suggerire gli amici Il modello: Il sistema esamina tutti i FOF e genera una lista di 100 candidati Il modello prevede la costruzione di una previsione in tempo reale basata: 1) sulla costruzione di punteggi prodotti da un algoritmo ad alberi decisionali 2) sulla pubblicazione della lista che servirà a riclassificare i FOF in tempo reale e sulla base delle visite alle singole pagine eseguite dall’utente sorgente CTR: Click-through Rate
  • 60. Fb: come suggerire gli amici Predittori: - Le amicizie comuni pesate - Caratteristiche demografiche (età, nazionalità, tempo trascorso in Fb, sesso, numero di amici, ecc.) I più importanti: - Tempo di amicizia stretta dagli amici più vicini - Nazionalità e tempo trascorso in Fb dell’utente sorgente - Numero di amici Modello introdotto a marzo 2011 Risultati: - Numero ridotto di guasti (singhiozzi) - Aumento medio delle nuove amicizie del 60% - Il sistema di analisi del CTR ha ridotto di 1/3 i ricaricamenti della pagina prima della creazione dell’amicizia
  • 61. Google Prediction Api Google ha creato un set di API (Application programming interface) che permettono di accedere ed utilizzare i suoi algoritmi di machine learning. E' nato così Google Prediction API. Attraverso queste API si ha accesso a capacità di analisi predittiva, attraverso le quale è quindi possibile creare applicazioni intelligenti come, ad esempio: - Identificare lo SPAM Classificare autonomamente messaggi di posta Proporre film sulla base dei gusti dell'utente Giudicare quali post su un blog hanno carattere positivo o negativo Identificare la lingua scritta o parlata Riconoscere in quali zone della casa si concentra maggiormente lo sporco Le API sono accessibili tramite interfaccia RESTful (Representational State Transfer) L’utente deve (1) ricostruire il problema in un formato che le API possano gestire; (2) preparare un insieme di addestramento per far apprendere al programma in modo appropriato il problema. http://code.google.com/intl/it-IT/apis/predict/
  • 62. Google Prediction Api Google fornisce anche diverse librerie e script per poter accedere alle API attraverso diversi linguaggi come .NET, Java, PHP, Ruby e Python. E' interessante notare come esista una libreria specifica per R. Per accedere a Google Prediction API è necessario innanzitutto disporre di un account Google e secondariamente attivare sia Google Prediction API che Google Storage nella console delle API.
  • 63. Google Prediction Api Esempio di utilizzo di Google Prediction Api per scopi di modellazione e previsione attraverso R: http://moderntoolmaking.blogspot.com/2011/08/using-google-prediction-api-from-r.html
  • 64. Ford e Google Prediction API: per un’auto ecologica di nuova generazione http://www.youtube.com/watch?v=gamITudh6DI&feature=youtu.be
  • 65. Ford e Google Prediction API: per un’auto ecologica di nuova generazione A maggio 2011, in occasione della Google I/O developer conference 2011, i ricercatori della Ford hanno presentato il loro progetto di utilizzo di Google Prediction API per il miglioramento delle prestazioni di un prototipo di veicolo elettrico ibrido. Il sistema prevederebbe: 1) un servizio criptato di utilizzo dei dati forma un profilo dell’automobilista costruito sulla base dei percorsi e dei tempi di viaggio. In sostanza, il sistema apprende le principali informazioni sia del conducente che del veicolo stesso. 2) durante la corsa del veicolo, Google utilizzerà Prediction per valutare il comportamento di guida, raccogliere i dati sui tempi di percorrenza fino alla destinazione ed indicare come ottimizzare le prestazioni di guida. 3) il computer di bordo, dialoga con il conducente. In base alle risposte, indicherà all’utente come migliorare lo stile di guida, indicherà il percorso migliore e tenterà di sfruttare quanto più possibile la carica elettrica, in modo da risparmiare benzina.
  • 67. R: riferimenti su tecniche di Data Mining e web scraping e web crawling http://azzalini.stat.unipd.it/Libro-DM/index.html Dataset e codice http://azzalini.stat.unipd.it/LibroDM/programmi.html Librerie di R RCurl – XML – scrapeR - SSOAP
  • 68. Altri Software - Gratuiti Rattle (Interfaccia utente per il data mining con R) http://rattle.togaware.com/ KNIME (offre anche un’integrazione con R) http://www.knime.org/
  • 69. Altri Software - Gratuiti RapidMiner (Interfaccia utente per il data mining con R) http://rapid-i.com/content/view/181/190/lang,en/ Orange http://orange.biolab.si/ ADaMSoft (italianissimo) http://adamsoft.caspur.it/
  • 70. Provate ZunZun! Abbiamo caricato su zunzun.com i dati che vedete sopra, gli abbiamo detto di costruire un’equazione 2D y = f(x) e gli abbiamo dato l’ok. Ebbene, dopo che ZZ ha adattato una serie di modelli calcolando per ognuno la somma quadratica degli errori assoluti come indice di bontà d’adattamento (nota: è possibile scegliere tra diverse misure d’errore così come selezionare le famiglie di modelli da adattare!) questo è stato il risultato: Come primo modello è stato adattato un modello “Hockey-Sherby” secondo la seguente equazione: y = b - (b-a) * exp(-c * (x^d)) con un indice di bontà d’adattamento pari a 40,545 Come secondo modello è stato adattato un modello “Weibull” secondo la seguente equazione: y = a - b*exp(-cx^d) con indice di bontà d’adattamento pari a 40,545
  • 71. …per aggiornamenti futuri Statistica@Ning http://statistica.ning.com/ groups Gruppi •Data mining •R •OpenData •Strumenti per Modellazione •Tutorials •Grafici e visualizzazioni
  • 72. Laboratorio con Rattle Sito web: http://rattle.togaware.com/ Per installazione: http://www.togaware.com/datamining/survivor/Inst allation_Details.html Attenzione: assicurarsi di eseguire il seguente comando in R: install.packages(c("ada", "amap", "arules", "bitops“, "cairoDevice", "cba", "combinat", "doBy", "ellipse", "fEcofin", "fCalendar", "fBasics", "fpc“, "gdata", "gtools", "gplots", "Hmisc", "kernlab", "mice", "network", "pmml", "randomForest", "reshape“, "rggobi", "ROCR", "RODBC", "rpart", "RSvgDevice", “XML")) Tutorial: http://zoo.cs.yale.edu/classes/cs445/misc/mar13l ae08.pdf
  • 73. fine