Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

Transcript of Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Page 1: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 Home page del corso: difelice/dbsi

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 Introduzione al Data Mining Home page del corso: difelice/dbsi

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 Introduzione al Data Mining Home page del corso: difelice/dbsi

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 Introduzione al Data Mining Home page del corso: difelice/dbsi

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 Home page del corso: difelice/dbsi

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 7: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DBMS

DW ANALISI

REPORT

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

Page 9: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

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

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

R. Le differenze principali sono nella progettazione!

Page 10: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

OPERAZIONI sui DATI

Database 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 11: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

RAPPRESENTAZIONI dei DATI

Database 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 12: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

GRANULARITA’ dei DATI

Database 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 13: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 14: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 regolarita’ e pattern sui dati che non sono note a priori, e che non possono essere ricavate da query SQL.

Page 15: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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. eta’, 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 16: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 17: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 18: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

In questa fase, e’ 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 19: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 20: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 21: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

In questa fase, e’ 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 qualita’ dei dati.

DATA UNDERSTANDING

Page 22: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 23: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 24: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 25: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

DATA PREPARATION

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI 26 SI 10500 SI

2232 NO 40 SI 20000 SI

4323 NO 60 NO 5000 NO

STORICO EROGAZIONI

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

Reddito

1

2

0REGOLE di CLASSIFICAZIONE

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

sulla base della segmentazione degli utenti.

Page 26: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

Normalizzazione Massimo/Minimo:

0

0.11

0.55

1

15

20

40

60

ValMin ValMax

0 1

Page 27: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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:

0

0.11

0.55

1

15

20

40

600

Media

Page 28: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

Reddito

1-R

isch

io

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 29: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

Reddito

1-R

isch

io

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 30: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

Reddito

1-R

isch

io

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 31: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

Reddito

1-R

isch

io

1

1

0

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

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

Page 32: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 SI

2232 NO 40 ??? 20000 SI

4323 ??? 60 NO ??? NO

STORICO EROGAZIONI

Q. Come gestire i record con informazioni incomplete?

Page 33: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 SI

2232 NO 40 ??? 20000 SI

4323 ??? 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 34: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

In molti contesti e’ 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 SI

4323 MRGTY43R NO 60 NO 5000 NO

Informazione non utile per il modello …

Page 35: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

In molti contesti e’ 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 SI

4323 MRGTY43R NO 60 NO 5000 NO

Informazione non utile per il modello …

Page 36: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

STORICO EROGAZIONI

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI 20 SI 10500 SI

2232 NO 40 SI 20000 SI

4323 SI 60 NO 500000

NO

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

Page 37: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

STORICO EROGAZIONI

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI 20 SI 10500 SI

2232 NO 40 SI 20000 SI

4323 SI 60 NO 500000

NO

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

Valore medio Reddito: 15250

Page 38: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

DATA PREPARATION

STORICO EROGAZIONI

Codice Macchina

Eta Casa Reddito

Erogazione

1332 SI 20 SI 10500 SI

2232 NO 40 SI 20000 SI

4323 SI 60 NO 500000

NO

SCELTA 2: Non rimuovo la riga, nessun outlier …

Valore medio Reddito: 176833

Page 39: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 40: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 41: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 42: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 43: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 44: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 45: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 46: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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. TRAINING SET

NrUtente

StatoConiugale

Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 Celibe M 1 30000 SI

2 Nubile F 1 45000 NO

3 Sposato M 4 35000 SI

Data-set derivato dai risultati diprecedenti campagne pubblicitarie

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

Page 47: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 48: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

CLASSIFICATORE NAÏVE BAYES (NB)

Istanza A(x1, …xN) da classificare. P(cj|A) probabilita’ condizionata di avere unaclasse cj,vendendo un’istanza A.

In NB, scelgo la classe ck, tale che:

Come calcolare P(cj|A)??

Page 49: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

Probabilita’ condizionata:

Probabilita’ congiunta (in caso di eventi indipendenti):

Teorema di Bayes:

Applicando il Teorema di Bayes al nostro problema:

Page 50: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

Semplificando il problema …

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

Assumendo che gli N attributi siano tutti indipendenti …

Page 51: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

PROBLEMA: Come stimare P(cj) e P(xi|cj)?

Possibile Soluzione: Approssimo le probabilita’ come frequenze relative, rispetto ai valori del mio training set.

Page 52: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO

2 NO F 1 1 NO

3 SI M 4 1 SI

4 SI F 3 0 NO

5 NO M 1 1 NO

6 SI F 3 1 SI

Reddito <30000 0, Reddito >=30000 1

A=<4, Sposato, M, 3, 38000>

C(SI)=2/6=0.33

C={SI, NO}

C(NO)=4/6=0.67

Page 53: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO

2 NO F 1 1 NO

3 SI M 4 1 SI

4 SI F 3 0 NO

5 NO M 1 1 NO

6 SI F 3 1 SI

Reddito <30000 0, Reddito >=30000 1

A=<4, Sposato, M, 3, 38000>

C(4|SI)=1/2=0.5 C(4|NO)=1/4=0.25

Page 54: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO

2 NO F 1 1 NO

3 SI M 4 1 SI

4 SI F 3 0 NO

5 NO M 1 1 NO

6 SI F 3 1 SI

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

C(Sposato|NO)=1/4=0.25C(Sposato|SI)=2/2=1

C(M|SI)=1/2=0.5 C(M|NO)=2/4=0.5 C(3|SI)=1/2=0.5

C(3|NO)=1/2=0.5 C(1|SI)=1/2=1 C(1|NO)=2/4=0.5

Page 55: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO

2 NO F 1 1 NO

3 SI M 4 1 SI

4 SI F 3 0 NO

5 NO M 1 1 NO

6 SI F 3 1 SI

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

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

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

Page 56: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

NrUtente

Sposato Sesso #NucleoFamiliare

RedditoAnnuo

Acquisto

1 NO M 4 0 NO

2 NO F 1 1 NO

3 SI M 4 1 SI

4 SI F 3 0 NO

5 NO M 1 1 NO

6 SI F 3 1 SI

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

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

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

Classificata come SI

Page 57: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 e’ 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 58: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 59: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 60: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

B C P(C|B)

false false 0.4

false true 0.6

true false 0.9

true true 0.1

B D P(D|B)

false false 0.02

false true 0.98

true false 0.05

true true 0.95

Page 61: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 62: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 63: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 64: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

Tramite le reti Bayesiane, e’ possibile effettuare classificazioni di istanze A(x1, …xN). In questo caso la rete e’ 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 65: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 classificare

A1={true,false} Contiene Poste Spa nel subject della email?

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

Page 66: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 classificare

A1={true,false} Contiene Poste Spa nel subject della email?

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

P(C=Spam)=0.4

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

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

Page 67: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 probabilita’ piu’ alta associata all’istanza A.

Q. Come calcolare la probabilita’ congiunta?

Page 68: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 69: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

Page 70: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 71: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

Insieme di M elementi A={a1,…aM} Ogni elemento e’ 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 72: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

APPLICAZIONI

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

Nr Transazione

Pane

Pasta Burro Olio Marmellata

1 0 1 0 1 1

2 1 0 1 0 1

3 1 0 1 1 1

4 0 1 1 1 1Pasta OlioPane, Burro MarmellataPane Olio, Burro

ESEMPIO DI REGOLE

Page 73: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

APPLICAZIONI

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

Nr Transazione

Pane

Pasta Burro Olio Marmellata

1 0 1 0 1 1

2 1 0 1 0 1

3 1 0 1 1 1

4 0 1 1 1 1ItemSet Combinazione di valori degli attributi dello schema

Supporto(ItemSet)

Page 74: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

APPLICAZIONI

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

Nr Transazione

Pane

Pasta Burro Olio Marmellata

1 0 1 0 1 1

2 1 0 1 0 1

3 1 0 1 1 1

4 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 75: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

APPLICAZIONI

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

Nr Transazione

Pane

Pasta Burro Olio Marmellata

1 0 1 0 1 1

2 1 0 1 0 1

3 1 0 1 1 1

4 0 1 1 1 1Data una regola associativa: XY

Supporto della regola XY

Page 76: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

APPLICAZIONI

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

Nr Transazione

Pane

Pasta Burro Olio Marmellata

1 0 1 0 1 1

2 1 0 1 0 1

3 1 0 1 1 1

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

Page 77: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 78: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 79: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 e’ frequente tutti i

suoi sottoinsiemi sono frequenti. Se un itemset non e’ frequente

neanche gli insiemi che lo contengono sono frequenti.

Page 80: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

ALGORITMO APRIORI ESEMPIO di FUNZIONAMENTO

Promozione giornali

Promozione orologi

Promozione

assicurazione

Assicurazione Carta

Sesso

SI NO NO NO Maschio

SI SI SI NO Femmina

NO NO NO NO Maschio

SI SI SI SI Maschio

SI NO SI NO Femmina

NO NO NO NO Femmina

SI NO SI SI Maschio

NO SI NO NO Maschio

SI NO NO NO Maschio

SI SI SI NO Femmina

Page 81: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (1 attributo)

ItemSet # Oggetti

Promozione giornali=SI 7

Promozione giornale=NO 3

Promozione orologi=SI 4

Promozione orologi=NO 6

Promozione assicurazione vita=SI

5

Promozione assicurazione vita=NO

5

Promozione carta credito=SI 2

Promozione carta credito=NO 8

Sesso=Maschio 6

Sesso=Femming 4

Definisco cardinalita’minima cmin=4

Scarto itemset concardinalita’ < cmin

Page 82: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (2 attributi)

ItemSet # Oggetti

Promozione giornali=SI & Promozione Orologi =NO 7

Promozione giornali=SI & Promozione Assicurazione Vita = SI 4

Promozione giornali=SI & Assicurazione carta credito=NO 6

Promozione giornali=SI & Sesso=Maschio 5

Promozione orologi=NO & Promozione Assicurazione Vita=NO 5

Promozione orologi=NO & Assicurazione carta credito=NO 8

Promozione orologi=NO & Sesso=Maschio 6

Promozione Assicurazione Vita=NO & Assicurazione carta credito=NO

4

Promozione Assicurazione Vita=NO & Sesso=Maschio 4

Promozione Assicurazione Vita=NO & Sesso=Femmina 4

Assicurazione carta credito=NO & Sesso=Femmina 4

Page 83: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi)

ItemSet # Oggetti

Promozione giornali=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 84: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 85: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 86: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 87: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi)

Itero lo stesso processo di generazione delle regole anche

per itemset composti da 2 oggetti …

Al termine, l’insieme di regole generato dall’algoritmo potrebbe contenere delle regole banali o contenute in altre regole possibile una fase di pruning delle regole.

ItemSet # Oggetti

Promozione giornali=SI & Promozione Orologi =NO 7

…. …FASI SUCCESSIVE DELL’ALGORITMO

Page 88: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 89: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 e’ un insieme di tecniche per raggruppare oggetti in classi tra loro omogenee, ossia con caratteristiche simili.

Page 90: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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, eta’, sesso, etc) segmentano il database?

Page 91: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 92: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 93: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 94: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 95: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* * * = ax,y

Page 96: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* *

* = ax,y

STEP 1

Creazionecasuale dei cluster

Page 97: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* *

* = ax,y

STEP 2.1

Loop:Calcolo centroidi

++

+

Page 98: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* *

* = ax,y

STEP 2.2

Loop:Calcolo distanze

++

+

Page 99: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* *

* = ax,y

STEP 2.3

Loop:Riassegnamento

Page 100: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* *

* = ax,y

STEP 3

Loop:Valuto condizione

CONVERGENZA?Non ancora …

Page 101: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

10

20

30

Eta

Stipendio x 10000

**

*

**

*

*

* *

* = ax,y

RISULTATOFINALE

Page 102: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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.345

4 2.155

5 4.556

Page 103: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 104: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

Introduzione al Data Mining

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

quantificare la bonta’ del modello … In base agli indici, si puo’ valutare se

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

modello.

Page 105: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 106: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

Cla

ssifi

cazi

on

i re

ali Casi in cui

la classificazio

nedel modellocoincide con quella reale

…CLASSIFICAZIONICORRETTE!

Page 107: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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

Cla

ssifi

cazi

on

i re

ali

Riferendosi alla confusion matrix

Page 108: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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.

SI NO

SI 50 75

NO 100 25

Classificazioni prodotte dal modello

Cla

ssifi

cazi

on

i re

ali

FALSI NEGATIVI

FALSI POSITIVI

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

0.375

Page 109: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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 110: Corso di Basi di Dati Introduzione al Data Mining Home page del corso: difelice/dbsi

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/