Classification
Salvatore Orlando
Data Mining - S. Orlando
1
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.
Data Mining - S. Orlando
2
Esempio di classificazione
Test
Set
Training
Set
Learn
Classifier
Model
Cheat = truffatore,imbroglione
Data Mining - S. Orlando
3
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 segmentati assegnando etichette di classe ai
vari record, 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 segmentare i dati, ovvero di stabilire l’esistenza di gruppi/
classi omogenei nei dati
•  Imparare l’esistenza di un qualche modello presente nei dati, che dà luogo
ad una suddivisione dei dati, senza conoscenza precedente
Data Mining - S. Orlando
4
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
Data Mining - S. Orlando
5
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
Data Mining - S. Orlando
6
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
Data Mining - S. Orlando
7
Esempio di albero di classificazione
Splitting Attributes
Refund
Yes
No
NO
MarSt
Single, Divorced
Married
TaxInc
< 80K
NO
NO
> 80K
YES
Data Mining - S. Orlando
8
Un altro albero di classificazione
Married
MarSt?
NO
Single,
Divorced
Refund?
No
Yes
NO
TaxInc?
< 80K
NO
> 80K
YES
Si possono derivare più alberi dagli
stessi dati!
Data Mining - S. Orlando
9
Un altro esempio
age?
<=30
>40
31..40
YES
student?
credit rating?
no
yes
excellent
NO
YES
NO
fair
YES
Data Mining - S. Orlando
10
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
Data Mining - S. Orlando
11
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.
CarType
Family
Luxury
Sports
  Binary split: Divisi i valori in due sottoinsiemi.
Bisogna individuare un partizionamento ottimale.
{Sports,
Luxury}
CarType
{Family}
oppure
{Family,
Luxury}
CarType
{Sports}
Data Mining - S. Orlando
12
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.
Size
Small
Medium
Large
  Binary split: Divisi i valori in due sottoinsiemi.
Bisogna individuare un partizionamento ottimale.
{Small,
Medium}
 
Size
{Large}
Questo partizionamento
potrebbe essere possibile?
oppure
{Small,
Large}
{Medium,
Large}
Size
{Small}
Size
{Medium}
Data Mining - S. Orlando
13
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)
•  La scala di variazione dell’attributo viene suddiviso in N
intervalli, ciascuno associato ad un attributo ordinale
•  Trasforma il data set, assegnando ad ogni valore
dell’attributo continuo l’intervallo in cui esso valore cade
•  Statico – discretizzato a priori prima della trasformazione
•  Dinamico – le suddivisioni possono essere trovati tramite
equal interval partitioning, equal frequency partitioning, o
distance-based clustering.
Data Mining - S. Orlando
14
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, ciascuno
contenente approssimativamente lo stesso numero di campioni
–  Buon metodo
  Cluster analysis partitioning:
–  Può risultare costoso
Data Mining - S. Orlando
15
Discretizzazione
  Dati con 2 attributi X, Y continui
  Discretizzazione di X
Data
Equal frequency
Equal interval width
K-means (clustering)
Data Mining - S. Orlando
16
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)
Data Mining - S. Orlando
17
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:
GINI(t) = 1− ∑[ p( j | t)]2
j
(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
Data Mining - S. Orlando
18
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
Data Mining - S. Orlando
19
Esempi relativi a Gini Index
GINI(t) = 1− ∑[ p( j | t)]2
j
P(C1) = 0/6 = 0
€
P(C2) = 6/6 = 1
Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0
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
Data Mining - S. Orlando
20
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:
k
GINIsplit
ni
= ∑ GINI(i)
i=1 n
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
Data Mining - S. Orlando
21
Calcolare il GINI Index per attributi binari
  Suddivisione in due partizioni
  Si cercano partizioni più grandi e più pure possibili.
B?
Yes
Node N1
No
Node N2
Data Mining - S. Orlando
22
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
Multi-way split
Two-way split
(bisogna trovare il migliore
partizionamento dei valori)
Data Mining - S. Orlando
23
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
  Per ciascun valore di splitting abbiamo 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.
Data Mining - S. Orlando
24
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
Sorted Values
Split Positions
Data Mining - S. Orlando
25
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:
Entropy(t) = −∑ p( j | t)log p( j | t)
j
(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
Data Mining - S. Orlando
26
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
Data Mining - S. Orlando
27
Esempi relativi all’Information Gain (Entropia)
Entropy(t) = −∑ p( j | t)log 2 p( j | t)
j
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
Data Mining - S. Orlando
28
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):
GAIN split
 k n

= Entropy(t) − ∑ i Entropy(i)
 i=1 n

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
Data Mining - S. Orlando
29
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:
GainRATIOsplit
GAIN Split
=
SplitINFO
k
SplitINFO = −∑
i=1
ni
n
log i
n
n
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 all’aumento del numero di piccole partizioni
bilanciate!
⇒ l’aumento di SplitINFO penalizza Gain Ratio
–  Usato in C4.5
Data Mining - S. Orlando
30
Algoritmo C4.5 - like
Data Mining - S. Orlando
31
Decision Tree: Web Mining Application
  Prima di applicare tecniche di Web Mining, es.: per sintetizzare un
Web recommender, dobbiamo pulire l’user log
–  dobbiamo distinguere tra accessi fatto da umani e da robot/crawler,
per poter poi rimuovere i secondi in modo automatico
  Nel log di sopra ogni linea è un accesso, e i vari accessi sono
segmentati rispetto all’utente (IP address)
–  nota Requested e Referrer/From page
Data Mining - S. Orlando
32
Decision Tree: Web Mining Application
  Ogni sessione è un grafo diretto
–  nodi: pagine
–  archi” hyperlink
Data Mining - S. Orlando
33
Decision Tree: Web Mining Application
depth
breadth
Grafo della sessione 1
Data Mining - S. Orlando
34
Decision Tree: Web Mining Application
  Estrazione di feature caratterizzanti le varie sessioni
Data Mining - S. Orlando
35
Decision Tree: Web Mining Application
  Costruzione di un dataset (Web log) supervisionato
–  2916 record
–  50% classe 1 (Web Robot)
–  50% classe 0 (Human users)
  10% training dataset
  90% test dataset
  Costruzione di un decision tree per poter classificare le
sessioni, e rimuovere le sessioni generate dai robot
Data Mining - S. Orlando
36
Decision Tree: Web Mining Application
  I robot fanno ricerche con “breadth”
grandi e “depth” piccolo
  Gli utenti umani fanno ricerche con
“breadth” piccolo e “depth” più
grandi
–  navigazioni focalizzate e
profonde
  I robot non scaricano le immagini
  Le sessioni dei robot sono molto
lunghe rispetto a quelle degli umani
  I robot ripetono le richieste quando
seguono i link per tornare indietro,
mentre gli umani non lo fanno grazie
alla cache dei browser
Data Mining - S. Orlando
37
Decision Boundary
  Le linee di confine tra due regioni vicine create dal classificatore sono anche
chiamate decision boundary
  Nei decision tree le decision boundary sono parallele agli assi
  Ogni test condition coinvolge un singolo attributo alla volta
Data Mining - S. Orlando
38
Oblique Decision Trees
x+y<1
Class = +
Class =
  Difficile derivare un decision tree accurato dal training set sopra illustrato
  Possibile soluzione
  Condizioni di test che coinvolgono attributi multipli
  Aumenta la complessità per individuare il test ottimo
Data Mining - S. Orlando
39
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)
  L’overfitting è un problema comune a tutti i classificatori, non è
solo un problema dell’albero di decisione
Overfitting
Generalized Errors
Training/Apparent
Errors
Data Mining - S. Orlando
40
Overfitting: Pre-Pruning
  Pre-Pruning (Early Stopping Rule)
–  Stop dell’algoritmo prima che esso produca un albero fullygrown
–  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).
Data Mining - S. Orlando
41
Overfitting: Post-Pruning
  Post-Pruning
–  Rimuovi nodi/rami da un albero completo (“fully grown” tree)
•  Elimina i nodi in modo bottom-up
•  Un sottoalbero può essere sostituito con
–  un nodo foglia (subtree replacement)
–  il cammino più frequentemente scelto (subtree raising)
–  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
Data Mining - S. Orlando
42
Overfitting: Post-Pruning
Data Mining - S. Orlando
43
Presentation: decisiontree
Data Mining - S. Orlando
44
Presentation: decisiontree
Data Mining - S. Orlando
45
Estrarre regole di classificazione da alberi
  Rappresenta la conoscenza nella forma di regole IFTHEN
–  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”
Data Mining - S. Orlando
46
Le regole possono essere semplificate
  In generale le regole sono
–  mutuamente esclusive ed esaustive
  Ma possiamo fare del pruning:
–  semplificare o eliminare
  Regola iniziale:
–  (Refund=No) ∧ (Status=Married) → No
  Regola semplificata
–  (Status=Married) → No
  Problemi:
–  le regole non sono più mutuamente esclusive ed esaustive
–  aggiungi una regola di default
–  dai un punteggio ad ogni regola
Data Mining - S. Orlando
47
Bayesian Classification: Perchè?
  Incremental: Ogni nuova osservazione può essere
usata per migliorare la conoscenza pregressa ed
aggiornare il modello.
  Probabilistic: Può elaborare e produrre diverse
ipotesi con delle probabilità associate.
  Standard: Generalmente sono un punto di
riferimento per valutare nuovi algoritmi
Data Mining - S. Orlando
48
Classificatori Bayesiano
  Metodo probabilistico (Bayesian) per risolvere
il problema della classificazione
C
  Probabilità condizionali:
A
  Teorema di Bayes :
Data Mining - S. Orlando
49
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?
Data Mining - S. Orlando
50
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?
Data Mining - S. Orlando
51
Classificatori Bayesiano
P(A1 A2 … An | C)P(C)
P(C | A1 A2 … An ) =
P(A1 A2 … An )
€
Data Mining - S. Orlando
52
Classificatore Naïve Bayes
P(A1 A2 … An | Cj)P(Cj)
P(Cj | A1 A2 … An ) =
P(A1 A2 … An )
€
Data Mining - S. Orlando
53
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/7
P(Refund=Yes | Yes)=0
Data Mining - S. Orlando
54
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 varianza)
•  Una volta che la distribuzione di probabilità è nota, possiamo
usarla per stimare la probabilità condizionale P(Ai|C)
Data Mining - S. Orlando
55
Come stimiamo le probabilità dai dati?
  Distribuzione normale:
–  Una per ciascuna coppia (Ai,cj)
  Per (Income, Class=No):
–  Se Class=No
= 110
•  σ2ij (varianza nel campione) = 2975
•  µij (media nel campione)
Data Mining - S. Orlando
56
Esempio di classificatore Naïve Bayes
Dato il seguente test:
P(Refund=Yes|No) = 3/7
P(Refund=No|No) = 4/7
P(Refund=Yes|Yes) = 0
P(Refund=No|Yes) = 1
P(Marital Status=Single|No) = 2/7
P(Marital Status=Divorced|No) = 1/7
P(Marital Status=Married|No) = 4/7
P(Marital Status=Single|Yes) = 2/3
P(Marital Status=Divorced|Yes) = 1/3
P(Marital Status=Married|Yes) = 0
Per Income:
Se No:
Se Yes:
media = 110
varianza = 2975
media = 90
varianza = 25
 
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 = 0
P(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
Data Mining - S. Orlando
57
Esempio di classificatore Naïve Bayes
Test sugli attributi:
A: attributes
M: mammals
Non-M: non-mammals
P(A|M)P(M) > P(A|N)P(N)
=> Mammals
Data Mining - S. Orlando
58
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
Data Mining - S. Orlando
59
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
•  Approcci Tipici
•  k-nearest neighbor
•  Locally weighted regression
•  Case-based reasoning
Data Mining - S. Orlando
60
K-nearest neighbor
  Istanze come vettori a n
dimensioni, ad esempio 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
dall’insieme delle istanze
  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 a
maggioranza) Data Mining - S. Orlando 61
K-nearest neighbor
I K-nearest neighbors di un’istanza x sono i punti che
hanno le K più piccole distanze da x
Data Mining - S. Orlando
62
1 nearest-neighbor
Voronoi Diagram
 
A causa del costo della classificazione, è necessario indicizzare/precomputare
informazioni per velocizzare il calcolo dei K vicini più prossimi
Data Mining - S. Orlando
63
Classificatore K-nearest neighbor
  Calcola la distanza tra due punti:
–  Distanza Euclidea
  Distanza per pesare i voti dei k vicini
–  fattore di peso, w = 1/d2
–  pesa il voto in accordo alla distanza
Data Mining - S. Orlando
64
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, e può
portare a errori di classificazione
Data Mining - S. Orlando
65
Case-Based Reasoning
  Anche questo metodo usa: lazy evaluation + analisi delle istanze
più simili
  Differenza: Le istanze non sono “punti in uno 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
Data Mining - S. Orlando
66
Lazy (pigro) vs. eager (impaziente) evaluation
  Instance-based learning: lazy evaluation
  Decision-tree and Bayesian classification: eager evaluation
  Differenze più importanti
–  I metodi lazy considerano l’istanza della query q da classificare
assieme alla decisione sulla generalizzazione rispetto al dataset D di
training
–  I metodi eager non possono farlo, poiché nel momento in cui vedono la
query q hanno già scelto approssimazioni globali per costruire il
modello
  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
Data Mining - S. Orlando
67
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
Class=Yes
Class=No
a: TP (true positive)
ACTUAL
CLASS
Class=Yes
a
b
Class=No
c
d
b: FN (false negative)
c: FP (false positive)
d: TN (true negative)
Conteggi: a, b, c, e d anche esprimibili in percentuale
Data Mining - S. Orlando
68
Metriche per valutare i classificatori
PREDICTED CLASS
Class=Yes
ACTUAL
CLASS
Class=No
Class=Yes
a
(TP)
b
(FN)
Class=No
c
(FP)
d
(TN)
  Metrica più usata:
Error Rate = 1 - Accuracy
Data Mining - S. Orlando
69
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:
– 
– 
– 
– 
Class=Yes  transazione di carta di credito fraudolenta
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 (Class=No)
ha un’accuratezza dello 0.99 !!!
–  ma il modello è cattivo ⇒ ha un rate di FN dell’1%, ma questo 1%
include TUTTE le transazioni fraudolente a cui siamo interessati
PREDICTED CLASS
Class=Yes
ACTUAL
CLASS
Class=No
Class=Yes
0%
(TP)
1%
(FN)
Class=No
0%
(FP)
99%
(TN)
Data Mining - S. Orlando
70
Altre misure
  Necessarie 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)
(esempio TPR=0)
–  frazione di veri positivi individuati, rispetto a tutti i positivi
  True negative rate (TNR) o specificità
–  TNR = TN / (TN + FP)
(esempio TNR=99/99=1)
–  frazione di veri negativi individuati, rispetto a tutti i negativi
  Recall e Precision
–  misure tipiche dell’Information Retrieval
Recall:
r = TP / (TP + FN)
Precision:
p = TP / (TP + FP)
 sensibilità
in IR la quantità TP+FP corrisponde ai documenti ritenuti rilevanti e
ritornati dal motore di ricerca
Data Mining - S. Orlando
71
Metodi di valutazione dei classificatori
  Vogliamo valutare la bontà di un algoritmo di classificazione
–  Quanto è accurato nel predire la classe di un nuovo campione?
  Continuare ad usare il training set per valutare l’accuratezza di un
algoritmo di classificazione può generare errori
–  Stime troppo ottimistiche
–  I modelli ottenuti sono super specializzati rispetto ai dati di training
(overfitting)
–  Holdout è il metodo più comune per evitare stime sbagliate
  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
Data Mining - S. Orlando
72
Metodi di valutazione
  Random subsampling
–  Holdout ripetuto
–  Ad ogni iterazione, una certa proporzione è selezionata in modo random per il
set training, il resto dei dati è usato per il testing
–  acci : accuratezza del modello all’iterazione i-esima
–  accsub = Σi=1,k acci/k
–  Holdout ripetuto ancora non ottimo: overlapping tra i set di test
  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
•  Valore tipico per k nel k-fold è 10
–  Leave-one-out: Cross-validation con k=N
  Bootstrap
–  Training: Sampling with replacement
–  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
Data Mining - S. Orlando
73
Ensemble methods
  Ensemble methods:
–  l’unione fa la forza
–  uso una combinazione di modelli
  Bagging
  Boosting
Data Mining - S. Orlando
74
Bagging
  Bootstrap aggregation
  eseguo k bootstrap sample dal dataset
  da ognuno creo un classificatore
  per classificare un oggetto mai visto prima
–  raccolgo le previsioni di ciascun classificatore
–  prendo per buona quella più popolare
  Ha sempre una accuratezza migliore di un classificatore
standard
  Motivazione:
–  riduce la varianza di un classificatore
Data Mining - S. Orlando
75
Boosting
  Creo un classificatore a partire dai dati iniziali
  Viene assegnato un peso (aumentato il peso) degli oggetti che non
sono classificati correttamente dal classificatore
  Viene creato un altro classificatore sul nuovo dataset “pesato”
  Si ripete il processo fino ad ottenere k classificatori
  Per classificare un oggetto mai visto
–  chiedo a tutti i classificatori
–  assegno un peso ad ogni classificatore in funzione della sua
accuratezza
Data Mining - S. Orlando
76
Ada Boost
 
 
 
 
 
 
Faccio un sampling con replacement del dataset
creo un nuovo classificatore
incremento il peso degli oggetti classificati male
decremento il peso degli oggetti classificati bene
ripeto il procedimento
N.B.: durante il sampling un oggetto ha probabilità di
essere scelto pari al suo peso !
Data Mining - S. Orlando
77
Bagging vs. Boosting
  Boosting tende ad essere più accurato
  Ma Bagging è meno suscettibile a over-fitting
Data Mining - S. Orlando
78
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
Data Mining - S. Orlando
79
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
Data Mining - S. Orlando
80
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
Data Mining - S. Orlando
81
Conclusioni
  La Classificazione è stato un problema studiatissimo (soprattutto
in statistica, machine learning)
  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..
Data Mining - S. Orlando
82