View
5
Download
0
Category
Preview:
Citation preview
Corso di Basi di Dati
Introduzione al Data Mining
Home page del corso: http://www.cs.unibo.it/~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 …
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
DATA PREPARATION
MODELINGEVALUATION
DEPLOYMENT DB DW
DATA ACQUISI
TION
PERFORMANCE ANALYSIS
DATA WORKFLOW
DATA ANALYSIS
DATA PRE
PROCESSING
Introduzione al Data Mining
DATA STORAGE
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.
DATA ACQUISI
TION
PERFORMANCE ANALYSIS
DATA WORKFLOW
DATA ANALYSIS
DATA PRE
PROCESSING
Introduzione al Data Mining
DATA STORAGE
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!
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.
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.
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).
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 …
DATA ACQUISI
TION
PERFORMANCE ANALYSIS
DATA WORKFLOW
DATA ANALYSIS
DATA PRE
PROCESSING
Introduzione al Data Mining
DATA STORAGE
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
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 & Reddito < 15000 à 1 Se Reddito >= 15000 à 2
Reddito
1
2
0REGOLE di CLASSIFICAZIONE
Costruire un modello di data-mining per decidere l’erogazione di una carta di credito
sulla base della segmentazione degli utenti.
Introduzione al Data Mining
Molti algoritmi di data-mining lavorano su dati normalizzati su un intervallo (es. [0,1]).
DATA PREPARATION
Normalizzazione Massimo/Minimo:
ValNewi =Vali −Min(Val )
Max(Val )−Min(Val )0
0.11
0.55
1
15
20
40
60
ValMin ValMax
0 1
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:
ValNewi =Vali −Media(Val )
Std(Val )0
0.11
0.55
1
15
20
40
600
Media
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?
In molti casi, l’obiettivo del processo di data mining
consiste nella ricerca degli outlier (es. analisi frodi)!
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!
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 vicini X(x1,y1) e Y (x2,y2) sono vicini se:
(x1 − x2 )2 + (y1 − y2 )2 < R
Se #Vicini(X) < Soglia à OUTLIER!
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) ➢ …
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?
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. ➢ …
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 SI
4323 MRGTY43R NO 60 NO 5000 NO
Informazione non utile per il modello …
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 SI
4323 MRGTY43R NO 60 NO 5000 NO
Informazione non utile per il modello …
Introduzione al Data Mining
L’attività di data preparation è 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 …
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
Introduzione al Data Mining
L’attività 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
DATA ACQUISI
TION
PERFORMANCE ANALYSIS
DATA WORKFLOW
DATA ANALYSIS
DATA PRE
PROCESSING
Introduzione al Data Mining
DATA STORAGE
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.
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.
➢Segmentazione ◇ Scoprire pattern sui dati, raggruppare istanze simili in
gruppi (cluster) di istanze.
➢Predizione ◇ Predire il valore di una serie temporale (valori continui).
➢Associazione ◇ Determinare regole del tipo: Se X allora Y
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 … à
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.
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-SETALGORITMO
CLASSIFICAZIONE+
MODELLO
Istanza Ai
CjFase di TRAINING
Fase di TESTING{}
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 ➢ Reti neurali ➢ Alberi di decisione ➢ Random Forest ➢ Support Vector Machines (SVM) ➢ …
ALGORITMI di CLASSIFICAZIONE
35
❑ CLASSIFICAZIONE
METODI BAYESIANI
◇ Stimare la probabilità che un’istanza appartenga ad una specifica classe.
◇ P(C11|)?
◇ Alcuni approcci: ❑ Naïve Bayes ❑ Bayesian Belief Networks
METODI “GEOMETRICI”
◇ Rappresentare istanze come punti e determinare gli iperpiani che meglio separano i dati appartenenti alle diverse categorie.
◇ Alcuni approcci: ❑ Support Vector Machines
(SVM)
Introduzione al Data Mining
36
ALBERI DECISIONALI
◇ Struttura ad albero di supporto alla classificazione.
◇ Le foglie corrispondono alle classi ◇ I nodi interni corrispondono alle feature
dei dati ◇ Ogni ramo è l’output di un tes. ◇ Alcuni nomi:
❑ Decision Tree (e.g. ID3)
❑ CLASSIFICAZIONE
Introduzione al Data Mining
37
RETI NEURALI
◇ Ispirati alle reti neurali biologiche
◇ Input: feature dei dati ◇ Output: categorie dei dati ◇ Obiettivo dell’apprendimento:
determinare la funzione o meglio il valore dei cofficienti della funzione che mappano i valori dell’input con quelli dell’output
❑ CLASSIFICAZIONE
Introduzione al Data Mining
38
META-CLASSIFICATORI
◇ Applica diverse tecniche di classificazione sui dati
◇ Combina gli output (le classi) prodotte dai vari classificatori
VOTING SCHEME
d1
x
d2 dL
+
y
Algoritmi
Combinazione mediante pesi
Classification
Introduzione al Data Mining
❑ CLASSIFICAZIONE
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
Nr Utente
Stato Coniugale
Sesso #Nucleo Familiare
Reddito Annuo
Acquisto
1 Celibe M 1 30000 SI
2 Nubile F 1 45000 NO
3 Sposato M 4 35000 SI
Data-set derivato dai risultati di precedenti campagne pubblicitarie
TESTING SET ACQUISTO??
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 una
classe cj, vedendo un’istanza A.
In NB, scelgo la classe ck, tale che: k = argmax j P(cj | A)Come calcolare P(cj|A)??
Introduzione al Data Mining
Probabilità condizionata:
Probabilità congiunta (in caso di eventi indipendenti):
P(E1 |E2 ) =P(E1,E2 )P(E2 )
P(E1,E2 ) = P(E1) ⋅P(E2 )
Teorema di Bayes: P(E1 |E2 ) =P(E2 |E1) ⋅P(E1)
P(E2 )Applicando il Teorema di Bayes al nostro problema:
argmax j P(cj | A) = argmax jP(A | cj ) ⋅P(cj )
P(A)
Introduzione al Data Mining
argmax jP(A | cj ) ⋅P(cj )
P(A)argmax j P(A | cj ) ⋅P(cj )
Semplificando il problema …
Il record A è composto di N Attributi: A(x1,x2, …xN)
argmax j P(A | cj ) ⋅P(cj ) = argmax j P(x1, x2,..., xN | cj ) ⋅P(cj )
Assumendo che gli N attributi siano tutti indipendenti …
argmax j P(x1, x2,..., xN | cj ) ⋅P(cj ) = argmax j P(cj ) ⋅ P(xi | cj )i=1
N
∏
Introduzione al Data Mining
Conclusione à L’algoritmo di NB sceglie la classe cj che massimizza la quantità:
P(cj ) ⋅ P(xi | cj )i=1
N
∏
PROBLEMA: Come stimare P(cj) e P(xi|cj)?
Possibile Soluzione: Si approssima le probabilità come frequenze relative, rispetto ai valori del training set.
P(cj ) =# istanze classificate cj
# istanze totali
Introduzione al Data Mining
Nr Utente
Sposato Sesso #Nucleo Familiare
Reddito Annuo
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 à 1
A=< Sposato, M, 3, 38000>
P(SI)=2/6=0.33
C={SI, NO}
P(NO)=4/6=0.67
Introduzione al Data Mining
Nr Utente
Sposato Sesso #Nucleo Familiare
Reddito Annuo
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 à 1A=
P(Sposato|NO)=1/4=0.25P(Sposato|SI)=2/2=1
P(M|SI)=1/2=0.5 P(M|NO)=2/4=0.5 P(3|SI)=1/2=0.5
P(3|NO)=1/2=0.5 P(1|SI)=1/2=1 P(1|NO)=2/4=0.5
Introduzione al Data Mining
Nr Utente
Sposato Sesso #Nucleo Familiare
Reddito Annuo
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 à 1A=
C(SI|) à 0.33*1*0.5*0.5*1=0.08125
C(NO|) à 0.67*0.25*0.5*0.5*0.5=0.0408
Introduzione al Data Mining
Nr Utente
Sposato Sesso #Nucleo Familiare
Reddito Annuo
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 à 1A=
C(SI|) à 0.33*1*0.5*0.5*1=0.08125
C(NO|) à 0.67*0.25*0.5*0.5*0.5=0.0408
Classificata come SI
Introduzione al Data Mining
◇ Classificatore K-Nearest Neighbour (KNN)Le istanze sono rappresentate come punti di uno spazio N dimensionale.
Si calcola la distanza Euclidea tra punti
La classe di un punto viene approssimata alla classe dei K punti più vicini.
Introduzione al Data Mining
◇ Le reti neurali rappresentano un sistema di apprendimento supervised, che trae spunto dal corrispettivo biologico.
◇ Cellule nervose interconnesse che si trovano nel cervello e che sono coinvolte nell’elaborazione e trasmissione dei segnali chimici ed elettrici.
SEG
NA
LI
DI
IN
PU
T
ASSONE
SEGNALI DI OUTPUT
Introduzione al Data Mining
◇ Dal neurone biologico al neurone “matematico” di McCulloch-Pitts.
Introduzione al Data Mining
◇ Dal neurone biologico al neurone “matematico” di McCulloch-Pitts.ELEMENTI
◇ Un insieme di valori in input (x1,x2, …,xm) ◇ Un insieme di coefficienti (pesi) (w1,w2, …,wm) ◇ Una sommatore, che combina valori di input e pesi sulle varie sinapsi: z=w1*x1 + w2*x2+ … wm*xm ◇ Una funzione di attivazione che decide l’output:
Introduzione al Data Mining
◇ Il modello di McCulloch-Pitts può essere usato per risolvere problemi di classificazione.
ALGORITMO DI PERCEPTRON
◇ Un insieme di valori in input (x1,x2, …,xm) à feature dei dati da classificare.
◇ La funzione di output restituisce due possibili valori (classificatore binario): ◇ -1 à dati appartenenti alla Classe 0 ◇ 1 à dati appartenenti alla Classe 1
◇ Come settare il valore dei pesi (w1 … wm)?
Introduzione al Data Mining
ALGORITMO DI PERCEPTRON DURANTE il TRAINING
1. Inizializzo i pesi a 0 o a numeri casuali piccoli 2. Per ogni campione X(i) del training set:
X(i)=(x1(i), x2(i), x3(i), … xm(i),) di classe Z
◇ Calcolo il valore previsto di output ZP e lo confronto con il valore reale Z
◇ Aggiorno i pesi di conseguenza: wj = wj + ν*(Z-ZP)*xj(i)
Introduzione al Data Mining
ALGORITMO DI PERCEPTRON DURANTE il TRAINING
L’algoritmo termina quando:
◇ Ho raggiunto un numero massimo di iterazioni OPPURE:
◇ L’errore di aggiornamento al passo j (E(j)) è diventato inferiore ad una soglia prefissata:
Introduzione al Data Mining
Nr Utente
Sposato Sesso #Nucleo Familiare
Reddito Annuo
Acquisto
1 NO M 4 0 NO
x1 x2 x3 x4 x5 Z
1 1 1 0 0 1
w1=0.3, w2= 0.5, w3=0.7, w4=0.8, w5=0.2}
w1=w1 + ν∗(−1−1)∗1=0.3∗0.9∗ (−2)=−0.54
ν=0.9
Aggiornamento al passo j+1
ΖP=1
Introduzione al Data Mining
◇ L’algoritmo di PERCEPTRON è in grado di classificare correttamente le istanza nel caso di separabilità lineare.
COSA accade nel caso di NON
Separabilità Lineare?
Introduzione al Data Mining
◇ Reti neurali multi-livello
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= v
k vA2=s
A3>=pA3
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
NO
Reddito
SINO
>200004
SI
Introduzione al Data Mining
Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione.
Sposato
SI
NO
Reddito
SINO
>200004
SI
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.
➢Segmentazione ◇ Scoprire pattern sui dati, raggruppare istanze simili in
gruppi (cluster) di istanze.
➢Predizione ◇ Predire il valore di una serie temporale (valori continui).
➢Associazione ◇ Determinare regole del tipo: Se X allora Y
Introduzione al Data Mining
➢ Insieme di N elementi da partizionare ➢ Numero di Classi: NC
INPUT
OUTPUT
Determinare la composizione di ogni classe c0
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?
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)
Introduzione al Data Mining
Distanza tra due elementi in uno spazio euclideo 2D
d(x, y) = (x1 − y1)2 + (x2 − y2 )2
Distanza tra due elementi in uno spazio euclideo ND
d(x, y) =i=1
n
∑ (xi − yi )2
Centroide di un gruppo (2D): c(a1,a2, … aM)
cai,x
i=1
M
∑M
,ai,y
i=1
M
∑M
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
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 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).
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.
e= d(ai,c(ai ))2
i=1
M
∑La classificazione termina quando l’errore diventa minore di una soglia Emin (e
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
5 10 15 20 25 30 35 40
10
20
30
Eta
Stipendio x 10000
**
*
**
*
*
* * * = ax,y
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
5 10 15 20 25 30 35 40
10
20
30
Eta
Stipendio x 10000
**
*
**
*
*
* *
* = ax,y
STEP 1
Creazione casuale dei cluster
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
5 10 15 20 25 30 35 40
10
20
30
Eta
Stipendio x 10000
**
*
**
*
*
* *
* = ax,y
STEP 2.1
Loop: Calcolo centroidi
++
+
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
5 10 15 20 25 30 35 40
10
20
30
Eta
Stipendio x 10000
**
*
**
*
*
* *
* = ax,y
STEP 2.2
Loop: Calcolo distanze
++
+
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
5 10 15 20 25 30 35 40
10
20
30
Eta
Stipendio x 10000
**
*
**
*
*
* *
* = ax,y
STEP 2.3
Loop: Riassegnamento
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
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 …
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
5 10 15 20 25 30 35 40
10
20
30
Eta
Stipendio x 10000
**
*
**
*
*
* *
* = ax,y
RISULTATO FINALE
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
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
DATA PREPARATION
MODELINGEVALUATION
DEPLOYMENT DB DW
Introduzione al Data Mining
La fase di valutazione del modello è necessaria per quantificarne 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.
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.
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
C1 C2 … CN
C1
C2
…
CN
Classificazioni prodotte dal modello
Cla
ssif
icaz
ioni
rea
li
Casi in cui la classificazione
del modello coincide con
quella reale …
CLASSIFICAZIONI CORRETTE!
Introduzione al Data Mining
ACCURATEZZA DEL MODELLO
Rapporto delle istanze classificate correttamente sul numero totale di istanze di testing considerate.
C1 C2 … CN
C1 Corrette
C2 Corrette
… Corrette
CN Corrette
Classificazioni prodotte dal modello
Cla
ssif
icaz
ioni
rea
li
accuracy=a[i][i]
i=1
N
∑# istanzeRiferendosi alla confusion matrix
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
Cla
ssif
icaz
ioni
rea
li
FALSI NEGATIVI
FALSI POSITIVI
ACCURACY= (50+25)/(50+75+100+25)=
0.375
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
DATA PREPARATION
MODELINGEVALUATION
DEPLOYMENT DB DW
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/
Recommended