Corso di Basi di Datidifelice/dbsi/slides/pdf/mining2.pdf · 2020. 12. 9. · Determinare se gli...

83
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 Datidifelice/dbsi/slides/pdf/mining2.pdf · 2020. 12. 9. · Determinare se gli...

  • 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/