1 Data Mining - S. Orlando Classification Salvatore Orlando.

73
1 Data Mining - S. Orlando Classification Salvatore Orlando

Transcript of 1 Data Mining - S. Orlando Classification Salvatore Orlando.

Page 1: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

1Data Mining - S. Orlando

Classification

Salvatore Orlando

Page 2: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

2Data Mining - S. Orlando

Classificazione

Dati una collezione di dati (training set )– Ciascun record contiene un insieme di attributi, uno dei quali è

la classe di appartenenza.

Trova un modello per l’attributo classe che diventa funzione degli altri attributi

Obiettivo: trovare una funzione che assegni in modo accurato l’attributo classe a nuovi records non classificati.– Un test set è usato per determinare l’accuratezza del modello. – Di solito il dataset iniziale è suddiviso in training e test sets:

costruiamo il modello con il training set, e usiamo il test set per validarlo.

Page 3: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

3Data Mining - S. Orlando

Esempio di classificazione

Tid Refund Marital Status

Taxable Income Cheat

1 Yes Single 125K No

2 No Married 100K No

3 No Single 70K No

4 Yes Married 120K No

5 No Divorced 95K Yes

6 No Married 60K No

7 Yes Divorced 220K No

8 No Single 85K Yes

9 No Married 75K No

10 No Single 90K Yes 10

categoric

al

categoric

al

continuous

class

Refund Marital Status

Taxable Income Cheat

No Single 75K ?

Yes Married 50K ?

No Married 150K ?

Yes Divorced 90K ?

No Single 40K ?

No Married 80K ? 10

TestSet

Training Set

ModelLearn

Classifier

Cheat = truffatore,imbroglione

Page 4: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

4Data Mining - S. Orlando

Classificazione vs. Clustering

Supervised learning (classification)– Supervisione: I dati del training set (osservazioni, misure, etc.) sono

stati preventivamente associati a etichette che indicano la classe di

appartenenza

• conoscenza supervisionata

– I nuovi record di dati sono classificati usando il modello costruito

sulla base del training set

Unsupervised learning (clustering)– L’etichetta della classe è sconosciuta

– Dati un insieme di misure, osservazioni, ecc. lo scopo del clustering

è quello di stabilire l’esistenza di gruppi/classi nei dati

• Imparare l’esistenza di un qualche modello presente nei dati, che dà

luogo ad una suddivisione dei dati, senza conoscenza precedente

Page 5: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

5Data Mining - S. Orlando

Tecniche di classificazione

Metodi basati sugli Alberi di Decisione (Decision Tree) Metodi Rule-based Memory-based reasoning Neural Networks Genetic Algorithms Naïve Bayes Support Vector Machines

Page 6: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

6Data Mining - S. Orlando

Classificazione basata su Decision Tree

I modelli di classificazione basati su Decision Tree sono considerati tra i migliori – Non costosi da costruire– Facili da interpretare– Facili da integrare con le basi di dati– Buona accuratezza in molte applicazioni, anche in confronto ad

altri metodi di classificazione

Page 7: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

7Data Mining - S. Orlando

Decision tree

Decision Tree – Un struttura ad albero che somiglia ad un flow-chart– Ogni nodo interno denota un test su un attributo

• Gli archi uscenti rappresentano i risultati del test

– Ogni nodo foglia rappresenta un’etichetta di classe o la distribuzione delle varie classi

Uso di un Decision Tree– Per classificare un nuovo dato campione sulla base degli

attributi• ovvero per assegnare un’etichetta di classe al nuovo dato

– Effettua i test sui valori degli attributi del campione rispetto ai test presenti nel decision tree

• A partire dalla radice, e sulla base degli attributi del campione da classificare, segue un cammino fino ad una foglia

• L’etichetta della foglia definisce la classe di appartenenza del campione

Page 8: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

8Data Mining - S. Orlando

Esempio di albero di classificazione

Tid Refund MaritalStatus

TaxableIncome Cheat

1 Yes Single 125K No

2 No Married 100K No

3 No Single 70K No

4 Yes Married 120K No

5 No Divorced 95K Yes

6 No Married 60K No

7 Yes Divorced 220K No

8 No Single 85K Yes

9 No Married 75K No

10 No Single 90K Yes10

categoric

al

categoric

al

continuous

class

Refund

MarSt

TaxInc

YESNO

NO

NO

Yes No

Married Single, Divorced

< 80K > 80K

Splitting Attributes

Page 9: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

9Data Mining - S. Orlando

Un altro albero di classificazione

Tid Refund MaritalStatus

TaxableIncome Cheat

1 Yes Single 125K No

2 No Married 100K No

3 No Single 70K No

4 Yes Married 120K No

5 No Divorced 95K Yes

6 No Married 60K No

7 Yes Divorced 220K No

8 No Single 85K Yes

9 No Married 75K No

10 No Single 90K Yes10

categoric

al

categoric

al

continuous

classMarSt?

Refund?

TaxInc?

YESNO

NO

NO

Yes No

Married Single,

Divorced

< 80K > 80K

Si possono derivare più alberi dagli stessi dati!

Page 10: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

10Data Mining - S. Orlando

Un altro esempio

age income student credit_rating buys_computer<=30 high no fair no<=30 high no excellent no31…40 high no fair yes>40 medium no fair yes>40 low yes fair yes>40 low yes excellent no31…40 low yes excellent yes<=30 medium no fair no<=30 low yes fair yes>40 medium yes fair yes<=30 medium yes excellent yes31…40 medium no excellent yes31…40 high yes fair yes>40 medium no excellent no

age?

student? credit rating?

no yes fairexcellent

<=30 >40

31..40

NO YES NO YES

YES

Page 11: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

11Data Mining - S. Orlando

Algoritmo per Decision Tree Induction

Algoritmo di base (metodo greedy)– L’albero è costruito in modo:

• top-down - ricorsivo - divide-and-conquer

– All’inizio tutti gli esempi di training sono in corrispondenza della radice

– Gli esempi di training sono partizionati ricorsivamente sulla base degli attributi selezionati

– Gli attributi di test sono selezionati in base ad un’euristica o a misure statistiche (es., gini index, information gain)

• Scopo: suddividere gli esempi creando partizioni omogenee• Esistono metodi che funzionano su attributi di test categorici e/o su

attributi numerici

Condizioni per stoppare il partizionamento– Tutti gli esempi di una partizione in una stessa classe– Non abbiamo più attributi sulla cui base partizionare ulteriormente –

usiamo una tecnica di majority voting per classificare la foglia

Page 12: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

12Data Mining - S. Orlando

Come effettuare lo splitting: attributi nominali

Ciascuna partizione è caratterizzato da un sottoinsieme di valori. Multi-way split: Usa tanti ramificazioni dello split quanti sono i

valori distinti.

Binary split: Divisi i valori in due sottoinsiemi. Bisogna individuare un partizionamento ottimale.

CarTypeFamily

Sports

Luxury

CarType{Family, Luxury} {Sports}

CarType{Sports, Luxury} {Family} oppure

Page 13: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

13Data Mining - S. Orlando

Come effettuare lo splitting: attributi ordinali

Ciascuna partizione è caratterizzato da un sottoinsieme di valori. Multi-way split: Usa tanti ramificazioni dello split quanti sono i

valori distinti.

Binary split: Divisi i valori in due sottoinsiemi. Bisogna individuare un partizionamento ottimale.

Questo partizionamentopotrebbe essere possibile?

oppure

SizeSmall

Medium

Large

Size{Medium,

Large} {Small}Size

{Small, Medium} {Large}

Size{Small, Large} {Medium}

Page 14: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

14Data Mining - S. Orlando

Come effettuare lo splitting: attributi numerici

Metodi differenti – Binary Decision: (A v) or (A v)

• considera tutti i possibili split e individua il miglior taglio• Può risultare molto costo computazionalmente, anche se

esistono dei metodi basati sull’ordinamento

– Discretizzazione per formare un attributo categorico (ordinale)

• Statico – discretizzato una volta per tutte all’inizio• Dinamico – le suddivisioni possono essere trovati tramite

equal interval partitioning, equal frequency partitioning, o distance-based clustering.

Page 15: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

15Data Mining - S. Orlando

Discretizzazione

Equal-width (distance) partitioning:– Dividi la scala di variazione dell’attributo in N intervalli identici– Se A e B sono il più piccolo e il più grande valore di un attributo, la

larghezza degli intervalli sarà: W = (B-A)/N.– E’ il metodo più semplice, ma gli outlier (o dati non ben distribuiti)

possono dare problemi al metodo di discretizzazione

Equal-depth (frequency) partitioning:– Dividi la scala di variazione dell’attributo in N intervalli identici,

ciascuno contenente approssimativamente lo stesso numero di campioni

– Buon metodo

Cluster analysis partitioning:– Può risultare costoso

Page 16: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

16Data Mining - S. Orlando

Discretizzazione

Data Equal interval width

Equal frequency K-means (clustering)

Page 17: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

17Data Mining - S. Orlando

Criterio di splitting

Come scegliere l’attributo e il relativo splitting? – uso di particolari indici di dispersione dei valori dell’attributo

categorico di classe

Gini index (algoritmo di IBM IntelligentMiner, CART, SLIQ, SPRINT)

Information gain (algoritmi ID3/C4.5)

Page 18: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

18Data Mining - S. Orlando

Gini index

In corrispondenza di un certo nodo t dell’albero in costruzione, e rispetto alla corrispondente partizione del dataset di training, possiamo definire il Gini Index:

(NOTA: p( j | t) è la frequenza relativa della classe j al nodo t).

– Misura l’impurità/disordine del dataset corrispondente a t. • Massimo valore (1 - 1/nc) quando i record sono equamente

distribuiti tra tutte le classi informazione meno interessante

• Minimo valore (0.0) quando tutti i record appartengono ad una sola classe informazione più interessante

j

tjptGINI 2)]|([1)(

C1 0C2 6

Gini=0.000

C1 2C2 4

Gini=0.444

C1 3C2 3

Gini=0.500

C1 1C2 5

Gini=0.278

Page 19: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

19Data Mining - S. Orlando

Gini

Una sola classe:– 1 - 12 = 0

nc classi equiprobabili:

– 1 - \sum ((n / nc) / n)2 = 1 - \sum (1 / nc)2 = 1 – nc (1 / nc)2 = 1 – 1 / nc

Page 20: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

20Data Mining - S. Orlando

Esempi relativi a Gini Index

C1 0 C2 6

C1 2 C2 4

C1 1 C2 5

P(C1) = 0/6 = 0 P(C2) = 6/6 = 1

Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0

j

tjptGINI 2)]|([1)(

P(C1) = 1/6 P(C2) = 5/6

Gini = 1 – (1/6)2 – (5/6)2 = 0.278

P(C1) = 2/6 P(C2) = 4/6

Gini = 1 – (2/6)2 – (4/6)2 = 0.444

Page 21: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

21Data Mining - S. Orlando

Uso del GINI Index

Criterio di Splitting: Minimizza il Gini Index della suddivisione. Quando un nodo t è suddiviso in k partizioni (figli), la qualità della

suddivisione è calcolata come:

dove, ni = numero di record della partizione (figlio) i,

n = numero di record del dataset al nodo t.

ni /n costituisce il peso dei vari GINI(i)

Dato il dataset associato al nodo t, si sceglie l’attributo che fornisce il più piccolo GINIsplit(t) per partizionare il dataset – È necessario enumerare tutti i possibili punti di splitting per

ciascun attributo

k

i

isplit iGINI

n

nGINI

1

)(

Page 22: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

22Data Mining - S. Orlando

Calcolare il GINI Index per attributi binari

Suddivisione in due partizioni Si cercano partizioni più grandi e più pure possibili.

N1 N2 C1 0 6

C2 6 0

Gini=0.000

B?

Yes No

Node N1 Node N2

Parent

C1 6

C2 6

Gini = 0.500

N1 N2 C1 4 2

C2 3 3

Gini=0.486

N1 N2 C1 3 3

C2 3 3

Gini=0.500

N1 N2 C1 5 1

C2 1 5

Gini=0.278

Page 23: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

23Data Mining - S. Orlando

Calcolare il GINI Index per attributi categorici

Per ciascuna classe nel dataset, conta il numero dei valori differenti per ogni attributo– computa le singole righe delle matrici di conteggio

Usa la matrice dei conteggi per prendere le decisioni

CarType{Sports,Luxury}

{Family}

C1 3 1

C2 2 4

Gini 0.400

CarType

{Sports}{Family,Luxury}

C1 2 2

C2 1 5

Gini 0.419

CarType

Family Sports Luxury

C1 1 2 1

C2 4 1 1

Gini 0.393

Multi-way splitTwo-way split

(bisogna trovare il migliore partizionamento dei valori)

Page 24: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

24Data Mining - S. Orlando

Calcolare il GINI Index per attributi continui

Solitamente si usa Binary Decision, basato su un singolo valore di splitting– Non abbiamo bisogno di discretizzare

Sono possibili scelte diverse per il valore di splitting– Es.: Numero di possibili valori di splitting = Numero di valori distinti

assunti dall’attributo

Ciascun valore di splitting ha una matrice di conteggi associata– Conteggio delle varie classi per ciascuna partizione, (A v) e (A v)

Metodo naive per scegliere il miglior v– Per ciascun v, scandisci il database per raccogliere la matrice dei

conteggi e computare il corrispondente Gini Index (GINIsplit)

– Questo metodo è computazionalmente inefficiente! Lavoro ridondante.

Page 25: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

25Data Mining - S. Orlando

Calcolare il GINI Index per attributi continui (2)

Metodo per migliorare l’efficienza Per ciascun attributo

– Ordina rispetto ai valori degli attributi– Scandisci linearmente questi valori, aggiornando ogni volta la matrice dei conteggi

necessario per calcolare il GINI index• considera che, quando spostiamo il pivot, abbiamo un singolo elemento (appartenente ad una

certa classe) che passa da una partizione all’altra • +/- 1 in una particolare riga

– Scegli le posizioni di split che hanno il GINI index minore

Cheat No No No Yes Yes Yes No No No No

Taxable Income

60 70 75 85 90 95 100 120 125 220

55 65 72 80 87 92 97 110 122 172 230

<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >

Yes 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0

No 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0

Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

Split Positions

Sorted Values

Page 26: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

26Data Mining - S. Orlando

Criterio di splitting alternativo: Information Gain

In corrispondenza di un certo nodo t dell’albero in costruzione, e rispetto alla corrispondente partizione del dataset di training, possiamo definire l’Information Gain:

(NOTA: p( j | t) è la frequenza relativa della classe j al nodo t).

– Misura l’omogeneità/ordine di un nodo. • Massimo (log nc) quando i record sono equamente distribuiti tra

tutte le classi implica meno informazione

• Minimo valore (0.0) quando tutti i record appartengono ad una sola classe implica più informazione

– I calcoli basati sulla misura dell’Entropia sono simili a quelle basate sul GINI index

j

tjptjptEntropy )|(log)|()(

Page 27: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

27Data Mining - S. Orlando

Entropy

Una sola classe:– - (1 * log 1) = 0

nc classi equiprobabili:

– - (\sum ( (n / nc) / n) * log ((n / nc) / n) ) =

– - ( \sum ( (1 / nc) * log (1 / nc) ) =

– - nc * (1 / nc) * log (1 / nc) = - log (1 / nc) = - (log 1 - log nc) = log nc

Page 28: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

28Data Mining - S. Orlando

Esempi relativi all’Information Gain (Entropia)

C1 0 C2 6

C1 2 C2 4

C1 1 C2 5

P(C1) = 0/6 = 0 P(C2) = 6/6 = 1

Entropy = – 0 log 0 – 1 log 1 = – 0 – 0 = 0

P(C1) = 1/6 P(C2) = 5/6

Entropy = – (1/6) log2 (1/6) – (5/6) log2 (1/6) = 0.65

P(C1) = 2/6 P(C2) = 4/6

Entropy = – (2/6) log2 (2/6) – (4/6) log2 (4/6) = 0.92

j

tjptjptEntropy )|(log)|()(2

Page 29: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

29Data Mining - S. Orlando

Uso dell’Entropia come criterio di splitting

Quando un nodo t è suddiviso in k partizioni (figli), la qualità della

suddivisione è calcolata come IG (Information Gain):

dove, ni = numero di record della partizione (figlio) i,

n = numero di record del dataset al nodo t.

ni /n costituisce il peso dei vari Entropy(i)

Misura la riduzione nell’Entropia in conseguenza dello split. Scegli lo split che raggiunge la riduzione maggiore (massimizza il GAIN)

Usato in ID3 e C4.5

k

i

isplit iEntropy

n

ntEntropyGAIN

1

)()(

Page 30: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

30Data Mining - S. Orlando

Problemi legati all’Information Gain

Svantaggio: – l’IG tende a preferire suddivisioni che producono molte partizioni, piccole

ma pure (ovvero che comprendono elementi appartenenti ad una singola classe). Si rischia di costruire un albero overfitted rispetto al training set

Gain Ratio:

Il nodo padre, è suddiviso in k partizioni

ni è il numero di record della partizione i

– Corregge l’Information Gain dello split usando l’entropia del partizionamento (SplitINFO).

– Valori alti di SplitINFO si ottengono all’aumento del numero di piccole partizioni! l’aumento di SplitINFO penalizza Gain Ratio

– Usato in C4.5

SplitINFO

GAINGainRATIO Split

split

k

i

ii

nn

nn

SplitINFO1

log

Page 31: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

31Data Mining - S. Orlando

Algoritmo C4.5 - like

Page 32: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

32Data Mining - S. Orlando

Overfitting

L’albero può overfit-are i dati di training– Troppi rami, alcuni dei quali possono riflettere anomalie dovuti a

rumori o outlier

– Poca accuratezza (troppi errori) per campioni non visti (test dataset)

Overfitting

Page 33: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

33Data Mining - S. Orlando

Overfitting: Pre-Pruning

Pre-Pruning (Early Stopping Rule)– Stop dell’algoritmo prima che esso produca un albero fully-

grown– Le tipiche condizioni di stopping:

• Stop se tutte le istanze appartengono alla stessa classe

• Stop se tutti i valori degli attributi hanno lo stesso valore

– Condizioni più restrittive per il pruning:• Stop se il numero di istanze è minore di uno user-specified

threshold

– Evita la creazione di piccole partizioni

– Difficile trovare il threshold

• Stop se espandendo il nodo corrente non miglioriamo la misura di impurità (es.., Gini o Information Gain).

Page 34: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

34Data Mining - S. Orlando

Overfitting: Post-Pruning

Post-Pruning– Rimuovi nodi/rami da un albero completo (“fully grown” tree)

• Elimina i nodi in modo bottom-up

– Usa un insieme di dati differenti dal training data (testing data) per decidere qual è il “best pruned tree”

– Se l’errore sui dati di testing migliora dopo la sostituzione del sotto-albero con un nodo foglia

• Sostituisci in maniera permanente, generando un albero pruned

– L’etichetta di classe da assegnare al nuovo nodo foglia è determinato dalla classe maggioritaria nel sotto albero

Page 35: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

35Data Mining - S. Orlando

Presentation: decisiontree

Page 36: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

36Data Mining - S. Orlando

Presentation: decisiontree

Page 37: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

37Data Mining - S. Orlando

Estrarre regole di classificazione da alberi

Rappresenta la conoscenza nella forma di regole IF-THEN– Una regola per ogni cammino dalla radice ad una foglia– Ciascuna coppia attributo-valore lungo un cammino forma una

congiunzione– Il nodo foglia restituisce la predizione della classe per la regola

estratta Le regole sono più facili da capire Esempi

IF age = “<=30” AND student = “no” THEN buys_computer = “no”IF age = “<=30” AND student = “yes” THEN buys_computer = “yes”IF age = “31…40” THEN buys_computer = “yes”IF age = “>40” AND credit_rating = “excellent” THEN buys_computer =

“yes”IF age = “>40” AND credit_rating = “fair” THEN buys_computer = “no”

Page 38: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

38Data Mining - S. Orlando

Classificatori Bayesiano

Metodo probabilistico (Bayesian) per risolvere il problema della classificazione

Probabilità condizionali:

Teorema di Bayes :

)()()|(

)|(AP

CPCAPACP

)(

)()|(

)(

)()|(

CP

CAPCAP

AP

CAPACP

A

C

Page 39: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

39Data Mining - S. Orlando

Esempio di applicazione del teorema di Bayes

Conoscenza pregressa: – Un dottore sa che la meningite causa rigidità del collo per il 50% dei

casi

• P(rigidità del collo | meningite) = 1/2

– La probabilità incondizionata che un paziente possa avere la meningite è

• P(meningite) = 1/50000 = 0,00002

– La probabilità incondizionata che un paziente possa avere rigidità del collo è

• P(rigidità del collo) = 1/20 = 0,05

Se un paziente ha rigidità del collo, qual è la probabilità che egli abbia la meningite?

0002.020/1

50000/15.0

)(

)()|()|(

RP

MPMRPRMP

Page 40: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

40Data Mining - S. Orlando

Classificatori Bayesiano

Considera i vari attributi e l’etichetta della classe come variabili casuali

Dato un record R contenente gli attributi (A1, A2,…,An)

– Lo scopo è predire la classe C di R

– Più specificatamente, vogliamo trovare il valore di C che massimizza: P(C| A1, A2,…,An )

Possiamo stimare P(C| A1, A2,…,An ) direttamente dai dati?

Page 41: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

41Data Mining - S. Orlando

Classificatori Bayesiano

Approccio:– Calcoliamo la probabilità a posteriori P(C | A1, A2, …, An) per tutti i valori

dell’etichetta C di classe– Scegli il valore di C che massimizza

P(C | A1, A2, …, An)

Sulla base del teorema di Bayes, possiamo equivalentemente scegliere il valore di C che massimizza

P(AP(A11, A, A22, …, A, …, Ann | C) P(C) | C) P(C)

Come stimiamo P(A1, A2, …, An | C) ?

)()()|(

)|(21

21

21

n

n

n AAAPCPCAAAP

AAACP

Page 42: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

42Data Mining - S. Orlando

Classificatore Naïve Bayes

Assunzione Naïve : Assumiamo l’indipendenza tra gli attributi Ai

quando sia data una certa classe C – P(A1, A2, …, An |Cj) = P(A1| Cj) P(A2| Cj)… P(An| Cj)

– Possiamo facilmente calcolare P(Ai| Cj) per tutte le coppie Ai e Cj nel

training set, oltre ai vari P(Cj)

– Un nuovo record (B1, B2, …, Bn) è classificato come Cj se risulta massima la produttoria:

P(CP(Cjj) ) P(A P(Aii| C| Cjj)) = P(C = P(Cjj) P(A) P(A11, A, A22, …, A, …, An n |C|Cjj) )

Page 43: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

43Data Mining - S. Orlando

Come stimiamo la probabilità dai dati?

Probabilità delle Classi:– P(C) = Nc/N– dove Nc è il numero di istanze che

appartengono alla classe C

– Es., P(No) = 7/10, P(Yes) = 3/10

Per attributi discreti:– P(Ai | Ck) = |Aik| / Nck

– dove |Aik| è il numero di istanze che hanno l’attributo Ai e appartengono alla classe Ck

– dove Nck è il numero di istanze che

appartengono alla classe Ck

– Esempi:

P(Married | No) = 4/7P(Refund=Yes | Yes)=0

Page 44: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

44Data Mining - S. Orlando

Come stimiamo la probabilità dai dati?

Per attributi continui:– Abbiamo bisogno di conoscere la probabilità condizionale

P(Ai|C) • nota che il particolare valore dell’attributo continuo Ai potrebbe

non essere presente nel dataset di training

– Assumiamo che gli attributi obbediscono a certe distribuzioni di probabilità

• Tipicamente, si assume la distribuzione normale

• Si usano i dati per stimare i parametri della distribuzione di probabilità (ovvero, media e deviazione standard)

• Una volta che la distribuzione di probabilità è nota, possiamo usarla per stimare la probabilità condizionale P(Ai|C)

Page 45: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

45Data Mining - S. Orlando

Come stimiamo le probabilità dai dati?

Distribuzione normale:

– Una per ciascuna coppia (Ai,ci)

Per (Income, Class=No):– Se Class=No

• ij (media nel campione) = 110

• 2ij (varianza nel campione) =

2975

2

2

2

)(

221

)|( ij

ijiA

ij

jiecAP

0072.0)54.54(2

1)|120( )2975(2

)110120( 2

eNoIncomeP

Page 46: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

46Data Mining - S. Orlando

Esempio di classificatore Naïve Bayes

120K)Income Married, No,Refund( X

P(X|Class=No) = P(Refund=No| Class=No) P(Married| Class=No) P(Income=120K| Class=No)

= 4/7 4/7 0.0072 = 0.0024 P(X|Class=No) P(No) = 0.0024 0.7 = 0.00168

P(X|Class=Yes) = P(Refund=No| Class=Yes) P(Married| Class=Yes) P(Income=120K| Class=Yes)

= 1 0 1.2 10-9 = 0P(X|Class=Yes) P(Yes) = 0.0 0.3 = 0.0

Poiché P(X|No)P(No) > P(X|Yes)P(Yes)

abbiamo che: P(No|X) > P(Yes|X) => Class = No

Dato il seguente test:

P(Refund=Yes|No) = 3/7P(Refund=No|No) = 4/7P(Refund=Yes|Yes) = 0P(Refund=No|Yes) = 1P(Marital Status=Single|No) = 2/7P(Marital Status=Divorced|No) = 1/7P(Marital Status=Married|No) = 4/7P(Marital Status=Single|Yes) = 2/3P(Marital Status=Divorced|Yes) = 1/3P(Marital Status=Married|Yes) = 0

Per Income:Se No: media = 110

varianza = 2975Se Yes: media = 90

varianza = 25

Page 47: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

47Data Mining - S. Orlando

Esempio di classificatore Naïve Bayes

Name Give Birth Can Fly Live in Water Have Legs Class

human yes no no yes Mpython no no no no non-Msalmon no no yes no non-Mwhale yes no yes no Mfrog no no sometimes yes non-Mkomodo no no no yes non-Mbat yes yes no yes Mpigeon no yes no yes non-Mcat yes no no yes Mleopard shark yes no yes no non-Mturtle no no sometimes yes non-Mpenguin no no sometimes yes non-Mporcupine yes no no yes Meel no no yes no non-Msalamander no no sometimes yes non-Mgila monster no no no yes non-Mplatypus no no no yes Mowl no yes no yes non-Mdolphin yes no yes no Meagle no yes no yes non-M

Give Birth Can Fly Live in Water Have Legs Class

yes no yes no ?

0027.020

13004.0)()|(

021.020

706.0)()|(

0042.013

4

13

3

13

10

13

1)|(

06.07

2

7

2

7

6

7

6)|(

NPNAP

MPMAP

NAP

MAP

A: attributes

M: mammals

Non-M: non-mammals

P(A|M)P(M) > P(A|N)P(N)

=> Mammals

Test sugli attributi:

Page 48: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

48Data Mining - S. Orlando

Classificatore Naïve Bayes: sommario

Robusto rispetto al rumore

Gestisce i valori mancanti ignorando le istanze durante il calcolo della stima di probabilità

Purtroppo l’assunzione di indipendenza può non essere valida per qualche attributo

Per superare queste limitazioni:

– Bayesian networks, che combinano ragionamenti Bayesiani con

relazioni di causalità tra gli attributi

– Alberi di decisione, che ragionano su un attributo alla volta,

considerando gli attributi più importanti per primi

Page 49: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

49Data Mining - S. Orlando

Classificatori Instance-Based

• Memorizza le istanze di training

=> “Ritarda” nella costruzione del modello (lazy learner)

• Usa le istanze di training per predire l’etichetta di classe di nuovi casi non visti

Atr1 ……... AtrN

Unseen Case

Atr1 ……... AtrN ClassA

B

B

C

A

C

B

Set of Stored Cases

• Approcci Tipici

• k-nearest neighbor

• Locally weighted regression

• Case-based reasoning

Page 50: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

50Data Mining - S. Orlando

K-nearest neighbor

Istanze come punti nel piano euclideo– attributi continui

Richiede tre cose:– L’insieme di istanze

memorizzate– Metrica di Distanza– Il valore di k, il numero di

vicini “nearest” da estrarre

Per la classificazione:– Estrai i k nearest neighbors – Usa le etichette di classe dei

nearest neighbors per determinare l’etichetta di classe dell’istanza non vista (es., attraverso il voto di maggioranza)

Unseen Instance

Page 51: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

51Data Mining - S. Orlando

K-nearest neighbor

X X X

(a) 1-nearest neighbor (b) 2-nearest neighbor (c) 3-nearest neighbor

I K-nearest neighbors di un’istanza x sono i punti che hanno le K più piccole distanze da x

Page 52: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

52Data Mining - S. Orlando

1 nearest-neighbor

A causa del costo della classificazione, è necessario indicizzare/precomputare informazioni per velocizzare il calcolo dei K vicini più prossimi

Voronoi Diagram

Page 53: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

53Data Mining - S. Orlando

Classificatore K-nearest neighbor

Calcola la distanza tra due punti:– Distanza Euclidea

Distanza per pesare i voti– fattore di peso, w = 1/d2

– pesa il voto in accordo alla distanza

i ii

qpqpd 2)(),(

Page 54: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

54Data Mining - S. Orlando

Classificatore K-nearest neighbor ………

Scegliere il valore di k:– Se k è troppo piccolo, il classificatore è sensibile al rumore

– Se k è troppo grande, • costoso dal punto di vista computazionale• la cerchia dei vicini può includere punti appartenenti ad altre classi

X

Page 55: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

55Data Mining - S. Orlando

Case-Based Reasoning

Anche questo metodo usa: lazy evaluation + analisi delle istanze più simili

Differenza: Le istanze non sono “punti nello spazio Euclideo”

Metodologia– Le istanze/casi sono rappresentate da una ricca descrizione simbolica

(es., grafi, funzioni)– Un case-based reasoner prima cerca di capire se esiste un caso di

training identico al nuovo caso da classificare => classificazione OK– Se questo caso uguale non esiste, si cercano casi di training “vicini”,

ovvero con componenti simili a quelli del nuovo caso• Es.: se i casi sono rappresentati come grafi, si cercano sottografi comuni

Problemi– Trovare una buona misura di similarità (es. per il matching tra grafi)– Metodi di indicizzazione per velocizzare la ricerca di casi simili

Page 56: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

56Data Mining - S. Orlando

Lazy (pigro) vs. eager (impaziente) evaluation

Instance-based learning: lazy evaluation Decision-tree and Bayesian classification: eager evaluation Differenze chiavi

– I metodi lazy considerano l’istanza di query q contemporaneamente alla decisione su come generalizzare a partire dal dataset D di training

– I metodi eager non possono farlo, poiché hanno già scelto approssimazioni globali per costruire il modello nel momento in cui vedono la query

Efficienza: i metodi lazy impiegano meno tempo per il training, ma più tempo per predire la classe

Accuratezza– I metodi lazy: usano efficientemente uno spazio di ipotesi più ricco

ritagliato sulla query q

– I metodi eager: devono convergere da subito ad una ipotesi singola che copre l’intero spazio delle istanze di training

Page 57: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

57Data Mining - S. Orlando

Metriche per valutare i classificatori

Siamo interessati alle prestazioni dei classificatori – rispetto alla capacità predittiva del modello

– possibile tradeoff rispetto alla velocità dell’algoritmo

Confusion Matrix:

PREDICTED CLASS

ACTUALCLASS

Class=Yes Class=No

Class=Yes a b

Class=No c d

a: TP (true positive)

b: FN (false negative)

c: FP (false positive)

d: TN (true negative)

Conteggi: a, b, c, e d anche esprimibili in percentuale

Page 58: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

58Data Mining - S. Orlando

Metriche per valutare i classificatori

Metrica più usata:

Error Rate = 1 - Accuracy

FNFPTNTPTNTP

dcbada

Accuracy

PREDICTED CLASS

ACTUALCLASS

Class=Yes Class=No

Class=Yes a(TP)

b(FN)

Class=No c(FP)

d(TN)

Page 59: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

59Data Mining - S. Orlando

Problemi con lo sbilanciamento delle classi

Se il problema non è bilanciato P(Class=Y) molto diverso da P(Class=N)

Accuracy non è una misura adeguata o obiettiva

Esempio:– solo l’1% delle transazioni di carte di credito sono fraudolente

– il 99% sono quindi lecite !

– un modello che classifica tutte le transazioni come legittime, ha un’accuratezza dello 0.99 !!!

– ma il modello è cattivo ha un rate di FP dell’1%, ma questo 1% include TUTTE le transazioni fraudolente a cui siamo interessati

Page 60: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

60Data Mining - S. Orlando

Altre misure

Misure che considerano le classi rare più interessanti

Nella classificazione binaria, di solito la classe rara = positiva True positive rate (TPR) o sensibilità

– TPR = TP / (TP + FN)– frazione di veri positivi individuati, rispetto a tutti i positivi

True negative rate (TNR) o specificità– TPR = TN / (TN + FP)– frazione di veri negativi individuati, rispetto a tutti i negativi

Recall e Precision– misure tipiche dell’Information Retrieval– usate quando è signicativo individuare correttamente una delle due classi

Recall: r = TP / (TP + FN) Precision: p = TP / (TP + FP)

Page 61: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

61Data Mining - S. Orlando

Metodi di valutazione

Holdout– Usa 2/3 del dataset classificato per il training, e 1/3 per il testing – Problemi dovuti alla riduzione degli esempi per il training, e al fatto che training e test

sono sottoinsiemi dello stesso dataset Random subsampling

– Holdout ripetuto– acci : accuratezza del modello all’iterazione i-esima

– accsub = i=1,k acci/k Cross validation

– Partiziona il dataset in k sottoinsiemi disgiunti– Stesso record usato lo stesso numero di volte per il training, e una sola volta per il

testing– k-fold: allena su k-1 partizioni, e testa sulla partizione rimanente– Leave-one-out: Cross-validation con k=N

Bootstrap– Training: Sampling con rimpiazzamento – Lo stesso record può apparire più volte nel training dataset– Dati N record, un training costituito da N record contiene circa il 63.2% dei record

originali– Test set = record non selezionati– Ripetuto b volte

Page 62: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

62Data Mining - S. Orlando

Prediction (vs. Classification)

I metodi predittivi sono simili a quelli per la classificazione– Prima costruisci il modello

– Poi usa il modello per predire i valori sconosciuti

• Il metodo di predizione più importante è la regressione

– Regressione Lineare e Multipla

– Regressione non-lineare

La predizione è differente dalla classificazione– La classificazione predice etichette di classe categoriche

– I metodi predittivi si occupano di predire valori continui non conosciuti

Page 63: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

63Data Mining - S. Orlando

Metodi predittivi

Regressione lineare: Y = + X– Modelliamo una variabile Y (variabile che vogliamo predire) come una

funzione lineare di un’altra variabile X (che di solito è nota, e sulla quale basiamo la predizione di Y)

– I coefficienti del modello (, ) determinati sulla base dei dati conosciuti (di training del modello)

• Metodi dei minimi quadrati applicati ai valori conosciuti del training dataset Y1, Y2, …, X1, X2, ….

Y = 21.7 + 3.7 X

Page 64: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

64Data Mining - S. Orlando

Metodi predittivi

Regressione lineare multipla: Y = b0 + b1 X1 + b2 X2 ….– Abbiamo variabili multiple di predizione X1, X2, ecc. su cui basare il

valore di Y

– Ancora minimi quadrati

Regressione non lineare– I dati non mostrano l’esistenza di una dipendenza lineare

– La variabile di predizione X ha una relazione con la variabile da predire Y modellabile con una funzione polinomiale

Y = + 1 X + 2 X2 + 3 X3

– Possiamo introdurre nuove variabili (X1 = X, X2 = X2, X3 = X3) per trasformare l’equazione polinomiale in una lineare, su cui applicare il metodo dei minimi quadrati

Page 65: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

65Data Mining - S. Orlando

Reti neurali

Il vettore x di input a n-dimensioni è mappato in una variabile y attraverso un prodotto scalare e una funzione nonlineare

k-

f

weighted sum

Inputvector x

output y

Activationfunction

weightvector w

w0

w1

wn

x0

x1

xn

Neurone artificiale

Page 66: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

66Data Mining - S. Orlando

Rete neurale multilivello

Output nodes

Input nodes

Hidden nodes

Output vector

Input vector: xi

wij

Page 67: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

67Data Mining - S. Orlando

Allenamento della rete

L’obiettivo dell’allenamento – Ottenere un insieme di pesi/bias che permette di classificare

correttamente la quasi totalità dei dati di training

Passi del metodo di backpropagation– Inizializza i pesi con valori random – Poni sugli input le ennuple di allenamento una alla volta– Per ogni ennupla in input

• Calcola i valori di output• Calcola l’errore• Aggiorna i pesi e il bias

Page 68: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

68Data Mining - S. Orlando

Reti neurali

Vantaggi dei classificatori neurali– Accuratezza nella predizione

– Robustezza, funziona anche con esempi di training che contengono errori

– Valutazione veloce

Critiche– Tempo di training lungo

– Difficile da interpretare la funzione di classificazione modellata dalla fase di training, ed applicata nella classificazione

• interpretazione dei pesi degli archi della rete

Page 69: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

69Data Mining - S. Orlando

Conclusioni

La Classificazione è stato un problema studiatissimo (soprattutto

in statistica, machine learning & neural networks)

La Classificazione è probabilmente una delle tecniche di data

mining più usate, e rispetto alle quali sono state introdotte

moltissime estensioni

Direzioni di ricerca: classificazione di dati non-relazionali, es.: testi,

dati spaziali, multimedia, etc..

Page 70: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

70Data Mining - S. Orlando

Classificatori basati su regole associative

Dati su cui costruire il classificatore– Insieme di record in D classificati, ovvero contenenti un attributo

categorico yY, che determina la classe di appartenenza Trasformiamo il dataset per poter applicare un algoritmo Apriori-

like– Ogni record deve diventare una transazione che contiene un insieme di

item I– Gli attributi categorici vengono mappati su insiemi di interi consecutivi– Gli attributi continui sono discretizzati e trasformati come quelli

categorici– Ogni record diventa una ennupla di item distinti appartenenti a I, dove

ogni item è una coppia (Attribute, Integer-value) Le regole estratte (CAR=Class Association Rule) con

supporto/confidenza minimi hanno quindi forma

– condset y– Dove condset è un insieme di item (Attribute, Integer-value)

Page 71: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

71Data Mining - S. Orlando

Classificatori basati su regole associative

Una CAR ha confidenza c – se il c% dei campioni in D che contengono condset contengono

anche y (ovvero appartengono alla classe y)

Una CAR ha supporto s– se l’ s% dei campioni in D contengono sia condset e sia y (ovvero

contengono condset ed appartengono anche alla classe y )

Page 72: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

72Data Mining - S. Orlando

Classificatori basati su CAR in dettaglio

1° passo (generazione delle CAR)– Algoritmo iterativo (come Apriori) che ricerca k-ruleitems frequenti

(CAR frequenti il cui condset contiene K item)– Scansione multipla del database– Cerca ad ogni iterazione k = 1, 2, 3, … i k-ruleitems frequenti– La conoscenza dei k-ruleitems frequenti viene usata per generare i

(k+1)-ruleitems candidati

Page 73: 1 Data Mining - S. Orlando Classification Salvatore Orlando.

73Data Mining - S. Orlando

Classificatori basati su CAR in dettaglio

2 ° passo (generazione del Classificatore)– Ricerca delle CAR più accurate– Metodo euristico, basato su un ordinamento tra CAR– Una regola ri precede una regola rj (ri < rj) se

• La confidenza di ri è più grande di rj

• La confidenza è la stessa, ma ri ha un supporto più grande• La confidenza e il supporto delle due regole sono uguali, ma r i è stata

generata prima di rj – Al termine l’algoritmo seleziona un insieme di CAR ordinate che coprono tutti

i campioni in D

Uso del classificatore– Nel classificare un nuovo campione, si usa l’ordine tra le CAR

• Si sceglie la prima regola il cui condset soddisfa il campione.– E’ necessaria una regola di default, a precedenza minima, che specifica una

classe di default• Serve per classificare nel caso in cui nessuna regola soddisfa il nuovo campione da

classificare

Buoni risultati sia in velocità e sia in accuratezza rispetto a C4.5