La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione al Data Mining

Presentazioni simili


Presentazione sul tema: "Introduzione al Data Mining"— Transcript della presentazione:

1 Introduzione al Data Mining
Corso di Basi di Dati Introduzione al Data Mining Home page del corso:

2 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 …

3 Introduzione al Data Mining
ESEMPI di APPLICAZIONI (aziendali) 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

4 Introduzione al Data Mining
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. DATA MINING  componente essenziale del processo di BI, si occupa di estrarre informazioni utili dai dati per aiutare il processo decisionale …

5 Introduzione al Data Mining
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. DATA MINING  componente essenziale del processo di BI, si occupa di estrarre informazioni utili dai dati per aiutare il processo decisionale … Sorgente:

6 Introduzione al Data Mining
Q. Da dove derivano i dati da analizzare? Dati posseduti da un’azienda/organizzazione e custodoti in un DB operazionale. DBMS Dati estratti dal Web (es. OPEN DATA) Dati estratti dai social media

7 Introduzione al Data Mining
Q. Da dove derivano i dati da analizzare? Dati posseduti da un’azienda/organizzazione e custodoti in un DB operazionale. DBMS + Dati estratti dal Web (es. OPEN DATA) + Dati estratti dai social media

8 Introduzione al Data Mining
Q. Dove memorizzare i dati necessari per l’analisi? DBMS REPORT DW ANALISI Un data warehouse e’ una collezione di dati (non volatile) finalizzata al supporto del processo decisionale.

9 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!

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

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

12 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).

13 Introduzione al Data Mining
Esistono opportune metodologie (che non vedremo) per progettare un data warehouse relazionale. MODELLO A STELLA MODELLO OLAP Noi ci concentriamo ora sul processo di analisi dei dati …

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

15 Introduzione al Data Mining
ESEMPIO di PROCESSO di 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?

16 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

17 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

18 Introduzione al Data Mining
BUSINESS UNDERSTANDING 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.

19 Introduzione al Data Mining
ESEMPIO di PROCESSO di 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?

20 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

21 Introduzione al Data Mining
DATA UNDERSTANDING 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.

22 Introduzione al Data Mining
ESEMPIO di PROCESSO di 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)?

23 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

24 Introduzione al Data Mining
DATA PREPARATION 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”.

25 Introduzione al Data Mining
Costruire un modello di data-mining per decidere l’erogazione di una carta di credito sulla base della segmentazione degli utenti. DATA PREPARATION STORICO EROGAZIONI Codice Macchina Eta Casa Reddito Erogazione 1332 SI 26 10500 2232 NO 40 20000 4323 60 5000 Se Reddito <=  0 Se Reddito> & Reddito <  1 Se Reddito >=  2 Reddito 1 2 REGOLE di CLASSIFICAZIONE

26 Introduzione al Data Mining
DATA PREPARATION Molti algoritmi di data-mining lavorano su dati normalizzati su un intervallo (es. [0,1]). Normalizzazione Massimo/Minimo: 15 20 40 60 0.11 0.55 1 ValMin ValMax 1

27 Introduzione al Data Mining
DATA PREPARATION Molti algoritmi di data-mining lavorano su dati normalizzati in base alla media dei valori. Normalizzazione con Deviazione Standard: 15 20 40 60 0.11 0.55 1 Media

28 Introduzione al Data Mining
DATA PREPARATION In molti data-set, possono essere presenti dati anomali (out-lier) che possono alterare l’analisi. Dati anomali … Come identificarli? Come gestirli? 1 1-Rischio In molti casi, l’obiettivo del processo di data mining consiste nella ricerca degli outlier (es. analisi frodi)! Reddito 1

29 Introduzione al Data Mining
DATA PREPARATION In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l’analisi. Dati anomali … Come identificarli? Es. Range valori consentiti: [Media – Y*Dev: Media+Y*Dev] Se X fuori dal range  OUTLIER! 1 1-Rischio Reddito 1

30 Introduzione al Data Mining
DATA PREPARATION In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l’analisi. Dati anomali … Come identificarli? Es. : Metodo dei vicini X(x1,y1) e Y (x2,y2) sono vicini se: 1 1-Rischio Reddito 1 Se #Vicini(X) < Soglia  OUTLIER!

31 Introduzione al Data Mining
DATA PREPARATION In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l’analisi. Dati anomali … Come identificarli? Come gestirli? 1 1-Rischio Rimovere gli outlier Sostituirli con valori NULL Sostituirli con Media(Val) Reddito 1

32 Introduzione al Data Mining
DATA PREPARATION In molti data-set, possono essere presenti dati incompleti che possono condizionare l’analisi. STORICO EROGAZIONI Codice Macchina Eta Casa Reddito Erogazione 1332 SI ??? 10500 2232 NO 40 20000 4323 60 Q. Come gestire i record con informazioni incomplete?

33 Introduzione al Data Mining
DATA PREPARATION In molti data-set, possono essere presenti dati incompleti che possono condizionare l’analisi. 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. STORICO EROGAZIONI Codice Macchina Eta Casa Reddito Erogazione 1332 SI ??? 10500 2232 NO 40 20000 4323 60 Q. Come gestire i record con informazioni incomplete?

34 Introduzione al Data Mining
DATA PREPARATION In molti contesti e’ opportuno ridurre il numero di attributi del data-set da analizzare … Ragioni di efficienza  + Attributi: > Maggior tempo di computazione Ragioni di accuratezza  Alcuni attributi non sono utili per l’analisi STORICO EROGAZIONI Informazione non utile per il modello … Codice CF Macchina Eta Casa Reddito Erogazione 1332 ADFDS802M SI 26 10500 2232 FSFSS102M NO 40 20000 4323 MRGTY43R 60 5000

35 Introduzione al Data Mining
DATA PREPARATION In molti contesti e’ opportuno ridurre il numero di attributi del data-set da analizzare … Ragioni di efficienza  + Attributi: > Maggior tempo di computazione Ragioni di accuratezza  Alcuni attributi non sono utili per l’analisi STORICO EROGAZIONI Informazione non utile per il modello … Codice CF Macchina Eta Casa Reddito Erogazione 1332 ADFDS802M SI 26 10500 2232 FSFSS102M NO 40 20000 4323 MRGTY43R 60 5000

36 Introduzione al Data Mining
DATA PREPARATION L’attivita’ di data preparation e’ molto delicata, le scelte effettuate possono condizionare l’analisi … STORICO EROGAZIONI Codice Macchina Eta Casa Reddito Erogazione 1332 SI 20 10500 2232 NO 40 20000 4323 60 500000 SCELTA 1: Seleziono la riga come outlier e la rimuovo …

37 Introduzione al Data Mining
DATA PREPARATION L’attivita’ di data preparation e’ molto delicata, le scelte effettuate possono condizionare l’analisi … STORICO EROGAZIONI Valore medio Reddito: 15250 Codice Macchina Eta Casa Reddito Erogazione 1332 SI 20 10500 2232 NO 40 20000 4323 60 500000 SCELTA 1: Seleziono la riga come outlier e la rimuovo …

38 Introduzione al Data Mining
DATA PREPARATION L’attivita’ di data preparation e’ molto delicata, le scelte effettuate possono condizionare l’analisi … STORICO EROGAZIONI Valore medio Reddito: Codice Macchina Eta Casa Reddito Erogazione 1332 SI 20 10500 2232 NO 40 20000 4323 60 500000 SCELTA 2: Non rimuovo la riga, nessun outlier …

39 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

40 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. Predizione Predire 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.

41 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. Predizione Predire 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.

42 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. Predizione Predire 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.

43 Introduzione al Data Mining
INPUT 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} OUTPUT Determinare la classe cj cui appartiene l’istanza A. COME? Mediante apprendimento supervisionato … 

44 Introduzione al Data Mining
TRAINING-SET 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 Q. Da dove ottengo il Training-Set? Spesso disponibile come storico di dati disponibili nel DB o nel DW, o costruito da fonti esterne.

45 Introduzione al Data Mining
TRAINING-SET 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 {<Aj,cij>} Fase di TESTING DATA-SET + ALGORITMO CLASSIFICAZIONE Istanza Ai MODELLO Cj Fase di TRAINING

46 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. Data-set derivato dai risultati di precedenti campagne pubblicitarie TRAINING SET Nr Utente Stato Coniugale Sesso #Nucleo Familiare Reddito Annuo Acquisto 1 Celibe M 30000 SI 2 Nubile F 45000 NO 3 Sposato 4 35000 TESTING SET <4, Sposato, M, 3, 38000> ACQUISTO??

47 Introduzione al Data Mining
ALGORITMI di CLASSIFICAZIONE Naïve Bayes Reti Bayesiane Alberi di decisione Random Forest Support Vector Machines (SVM) A. Quale algoritmo usare? Q. Non esiste un classificatore ottimo in assoluto, dipende dallo scenario applicativo …

48 Introduzione al Data Mining
CLASSIFICATORE NAÏVE BAYES (NB) 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. Istanza A(x1, …xN) da classificare. P(cj|A)  probabilita’ condizionata di avere una classe cj,vendendo un’istanza A. In NB, scelgo la classe ck, tale che: Come calcolare P(cj|A)??

49 Introduzione al Data Mining
Probabilita’ condizionata: Probabilita’ congiunta (in caso di eventi indipendenti): Teorema di Bayes: Applicando il Teorema di Bayes al nostro problema:

50 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 …

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

52 Introduzione al Data Mining
Reddito <30000  0, Reddito >=30000  1 Nr Utente Sposato Sesso #Nucleo Familiare Reddito Annuo Acquisto 1 NO M 4 2 F 3 SI 5 6 A=<4, Sposato, M, 3, 38000> C={SI, NO} C(SI)=2/6=0.33 C(NO)=4/6=0.67

53 Introduzione al Data Mining
Reddito <30000  0, Reddito >=30000  1 Nr Utente Sposato Sesso #Nucleo Familiare Reddito Annuo Acquisto 1 NO M 4 2 F 3 SI 5 6 A=<4, Sposato, M, 3, 38000> C(4|SI)=1/2=0.5 C(4|NO)=1/4=0.25

54 Introduzione al Data Mining
A=<4, Sposato, M, 3, 38000> Reddito <30000  0, Reddito >=30000  1 Nr Utente Sposato Sesso #Nucleo Familiare Reddito Annuo Acquisto 1 NO M 4 2 F 3 SI 5 6 C(Sposato|SI)=2/2=1 C(Sposato|NO)=1/4=0.25 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

55 Introduzione al Data Mining
A=<4, Sposato, M, 3, 38000> Reddito <30000  0, Reddito >=30000  1 Nr Utente Sposato Sesso #Nucleo Familiare Reddito Annuo Acquisto 1 NO M 4 2 F 3 SI 5 6 C(SI|<4,Sposato,M,3,38000>)  0.33*0.5*1*0.5*0.5*1= C(NO|<4,Sposato,M,3,38000>)  0.67*0.25*0.25*0.5*0.5*0.5=0.0108

56 Introduzione al Data Mining
A=<4, Sposato, M, 3, 38000> Reddito <30000  0, Reddito >=30000  1 Nr Utente Sposato Sesso #Nucleo Familiare Reddito Annuo Acquisto 1 NO M 4 2 F 3 SI 5 6 Classificata come SI C(SI|<4,Sposato,M,3,38000>)  0.33*0.5*1*0.5*0.5*1= C(NO|<4,Sposato,M,3,38000>)  0.67*0.25*0.25*0.5*0.5*0.5=0.0108

57 Introduzione al Data Mining
Una rete bayesiana e’ un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). DAG Grafo Diretto Aciclico 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. A B C D

58 Introduzione al Data Mining
Una rete bayesiana e’ un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). DAG Grafo Diretto Aciclico Ogni nodo Xi dispone di una distribuzione di probabilita’ P(Xi | Parents(Xi)) che quantifica gli effetti dei nodi padre sui figli. A A P(A) false 0.6 true 0.4 B C D

59 Introduzione al Data Mining
Una rete bayesiana e’ un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). DAG Grafo Diretto Aciclico Ogni nodo Xi dispone di una distribuzione di probabilita’ P(Xi | Parents(Xi)) che quantifica gli effetti dei nodi padre sui figli. A A B P(B|A) false 0.01 true 0.99 0.7 0.3 B C D

60 Introduzione al Data Mining
Una rete bayesiana e’ un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). Ogni nodo Xi dispone di una distribuzione di probabilita’ P(Xi | Parents(Xi)) che quantifica gli effetti dei nodi padre sui figli. DAG Grafo Diretto Aciclico A B C P(C|B) false 0.4 true 0.6 0.9 0.1 B D P(D|B) false 0.02 true 0.98 0.05 0.95 B C D

61 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). P(R=true)=0.4 P(R=false)=0.6 Pioggia Irrigazione ON P(I=true)=0.2 P(I=false)=0.8 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 Erba Bagnata

62 Introduzione al Data Mining
P(R=true)=0.4 P(R=false)=0.6 Pioggia Irrigazione ON P(I=true)=0.2 P(I=false)=0.8 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 Erba Bagnata

63 Introduzione al Data Mining
P(R=true)=0.4 P(R=false)=0.6 Pioggia Irrigazione ON P(I=true)=0.2 P(I=false)=0.8 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 Erba Bagnata

64 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:

65 Introduzione al Data Mining
Un esempio di classificatore basato su reti Bayesiane. C={Spam, No Spam} A={a1,a2}  istanza da classificare A1={true,false}  Contiene Poste Spa nel subject della ? A2={true,false}  Contiene dei link HTML nel testo? Spam A1 A2

66 Introduzione al Data Mining
Un esempio di classificatore basato su reti Bayesiane. C={Spam, No Spam} A={a1,a2}  istanza da classificare A1={true,false}  Contiene Poste Spa nel subject della ? A2={true,false}  Contiene dei link HTML nel testo? P(C=Spam)=0.4 Spam P(A1=true| C=Spam)=0.8 P(A2=true|A1=true, C=Spam)=0.95 …. A1 A2

67 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?

68 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:

69 Introduzione al Data Mining
Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false):

70 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. Predizione Predire 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.

71 Introduzione al Data Mining
Le regole associative rappresentano uno strumento per scoprire relazioni (possibilmente non banali) tra gli elementi di una base di dati. INPUT Insieme di M elementi A={a1,…aM} Ogni elemento e’ composto da N attributi OUTPUT Determinare regole della forma Se X  allora Y

72 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 2 3 4 Pasta  Olio Pane, Burro  Marmellata Pane  Olio, Burro ESEMPIO DI REGOLE

73 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 2 3 4 ItemSet  Combinazione di valori degli attributi dello schema Supporto(ItemSet)

74 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 2 3 4 Supporto{Pane}=2/4=0.5 Supporto{Pane,Pasta}=0/4=0 Supporto{Pane,Burro,Marmellata}=2/4=0.5

75 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 2 3 4 Data una regola associativa: XY Supporto della regola XY

76 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 2 3 4 s(Pasta  Olio) = 2/3=0.66 s(Pane  Burro) = 1/3=0.33 s(Pane  Burro Marmellata) = 2/3=0.66

77 Introduzione al Data Mining
APPLICAZIONI Market basket analysis  identificare correlazioni (non banali) tra gli acquisti operati da un cliente. Possibile algoritmo: Per ogni possibile sottoinsieme di attributi Y: si calcola il supporto s(Y). Per ogni possibile coppia di combinazioni di attributi (X,Y) : Si calcola il supporto della regola s(XY). Si scelgono le regole per cui: s(XY) > Soglia

78 Introduzione al Data Mining
APPLICAZIONI Market basket analysis  identificare correlazioni (non banali) tra gli acquisti operati da un cliente. Possibile algoritmo: Per ogni possibile sottoinsieme di attributi Y  si calcola il supporto s(Y). Per ogni possibile coppia di combinazioni di attributi (X,Y)  Si calcola il supporto della regola s(XY). Si scelgono le regole per cui: s(XY) > Soglia PROBLEMA: Costo computazionale dell’algoritmo?

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

80 Introduzione al Data Mining
ALGORITMO APRIORI ESEMPIO di FUNZIONAMENTO Promozione giornali Promozione orologi Promozione assicurazione Assicurazione Carta Sesso SI NO Maschio Femmina

81 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 Promozione carta credito=SI 2 Promozione carta credito=NO 8 Sesso=Maschio Sesso=Femming Definisco cardinalita’ minima cmin=4 Scarto itemset con cardinalita’ < cmin

82 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 Promozione orologi=NO & Assicurazione carta credito=NO 8 Promozione orologi=NO & Sesso=Maschio Promozione Assicurazione Vita=NO & Assicurazione carta credito=NO Promozione Assicurazione Vita=NO & Sesso=Maschio Promozione Assicurazione Vita=NO & Sesso=Femmina Assicurazione carta credito=NO & Sesso=Femmina

83 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 (XY) per cui: s(XY)>smin.

84 Introduzione al Data Mining
ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi) ItemSet # Oggetti Promozione orologi=NO & Promozione Assicurazione Vita=NO & Assicurazione carta credito=NO 4 POSSIBILI REGOLE (3 attributi): 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)

85 Introduzione al Data Mining
ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi) ItemSet # Oggetti Promozione orologi=NO & Promozione Assicurazione Vita=NO & Assicurazione carta credito=NO 4 POSSIBILI REGOLE (3 attributi): s(X->Y)=4/4=1 SE (Promozione orologi=NO & Promozione Assicurazione Vita=NO) ALLORA Assicurazione carta credito=NO s(X->Y)=4/6=0.6 SE (Promozione orologi=NO) ALLORA (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO) s(X->Y)=4/5=0.8 SE (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO) ALLORA (Promozione orologi=NO)

86 Introduzione al Data Mining
ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi) ItemSet # Oggetti Promozione orologi=NO & Promozione Assicurazione Vita=NO & Assicurazione carta credito=NO 4 Definisco una soglia minima smin=0.75 s(X->Y)=4/4=1 SE (Promozione orologi=NO & Promozione Assicurazione Vita=NO) ALLORA Assicurazione carta credito=NO s(X->Y)=4/5=0.8 SE (Promozione Assicurazione Vita=NO) & (Assicurazione carta credito=NO) ALLORA (Promozione orologi=NO)

87 Introduzione al Data Mining
ALGORITMO APRIORI FREQUENZA ITEMSET (3 attributi) ItemSet # Oggetti Promozione giornali=SI & Promozione Orologi =NO 7 …. FASI SUCCESSIVE DELL’ALGORITMO 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.

88 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. Predizione Predire 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.

89 Introduzione al Data Mining
La cluster/segmentation analysis e’ un insieme di tecniche per raggruppare oggetti in classi tra loro omogenee, ossia con caratteristiche simili. INPUT Insieme di N elementi da partizionare Numero di Classi: NC OUTPUT Determinare la composizione di ogni classe c0<=i<nc

90 Introduzione al Data Mining
POSSIBILI APPLICAZIONI Ricerche di mercato Segmentazione della clientela Analisi dei social media Identificazione degli outlier 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?

91 Introduzione al Data Mining
ALGORITMO DELLE K-MEDIE (K-MEANS CLUSTERING) 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 

92 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)

93 Introduzione al Data Mining
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 j 2.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).

94 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).

95 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 * * * 30 * * * * * = ax,y * * Eta 20 10 Stipendio x 10000 5 10 15 20 25 30 35 40

96 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 STEP 1 * * Creazione casuale dei cluster * 30 * * * * * * Eta 20 * = ax,y 10 Stipendio x 10000 5 10 15 20 25 30 35 40

97 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 STEP 2.1 + * * Loop: Calcolo centroidi * + 30 * * * * * + * Eta 20 * = ax,y 10 Stipendio x 10000 5 10 15 20 25 30 35 40

98 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 STEP 2.2 + * * Loop: Calcolo distanze * + 30 * * * * * + * Eta 20 * = ax,y 10 Stipendio x 10000 5 10 15 20 25 30 35 40

99 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 STEP 2.3 * * Loop: Riassegnamento * 30 * * * * * * Eta 20 * = ax,y 10 Stipendio x 10000 5 10 15 20 25 30 35 40

100 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 STEP 3 * * Loop: Valuto condizione * 30 * * * * * * Eta 20 CONVERGENZA? Non ancora … * = ax,y 10 Stipendio x 10000 5 10 15 20 25 30 35 40

101 Introduzione al Data Mining
Es.: A={insieme di info sui clienti di una banca} A={ax,y} axReddito ayEta’ A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 * * RISULTATO FINALE * 30 * * * * * * Eta 20 * = ax,y 10 Stipendio x 10000 5 10 15 20 25 30 35 40

102 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? 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

103 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

104 Introduzione al Data Mining
La fase di valutazione del modello e’ necessaria per quantificarne 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.

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

106 Introduzione al Data Mining
MATRICE di CONFUSIONE (CONFUSION MATRIX) Matrice di elementi a[x][y] #istanze appartenenti alla classe x (da Rreal), classificate come y. N possibili classi da riconoscere: C1, C2, … CN Classificazioni prodotte dal modello Casi in cui la classificazione del modello coincide con quella reale … C1 C2 CN Classificazioni reali CLASSIFICAZIONI CORRETTE!

107 Introduzione al Data Mining
ACCURATEZZA DEL MODELLO Rapporto delle istanze classificate correttamente sul numero totale di istanze di testing considerate. Classificazioni prodotte dal modello C1 C2 CN Corrette Classificazioni reali Riferendosi alla confusion matrix

108 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. Classificazioni prodotte dal modello SI NO 50 75 100 25 Classificazioni reali FALSI NEGATIVI ACCURACY= (50+25)/( )= 0.375 FALSI POSITIVI

109 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. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

110 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:


Scaricare ppt "Introduzione al Data Mining"

Presentazioni simili


Annunci Google