Corso di Basi di Dati

122
Corso di Basi di Dati Introduzione al Data Mining Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

description

Corso di Basi di Dati. Implementazione di WIS c on PHP & MySQL Home page del corso : http:// www.cs.unibo.it /~ difelice / dbsi /. Implementazione di WIS & PHP. Per l’implementazione di WIS , sono necessari i seguenti software: DMBS  nel nostro caso , MySQL - PowerPoint PPT Presentation

Transcript of Corso di Basi di Dati

Page 1: Corso  di  Basi  di  Dati

Corso di Basi di Dati

Introduzione al Data MiningHome page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

Page 2: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Data Mining: tecniche di apprendimento computerizzato per analizzare ed estrarre conoscenze da collezioni di dati.

Pattern e relazioni non note a priori e non immediatamente identificabili.

Disciplina complessa: utilizzo di tecniche di machine learning, intelligenza artificiale e statistiche …

Page 3: Corso  di  Basi  di  Dati

Previsioni di dati temporali (es. vendite)

Market Basket Analysis (vi siete mai chiesti come mai tanti tornei di golf sono sponsorizzati da societa’ di brokeraggio? )

Scoperta di truffe (es. clonazioni di carte di credito)

Campagne pubblicitarie mirate Churn Analysis (analisi della clientela che

potrebbe passare alla concorrenza) Segmentazione della clientela …

ESEMPI di APPLICAZIONI (aziendali)

Introduzione al Data Mining

Page 4: Corso  di  Basi  di  Dati

BUSINESS INTELLIGENCE (BI) (def.) Insieme di processi aziendali, metodologie tool per raccogliere i dati di un’azienda, ed estrarre informazioni di supporto alla decisioni strategiche.

Introduzione al Data Mining

DATA MINING componente essenziale del processo di BI, si occupa di estrarre informazioni utili dai dati per aiutare il processo decisionale …

Page 5: Corso  di  Basi  di  Dati

BUSINESS INTELLIGENCE (BI) (def.) Insieme di processi aziendali, metodologie tool per raccogliere i dati di un’azienda, ed estrarre informazioni di supporto alla decisioni strategiche.

Introduzione al Data Mining

DATA MINING componente essenziale del processo di BI, si occupa di estrarre informazioni utili dai dati per aiutare il processo decisionale …Sorgente: http://www.conbusinessintelligence.com/

Page 6: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Data mining estrae informazioni da un DB.

Data query (SELECT) estrae dati da un DB relazionale (in particolare, dalle tabelle della FROM).Q. Che differenza esiste tra i due

approcci?A. Il processo di data mining estrae regolarità e pattern sui dati che non sono note a priori, e che non possono essere ricavate da query SQL.

Page 7: Corso  di  Basi  di  Dati

Q. Da dove derivano i dati da analizzare?

Introduzione al Data Mining

Dati posseduti da un’azienda/organizzazione e custodoti in un DB operazionale.

Dati estratti dal Web (es. OPEN DATA)

Dati estratti dai social media

DBMS

Page 8: Corso  di  Basi  di  Dati

Q. Da dove derivano i dati da analizzare?

Introduzione al Data Mining

Dati posseduti da un’azienda/organizzazione e custodoti in un DB operazionale.

Dati estratti dal Web (es. OPEN DATA)

Dati estratti dai social media

DBMS

+

+

Page 9: Corso  di  Basi  di  Dati

9

Big Data: grandi moli di dati, provenienti da sorgenti eterogenee, difficili da gestire ed analizzare utilizzando strumenti tradizionali.

Font

e: h

ttp://

www.

data

mee

r.com

/pro

duct

/big

-dat

a.ht

ml

Le 3 “V” dei Big-Data:

Volume Varietà Velocità Valore

Introduzione al Data Mining

Page 10: Corso  di  Basi  di  Dati

10

Introduzione al Data Mining

Un esempio di sorgente di Big-Data: Dispositivi mobili

Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010

1. SENSE

2. SHARE

3. ANALYZE

4. PROVIDESERVICES

Page 11: Corso  di  Basi  di  Dati

11

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

<timestamp, dato sensore 1, dato sensore 2,

dato sensore3, … CLASSE MOBILITA’>

TRAINING PHASE

<1/1/2014:08:50:23, 0.323, 0.123, 9.8, 1214, 134.121, 125.56, 5421, …,

WALKING>

DATABASE relazionale contentente le osservazioni raccolte

TRAINING SET

Page 12: Corso  di  Basi  di  Dati

12

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

ESTRAZIONE DELLA CONOSCENZA

Modello di classificazioneMINING

If (val1 < Y) and (val2 > Z) then WALKINGIf (val2 > Y) and (val3 > W) then BIKINGelse DRIVING CAR

Page 13: Corso  di  Basi  di  Dati

13

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

PREDIZIONE E TESTING

<timestamp, dato sensore 1, dato sensore 2,

dato sensore3, … >

MODELLO

Output classificazione: WALKING

Page 14: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International

Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Page 15: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International

Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Page 16: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International

Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Page 17: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (1)

L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International

Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Page 18: Corso  di  Basi  di  Dati

Q. Da dove derivano i dati da analizzare?

Introduzione al Data Mining

Dati posseduti da un’azienda/organizzazione e custodoti in un DB operazionale.

Dati estratti dal Web (es. OPEN DATA)

Dati estratti dai social media

DBMS

+

+

Page 19: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (2) Analisi pagine FB delle

Destination Management Organizations (DMO) su scala regionale

Analisi utilizzo dei social media per fini di marketing del turismo

Individuazione best-practice per pubblicazione dei contenuti

Page 20: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (2)

Impatto del profilo FB misurato attraverso l’engagement:

Quale fattore incide positivamente sull’engagement? Quale fattore incide negativamente sull’engagement?

STRATEGIE PER PUBBLICAZIONE DEI CONTENUTI

Page 21: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di applicazione di tecniche di data-mining (2)

REGRESSIONE LINEARE

Variabile dipendente: Engagement Variabile esplicativa:

Es. Geografia, Stagione,Tipo Post, Frequenza Post, etc

COEFFICIENTI

Page 22: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Q. Dove memorizzare i dati necessari per l’analisi?

DBMS

DW ANALISI

REPORT

Un data warehouse è una collezione di dati (non volatile) finalizzata al supporto del processo decisionale.

Page 23: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un data warehouse è un database relazionale finalizzato all’analisi ed al processo decisionale.

Q. Che differenza c’è tra un data warehouse ed i database operazionali visti fin qui nel corso?

R. A basso livello, nessuna (modello relazionale chiavi, tabelle, vincoli integrità, SQL, etc)

R. Le differenze principali sono nella progettazione!

Page 24: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Differenze principali tra database operazionali (visti fin qui) e data warehouse.

OPERAZIONI sui DATIDatabase operazionali Accessi multipli ai dati, aggiornamenti costanti nel tempo, possibile alta concorrenza delle operazioni lettura/scrittura.

Data warehouse Accesso in sola lettura, dati storici e non soggetti a cambiamento.

Page 25: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Differenze principali tra database operazionali (visti fin qui) e data warehouse.

RAPPRESENTAZIONI dei DATIDatabase operazionali I dati delle tabelle sono normalizzati (Prima/Seconda/Terza Forma Normale) per ridurre la ridondanza dei dati.Data warehouse I dati sono rappresentati in forma denormalizzata per evitare operazioni (costose) di join tra le tabelle troppo frequenti.

Page 26: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Differenze principali tra database operazionali (visti fin qui) e data warehouse.

GRANULARITA’ dei DATIDatabase operazionali Ogni riga contiene informazioni relative ad operazioni di inserimento(insert SQL), eseguite sul database. Data warehouse I dati rappresentano informazioni aggregate, utili per la reportistica, spesso ottenute processando altri dati (del db).

Page 27: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Esistono opportune metodologie (che non vedremo) per progettare un data warehouse relazionale.

MODELLO OLAPMODELLO A STELLA

Noi ci concentriamo ora sul processo di analisi dei dati …

Page 28: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un’azienda di telefonia vuole analizzare il data-set dei propri clienti abbonati, in modo da: Costruire una profilazione della clientela, in

modo da individuare un possibile nuovo cliente, a partire dai suoi dati (es. età, sesso, lavoro, etc).

Determinare quali utenti abbonati possono essere interessati ad una nuova offerta (es. abbonamento Internet con tecnologia LTE).Q. Da dove partire per effettuare l’analisi?

ESEMPIO di PROCESSO di DATA-MINING

Page 29: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 30: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 31: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In questa fase, è necessario comprendere bene gli obiettivi che il sistema dovrebbe raggiungere (es. modello predizione costi?) ed i requisiti del committente.

Inventario delle risorse disponibili. Requisiti, presupposti e vincoli. Analisi dei rischi/imprevisti. Analisi dei costi/benefici.

BUSINESS UNDERSTANDING

Page 32: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Nel caso di studio (azienda di telefonia), la fase di business understanding include la formulazione delle risposte ai seguenti quesiti: Che margine di profitto mi aspetto di ottenere

dal modello di previsione dei nuovi clienti? Che margine di risparmio mi aspetto di

ottenere effettuando pubblicita’ mirata delle nuove offerte?

Quali sono i costi necessari per implementare il modello di data-mining nel processo decisionale?

ESEMPIO di PROCESSO di DATA-MINING

Page 33: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 34: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In questa fase, è necessario comprendere bene quali dati sono fondamentali per la costruzione del modello di data mining.

Report dei dati disponibili. Costruzione del dataset. Strategie di recupero dati mancanti. Criteri di verifica della qualità dei dati.

DATA UNDERSTANDING

Page 35: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Nel caso di studio (azienda di telefonia), la fase di data understanding include la formulazione delle risposte ai seguenti quesiti: Ho a disposizione tutti i dati necessari per

poter classificare gli utenti del mio servizio? Devo prevedere campagne di raccolte dati (es.

attraverso survey o interviste telefoniche?) Posso estendere il mio data-set includendo dati

provenienti da altre fonti (es. social media)? …

ESEMPIO di PROCESSO di DATA-MINING

Page 36: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 37: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Molti algoritmi di data-mining richiedono di trasformare i dati in un opportuno formato per poter essere eseguiti efficacemente.

Es. Gli algoritmi di classificazione lavorano spesso su un numero discreto di classi da riconoscere, sebbene i dati in questione abbiano un dominio “continuo”.

DATA PREPARATION

Page 38: Corso  di  Basi  di  Dati

Introduzione al Data Mining

DATA PREPARATION

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI 26 SI 10500 SI2232 NO 40 SI 20000 SI4323 NO 60 NO 5000 NO

STORICO EROGAZIONI

Se Reddito <= 10000 0Se Reddito> 10000 & Reddito < 15000 1Se Reddito >= 15000 2

Reddito120

REGOLE di CLASSIFICAZIONE

Costruire un modello di data-miningper decidere l’erogazione di una carta di credito

sulla base della segmentazione degli utenti.

Page 39: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Molti algoritmi di data-mining lavorano su dati normalizzati su un intervallo (es. [0,1]).

DATA PREPARATION

Normalizzazione Massimo/Minimo:

00.110.55

1

15204060

ValMin ValMax

0 1

Page 40: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Molti algoritmi di data-mining lavorano su dati normalizzati in base alla media dei valori.

DATA PREPARATION

Normalizzazione con Deviazione Standard:

00.110.55

1

152040600

Media

Page 41: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti data-set, possono essere presenti dati anomali (out-lier) che possono alterare l’analisi.

DATA PREPARATION

Reddito

1-Ri

schi

o

1

1

0

Dati anomali …1) Come identificarli?2) Come gestirli?

In molti casi, l’obiettivo del processo di data

mining consiste nella ricerca degli outlier (es.

analisi frodi)!

Page 42: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l’analisi.

DATA PREPARATION

Reddito

1-Ri

schi

o

1

1

0

Dati anomali …1) Come identificarli?

Es. Range valori consentiti:[Media – Y*Dev: Media+Y*Dev]

Se X fuori dal range OUTLIER!

Page 43: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l’analisi.

DATA PREPARATION

Reddito

1-Ri

schi

o

1

1

0

Dati anomali …1) Come identificarli?Es. : Metodo dei viciniX(x1,y1) e Y (x2,y2) sono vicini se:

Se #Vicini(X) < Soglia OUTLIER!

Page 44: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l’analisi.

DATA PREPARATION

Reddito

1-Ri

schi

o

1

1

0

Dati anomali …1) Come identificarli?2) Come gestirli?

Rimovere gli outlier Sostituirli con valori NULL Sostituirli con Media(Val) …

Page 45: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti data-set, possono essere presenti dati incompleti che possono condizionare l’analisi.

DATA PREPARATION

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI ??? SI 10500 SI2232 NO 40 ??? 20000 SI4323 ??? 60 NO ??? NO

STORICO EROGAZIONI

Q. Come gestire i record con informazioni incomplete?

Page 46: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti data-set, possono essere presenti dati incompleti che possono condizionare l’analisi.

DATA PREPARATION

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI ??? SI 10500 SI2232 NO 40 ??? 20000 SI4323 ??? 60 NO ??? NO

STORICO EROGAZIONI

Q. Come gestire i record con informazioni incomplete?

Diverse possibilita’: Scartare record incompleti Rimpiazzare ??? con valori NULL Rimpiazzare ??? con il valore medio dell’attributo Rimpiazzare ??? Con un valore che non alteri la deviazione Standard dei valori dell’attributo Rimpiazzare ??? Con valori “plausibili” dell’attributo sulla base di valori simili. …

Page 47: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti contesti è opportuno ridurre il numero di attributi del data-set da analizzare …

DATA PREPARATION

STORICO EROGAZIONI

Ragioni di efficienza + Attributi: > Maggior tempo di computazione Ragioni di accuratezza Alcuni attributi non sono utili per l’analisi

Codice

CF Macchina Eta Casa Reddito

Erogazione

1332 ADFDS802M

SI 26 SI 10500 SI

2232 FSFSS102M NO 40 SI 20000 SI4323 MRGTY43R NO 60 NO 5000 NO

Informazione non utile per il modello …

Page 48: Corso  di  Basi  di  Dati

Introduzione al Data Mining

In molti contesti è opportuno ridurre il numero di attributi del data-set da analizzare …

DATA PREPARATION

STORICO EROGAZIONI

Ragioni di efficienza + Attributi: > Maggior tempo di computazione Ragioni di accuratezza Alcuni attributi non sono utili per l’analisi

Codice

CF Macchina Eta Casa Reddito

Erogazione

1332 ADFDS802M

SI 26 SI 10500 SI

2232 FSFSS102M NO 40 SI 20000 SI4323 MRGTY43R NO 60 NO 5000 NO

Informazione non utile per il modello …

Page 49: Corso  di  Basi  di  Dati

Introduzione al Data Mining

L’attività di data preparation è molto delicata, le scelte effettuate possono condizionare l’analisi …

DATA PREPARATION

STORICO EROGAZIONICodice Macchin

aEta Casa Reddit

oErogazione

1332 SI 20 SI 10500 SI2232 NO 40 SI 20000 SI4323 SI 60 NO 50000

0NO

SCELTA 1: Seleziono la riga come outlier e la rimuovo …

Page 50: Corso  di  Basi  di  Dati

Introduzione al Data Mining

L’attivita’ di data preparation e’ molto delicata, le scelte effettuate possono condizionare l’analisi …

DATA PREPARATION

STORICO EROGAZIONICodice Macchin

aEta Casa Reddit

oErogazione

1332 SI 20 SI 10500 SI2232 NO 40 SI 20000 SI4323 SI 60 NO 50000

0NO

SCELTA 1: Seleziono la riga come outlier e la rimuovo …

Valore medio Reddito: 15250

Page 51: Corso  di  Basi  di  Dati

Introduzione al Data Mining

L’attività di data preparation e’ molto delicata, le scelte effettuate possono condizionare l’analisi …

DATA PREPARATION

STORICO EROGAZIONICodice Macchin

aEta Casa Reddit

oErogazione

1332 SI 20 SI 10500 SI2232 NO 40 SI 20000 SI4323 SI 60 NO 50000

0NO

SCELTA 2: Non rimuovo la riga, nessun outlier …

Valore medio Reddito: 176833

Page 52: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 53: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Algoritmi diversi, per risolvere problemi diversi:Classificazione

Determinare se gli attributi di una certa istanza appartengono o meno ad una classe.

PredizionePredire il valore di una serie temporale (valori

continui).Associazione

Determinare regole del tipo: Se X allora Y.Segmentazione

Scoprire pattern sui dati, raggruppare istanze simili in gruppi (cluster) di istanze.

Page 54: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Algoritmi diversi, per risolvere problemi diversi:Classificazione

Determinare se gli attributi di una certa istanza appartengono o meno ad una classe.

SegmentazioneScoprire pattern sui dati, raggruppare istanze

simili in gruppi (cluster) di istanze.Predizione

Predire il valore di una serie temporale (valori continui).

AssociazioneDeterminare regole del tipo: Se X allora Y

Page 55: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Data un’istanza (record) di dati su N attributi:

A(x1,x2,x3,x4,x5, … xN)Dato un insieme di M possibili classi:

C={c1,c2, … cM}

INPUT

OUTPUT

Determinare la classe cj cui appartiene l’istanza A.COME?

Mediante apprendimento supervisionato …

Page 56: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un Training-Set e’ definito come un insieme di record: T={(Aj,cjk)} Aj e’ un record su N attributi: (xj1,xj2, … xjN) cjk e’ la classe cui appartiene il record Aj

TRAINING-SET

Q. Da dove ottengo il Training-Set?A. Spesso disponibile come storico di dati disponibili nel DB o nel DW, o costruito da fonti esterne.

Page 57: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un Training-Set e’ definito come un insieme di record: T={(Aj,cjk)} Aj e’ un record su N attributi: (xj1,xj2, … xjN) cjk e’ la classe cui appartiene il record Aj

TRAINING-SET

DATA-SET

ALGORITMOCLASSIFICAZIONE+

MODELLO

Istanza Ai

CjFase di TRAINING

Fase di TESTING{<Aj,cij>}

Page 58: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Esempio. Determinare se un certo cliente può essere interessato o meno ad acquistare un auto berlina, ai fini di migliorare la campagna pubblicitaria. TRAINING SET

NrUtente

StatoConiugale

Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 Celibe M 1 30000 SI2 Nubile F 1 45000 NO3 Sposato M 4 35000 SI

Data-set derivato dai risultati diprecedenti campagne pubblicitarie

TESTING SET <4, Sposato, M, 3, 38000> ACQUISTO??

Page 59: Corso  di  Basi  di  Dati

Introduzione al Data Mining

A. Quale algoritmo usare?Q. Non esiste un classificatore ottimo in assoluto, dipende dallo scenario applicativo …

Naïve Bayes Reti Bayesiane Alberi di decisione Random Forest Support Vector Machines (SVM) …

ALGORITMI di CLASSIFICAZIONE

Page 60: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Il classificatore NB utilizza una tecnica statistica con la quale si cerca di stimare la probabilità di un istanza di appartenere ad una certa classe.

CLASSIFICATORE NAÏVE BAYES (NB)

Istanza A(x1, …xN) da classificare. P(cj|A) probabilità condizionata di avere unaclasse cj, vedendo un’istanza A.In NB, scelgo la classe ck, tale che:

Come calcolare P(cj|A)??

Page 61: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Probabilità condizionata:

Probabilità congiunta (in caso di eventi indipendenti):

Teorema di Bayes:

Applicando il Teorema di Bayes al nostro problema:

Page 62: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Semplificando il problema …

Il record A è composto di N Attributi: A(x1,x2, …xN)

Assumendo che gli N attributi siano tutti indipendenti …

Page 63: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Conclusione L’algoritmo di NB sceglie la classe cj che massimizza la quantità:

PROBLEMA: Come stimare P(cj) e P(xi|cj)?Possibile Soluzione: Si approssima le probabilità come frequenze relative, rispetto ai valori del training set.

Page 64: Corso  di  Basi  di  Dati

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO2 NO F 1 1 NO3 SI M 4 1 SI4 SI F 3 0 NO5 NO M 1 1 NO6 SI F 3 1 SI

Reddito <30000 0, Reddito >=30000 1

A=< Sposato, M, 3, 38000>

P(SI)=2/6=0.33C={SI, NO}

P(NO)=4/6=0.67

Page 65: Corso  di  Basi  di  Dati

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO2 NO F 1 1 NO3 SI M 4 1 SI4 SI F 3 0 NO5 NO M 1 1 NO6 SI F 3 1 SI

Reddito <30000 0, Reddito >=30000 1A=<Sposato, M, 3, 38000>

P(Sposato|NO)=1/4=0.25P(Sposato|SI)=2/2=1P(M|SI)=1/2=0.5 P(M|NO)=2/4=0.5 P(3|SI)=1/2=0.5P(3|NO)=1/2=0.5 P(1|SI)=1/2=1 P(1|NO)=2/4=0.5

Page 66: Corso  di  Basi  di  Dati

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO2 NO F 1 1 NO3 SI M 4 1 SI4 SI F 3 0 NO5 NO M 1 1 NO6 SI F 3 1 SI

Reddito <30000 0, Reddito >=30000 1A=<Sposato, M, 3, 38000>

C(SI|<Sposato,M,3,38000>) 0.33*1*0.5*0.5*1=0.08125

C(NO|<Sposato,M,3,38000>) 0.67*0.25*0.5*0.5*0.5=0.0408

Page 67: Corso  di  Basi  di  Dati

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO2 NO F 1 1 NO3 SI M 4 1 SI4 SI F 3 0 NO5 NO M 1 1 NO6 SI F 3 1 SI

Reddito <30000 0, Reddito >=30000 1A=<Sposato, M, 3, 38000>

C(SI|<Sposato,M,3,38000>) 0.33*1*0.5*0.5*1=0.08125

C(NO|<Sposato,M,3,38000>) 0.67*0.25*0.5*0.5*0.5=0.0408

Classificata come SI

Page 68: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione. Nodi interni attributi

utilizzati dal classificatore (sottoinsieme degli attributi disponibili)

Arco condizione sui valori del nodo

Foglie classe (output) del modello

A1

A2

A3C1

C2 C3

C1

A1<k A1>= v

k<=A1> vA2<s

A2>=s

A3>=pA3<p

Page 69: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione. Nodi interni attributi

utilizzati dal classificatore (sottoinsieme degli attributi disponibili)

Arco condizione sui valori del nodo

Foglie classe (output) del modello

Sposato

SI

NOReddit

o

SINO

>20000<=20000

Nucleo

NO

>4

SI<=4

Page 70: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione. Sposat

o

SI

NOReddit

o

SINO

>20000<=20000

Nucleo

NO

>4

SI<=4

Classificazione di una nuova istanza:

<Sposato=SI, Sesso=M, Reddito=4000,Nucleo=5>

CLASSE: SI

Problema: Come costruire l’albero?

Page 71: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Una rete bayesiana è un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable).

A

B

C D

Ogni nodo è una variabile casuale. Un arco da X ad Y indica che X ha un’influenza su Y, ossia che le due variabili NON sono indipendenti (P(Y|X) <> P(Y)). L’assenza di archi tra due nodi indica che le due variabili sono indipendenti.

DAGGrafo Diretto Aciclico

Page 72: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Una rete bayesiana e’ un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable).

A

B

C D

Ogni nodo Xi dispone di una distribuzione di probabilita’ P(Xi | Parents(Xi)) che quantifica gli effetti dei nodi padre sui figli.

DAGGrafo Diretto Aciclico

A P(A)

false 0.6

true 0.4

Page 73: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Una rete bayesiana e’ un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable).

A

B

C D

Ogni nodo Xi dispone di una distribuzione di probabilita’ P(Xi | Parents(Xi)) che quantifica gli effetti dei nodi padre sui figli.

DAGGrafo Diretto Aciclico

A B P(B|A)

false false 0.01

false true 0.99

true false 0.7

true true 0.3

Page 74: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Tramite le reti Bayesiane, e’ possibile modellare comportamenti causa-effetto tra variabili casuali, ed effettuare diagnosi (= determinare la probabilita’ della causa dato l’effetto).

Irrigazione ON

Pioggia

Erba Bagnata

P(I=true)=0.2

P(I=false)=0.8

P(R=true)=0.4

P(R=false)=0.6

P(E|I=true, R=true)=0.05

P(E|I=true, R=false)=0.95

P(E|I=false, R=true)=0.90 P(E|I=false,

R=false)=0.10

Page 75: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Irrigazione ON

Pioggia

Erba Bagnata

P(I=true)=0.2

P(I=false)=0.8

P(R=true)=0.4

P(R=false)=0.6

P(E|I=true, R=true)=0.05

P(E|I=true, R=false)=0.95

P(E|I=false, R=true)=0.90 P(E|I=false,

R=false)=0.10

Page 76: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Irrigazione ON

Pioggia

Erba Bagnata

P(I=true)=0.2

P(I=false)=0.8

P(R=true)=0.4

P(R=false)=0.6

P(E|I=true, R=true)=0.95

P(E|I=true, R=false)=0.90

P(E|I=false, R=true)=0.90 P(E|I=false,

R=false)=0.10

Page 77: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Tramite le reti Bayesiane, e’ possibile effettuare classificazioni di istanze A(x1, …xN). In questo caso la rete è composta da: Nodo padre della rete Classi cj da

determinare Nodi foglia ed intermedi Singoli attributi

xi

Si sceglie la classe ck, tale che:

Page 78: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di classificatore basato su reti Bayesiane.

Spam Email

A1

C={Spam, No Spam}

A2

A={a1,a2} istanza da classificareA1={true,false} Contiene “Poste Mobili” nel subject della email?

A2={true,false} Contiene dei link HTML nel testo?

Page 79: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di classificatore basato su reti Bayesiane.

Spam Email

A1

C={Spam, No Spam}

A2

A={a1,a2} istanza da classificareA1={true,false} Contiene “Poste Mobili” nel subject?A2={true,false} Contiene dei link HTML nel testo?

P(C=Spam)=0.4P(A1=true| C=Spam)=0.8…

P(A2=true|A1=true, C=Spam)=0.95….

Page 80: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false):

Confronto i due valori, e scelgo la classe che garantisce la probabilità più alta associata all’istanza A.

Q. Come calcolare la probabilita’ congiunta?

Page 81: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false):

In una rete bayesiana con variabili casuali X1, X2, … XN, vale il seguente risultato:

Page 82: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false):

Page 83: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Algoritmi diversi, per risolvere problemi diversi:Classificazione

Determinare se gli attributi di una certa istanza appartengono o meno ad una classe.

SegmentazioneScoprire pattern sui dati, raggruppare istanze

simili in gruppi (cluster) di istanze.Predizione

Predire il valore di una serie temporale (valori continui).

AssociazioneDeterminare regole del tipo: Se X allora Y

Page 84: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Insieme di N elementi da partizionare Numero di Classi: NC

INPUT

OUTPUT

Determinare la composizione di ogni classe c0<=i<nc

La cluster/segmentation analysis è un insieme di tecniche per raggruppare oggetti in classi tra loro omogenee, ossia con caratteristiche simili.

Page 85: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Ricerche di mercato Segmentazione della clientela Analisi dei social media Identificazione degli outlier …

POSSIBILI APPLICAZIONI

Es. Database dei correntisti di una banca. Quali attributi simili consentono di raggrupare i

clienti? Quali differenze tra i valori degli attributi (es. tipo

del conto, età, sesso, etc) segmentano il database?

Page 86: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Algoritmo di clusterizzazione non-gerarchico.

Richiede di indicare il numero di cluster (insiemi) che si vogliono creare (NC).

Gli elementi da classificare sono attributi con valori reali. Nel caso di attributi testuali, e’ necessaria una conversione di dominio.

Es. Colore: {rosso, blu, verde} {0,1,2} Basata sul concetto di distanza tra

elementi

ALGORITMO DELLE K-MEDIE (K-MEANS CLUSTERING)

Page 87: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Distanza tra due elementi in uno spazio euclideo 2D

Distanza tra due elementi in uno spazio euclideo ND

Centroide di un gruppo (2D):c(a1,a2, … aM)

Page 88: Corso  di  Basi  di  Dati

Introduzione al Data Mining

1. Assegno casualmente gli elementi A={a1, …,aM} alle NC

classi di clusterizzazione.2. Ripeto le seguenti operazioni:

2.1 Calcolo il centroide cj di ogni classe j2.2 Calcolo la distanza tra ogni elemento ai ed

ogni centroide cj d(ai,cj)2.3 Assegno l’elemento ai al cluster j con

centroide piu’ vicino j=argmin(d(ai,cj))

3. Concludo il ciclo quando: Il passo 2.3 non produce differenze rispetto all’ assegnamento del passo precedente (convergenza). L’errore della clusterizzazione < Emin (soglia

d’errore).

Page 89: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Q. Come definire l’errore della classificazione?Dato un elemento ai(ai,x,ai,y) c(ai) centroide del cluster cui e’ assegnato l’elemento ai.A. Errore quadratico medio somma (al quadrato) delle distanze tra ai e c(ai), per tutti gli elementi ai.La classificazione termina quando l’errore diventa

minore di una soglia Emin (e<Emin).

Page 90: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** * * = ax,y

Page 91: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** *

* = ax,y

STEP 1Creazione

casuale dei cluster

Page 92: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** *

* = ax,y

STEP 2.1Loop:

Calcolo centroidi+

++

Page 93: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** *

* = ax,y

STEP 2.2Loop:

Calcolo distanze+

++

Page 94: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** *

* = ax,y

STEP 2.3Loop:

Riassegnamento

Page 95: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** *

* = ax,y

STEP 3Loop:

Valuto condizione

CONVERGENZA?Non ancora …

Page 96: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3

5 10 15 20 25 30 35 40

102030

Eta

Stipendio x 10000

* **

***

** *

* = ax,y

RISULTATOFINALE

Page 97: Corso  di  Basi  di  Dati

Introduzione al Data Mining

PROBLEMA: L’algoritmo delle k-medie richiede di conoscere a priori il numero di cluster (NC) da creare.

Q. Se non conosco il valore esatto di NC?A. Provo con diversi valori di NC, e poi scelgo quello che garantisce il minor errore quadratico medio.

Numero cluster (NC) Errore quadratico medio

3 2.3454 2.1555 4.556

Page 98: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Algoritmi diversi, per risolvere problemi diversi:Classificazione

Determinare se gli attributi di una certa istanza appartengono o meno ad una classe.

SegmentazioneScoprire pattern sui dati, raggruppare istanze

simili in gruppi (cluster) di istanze.Predizione

Predire il valore di una serie temporale (valori continui).

AssociazioneDeterminare regole del tipo: Se X allora Y

Page 99: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Insieme di M elementi A={a1,…aM} Ogni elemento è composto da N

attributi

INPUT

OUTPUT

Determinare regole della forma Se X allora Y

Le regole associative rappresentano uno strumentoper scoprire relazioni (possibilmente non banali) tra gli elementi di una base di dati.

Page 100: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Nr

TransazionePane

Pasta Burro Olio Marmellata

1 0 1 0 1 12 1 0 1 0 13 1 0 1 1 14 0 1 1 1 1

Pasta OlioPane, Burro MarmellataPane Olio, Burro

ESEMPIO DI REGOLE

Page 101: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Nr

TransazionePane

Pasta Burro Olio Marmellata

1 0 1 0 1 12 1 0 1 0 13 1 0 1 1 14 0 1 1 1 1ItemSet Combinazione di valori degli attributi dello schema

Supporto(ItemSet)

Page 102: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Nr

TransazionePane

Pasta Burro Olio Marmellata

1 0 1 0 1 12 1 0 1 0 13 1 0 1 1 14 0 1 1 1 1

Supporto{Pane}=2/4=0.5 Supporto{Pane,Pasta}=0/4=0 Supporto{Pane,Burro,Marmellata}=2/4=0.5

Page 103: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Nr

TransazionePane

Pasta Burro Olio Marmellata

1 0 1 0 1 12 1 0 1 0 13 1 0 1 1 14 0 1 1 1 1Data una regola associativa: XY

Supporto della regola XY

Page 104: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Nr

TransazionePane

Pasta Burro Olio Marmellata

1 0 1 0 1 12 1 0 1 0 13 1 0 1 1 14 0 1 1 1 1

s(Pasta Olio) = 2/3=0.66s(Pane Burro) = 1/3=0.33s(Pane Burro Marmellata) = 2/3=0.66

Page 105: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Possibile algoritmo:1. Per ogni possibile sottoinsieme di attributi Y: si

calcola il supporto s(Y).2. Per ogni possibile coppia di combinazioni di

attributi (X,Y) : Si calcola il supporto della regola s(XY).

3. Si scelgono le regole per cui: s(XY) > Soglia

Page 106: Corso  di  Basi  di  Dati

Introduzione al Data Mining

APPLICAZIONI

Market basket analysis identificare correlazioni(non banali) tra gli acquisti operati da un cliente.Possibile algoritmo:1. Per ogni possibile sottoinsieme di attributi Y si

calcola il supporto s(Y).2. Per ogni possibile coppia di combinazioni di

attributi (X,Y) Si calcola il supporto della regola s(XY).

3. Si scelgono le regole per cui: s(XY) > SogliaPROBLEMA: Costo computazionale dell’algoritmo?

Page 107: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI L’algoritmo utilizza un approccio

bottom-up. Si costruiscono insiemi di oggetti

(itemset) frequenti aggiungendo un elemento alla volta.

Regole di pruning: Se un itemset è frequente tutti i suoi

sottoinsiemi sono frequenti. Se un itemset non è frequente

neanche gli insiemi che lo contengono sono frequenti.

Page 108: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI ESEMPIO di FUNZIONAMENTO

Promozione giornali

Promozione orologi

Assicurazionevita

Assicurazione Carta

Sesso

SI NO NO NO MaschioSI SI SI NO FemminaNO NO NO NO MaschioSI SI SI SI MaschioSI NO SI NO FemminaNO NO NO NO FemminaSI NO SI SI MaschioNO SI NO NO MaschioSI NO NO NO MaschioSI SI SI NO Femmina

Page 109: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (1 attributo)

ItemSet # Oggetti

Promozione giornali=SI 7Promozione giornale=NO 3Promozione orologi=SI 4Promozione orologi=NO 6Promozione assicurazione vita=SI

5

Promozione assicurazione vita=NO

5

Promozione carta credito=SI 2Promozione carta credito=NO 8Sesso=Maschio 6Sesso=Femming 4

Definisco cardinalita’minima cmin=4

Scarto itemset concardinalita’ < cmin

Page 110: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (2 attributi)

ItemSet # Oggetti

Promozione giornali=SI & Promozione Orologi =NO 7Promozione giornali=SI & Promozione Assicurazione Vita = SI 4Promozione giornali=SI & Assicurazione carta credito=NO 6Promozione giornali=SI & Sesso=Maschio 5Promozione orologi=NO & Promozione Assicurazione Vita=NO 5Promozione orologi=NO & Assicurazione carta credito=NO 8Promozione orologi=NO & Sesso=Maschio 6Promozione Assicurazione Vita=NO & Assicurazione carta credito=NO

4

Promozione Assicurazione Vita=NO & Sesso=Maschio 4Promozione Assicurazione Vita=NO & Sesso=Femmina 4Assicurazione carta credito=NO & Sesso=Femmina 4

Page 111: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi)

ItemSet # Oggetti

Promozione orologi=NO & Promozione Assicurazione Vita=NO &Assicurazione carta credito=NO

4

Genero le regole associative, partendo dalla tabella con oggetti tripli e poi analizzando la tabella con oggetti doppi. Definisco un livello minimo di supporto smin. Genero solo le regole (XY) per cui: s(XY)>smin.

Page 112: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi)

ItemSet # Oggetti

Promozione orologi=NO & Promozione Assicurazione Vita=NO &Assicurazione carta credito=NO

4

SE (Promozione orologi=NO & Promozione Assicurazione Vita=NO) ALLORA Assicurazione carta credito=NO

SE (Promozione orologi=NO) ALLORA (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO)

SE (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO) ALLORA (Promozione orologi=NO)

POSSIBILI REGOLE (3 attributi):

Page 113: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi)

ItemSet # Oggetti

Promozione orologi=NO & Promozione Assicurazione Vita=NO &Assicurazione carta credito=NO

4

SE (Promozione orologi=NO & Promozione Assicurazione Vita=NO) ALLORA Assicurazione carta credito=NO

SE (Promozione orologi=NO) ALLORA (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO)

SE (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO) ALLORA (Promozione orologi=NO)

POSSIBILI REGOLE (3 attributi): s(X->Y)=4/4=1

s(X->Y)=4/6=0.6

s(X->Y)=4/5=0.8

Page 114: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi)

ItemSet # Oggetti

Promozione orologi=NO & Promozione Assicurazione Vita=NO &Assicurazione carta credito=NO

4

SE (Promozione orologi=NO & Promozione Assicurazione Vita=NO) ALLORA Assicurazione carta credito=NO

SE (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO) ALLORA (Promozione orologi=NO)

Definisco una soglia minima smin=0.75s(X->Y)=4/4=1

s(X->Y)=4/5=0.8

Page 115: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 116: Corso  di  Basi  di  Dati

Introduzione al Data Mining

La fase di valutazione del modello è necessaria perquantificarne l’accuratezza e quindi l’affidabilità. Necessari opportuni indici di stima per

quantificare la bontà del modello … In base agli indici, si può valutare se

occorre cambiare il modello oppure se si può procedere con l’ultima fase del CRISP-DM (deployment). Necessaria una fase di testing del

modello.

Page 117: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Esempio. Determinare se un certo cliente puo’ essere interessato o meno ad acquistare un auto berlina, ai fini di migliorare la campagna pubblicitaria. 1.Costruisco il classificatore (es. Naïve Bayes) a

partire dal Training Set.2. Applico il classificatore su un certo insieme di istanze di test, ed ottengo un insieme di risposte R.3. Osservo la classificazione reale dei dati (Rreal).4. Confronto R ed Rreal, e calcolo indici di stima.

Page 118: Corso  di  Basi  di  Dati

Introduzione al Data Mining

MATRICE di CONFUSIONE (CONFUSION MATRIX)Matrice di elementi a[x][y] #istanze appartenentialla classe x (da Rreal), classificate come y.

N possibili classi da riconoscere: C1, C2, … CN

C1 C2 … CN

C1

C2

…CN

Classificazioni prodotte dal modello

Clas

sific

azio

ni r

eali Casi in cui

la classificazio

nedel modellocoincide con quella reale

…CLASSIFICAZIONICORRETTE!

Page 119: Corso  di  Basi  di  Dati

Introduzione al Data Mining

ACCURATEZZA DEL MODELLO

Rapporto delle istanze classificate correttamentesul numero totale di istanze di testing considerate.

C1 C2 … CN

C1 Corrette

C2 Corrette

… Corrette

CN Corrette

Classificazioni prodotte dal modello

Clas

sific

azio

ni r

eali

Riferendosi alla confusion matrix

Page 120: Corso  di  Basi  di  Dati

Introduzione al Data Mining

Esempio. Determinare se un certo cliente può essere interessato o meno ad acquistare un auto berlina, ai fini di migliorare la campagna pubblicitaria.

SI NO

SI 50 75

NO 100 25

Classificazioni prodotte dal modello

Clas

sific

azio

ni r

eali

FALSI NEGATIVI

FALSI POSITIVI

ACCURACY=(50+25)/(50+75+100+25)=

0.375

Page 121: Corso  di  Basi  di  Dati

Introduzione al Data Mining

CRISP-DM (Cross Industry Data Process for Data Mining) metodologia standard e generale per l’implementazione di un processo di data mining.

BUSINESSUNDERSTANDING

DATAUNDERSTANDING

DATAPREPARATION

MODELINGEVALUATION

DEPLOYMENT DB DW

Page 122: Corso  di  Basi  di  Dati

Introduzione al Data Mining

La fase di deployment prevede l’effettivo utilizzo del modello di data mining all’interno di un processo strategico/decisionale.Esistono molti tool in commercio che facilitano le

operazioni del processo di data-mining: Pulizia dei dati Implementazione del modello Valutazione del modello

WEKA tool: http://www.cs.waikato.ac.nz/ml/weka/