Naive bayes Course of Machine Learning Master Degree in Computer Science University of Rome Tor Vergata Giorgio Gambosi a.a. 2018-2019 1
Features numerose In presenza di numerose features, definire un modello generativo può risultare inaccettabilmente costoso. La dimensione del training set cresce esponenzialmente con il numero di features, per permettere di considerare tutte le possibili combinazioni di valori delle features stesse In presenza di d features, ad esempio binarie, in un classificatore binario, sarà necessario stimare approssimativamente 2 d+1 parametri: le probabilità p ij = p(x i C j). 2
Esempio: antispam per email Esempio di text classifier: cerca di individure e-mail spam. Nell ipotesi di avere un training set (messaggi marcati come spam o non-spam), le features da associare ad un messaggio saranno le parole che esso contiene (o non contiene). Un messaggio è rappresentato da un vettore di features x di dimensione pari al numero di termini di un dizionario: se il messaggio contiene l i-esimo termine del dizionario allora x i = 1 (o x i è pari al numero di occorrenze del termine), altrimenti x i = 0. 3
Esempio: antispam per email Se il dizionario contiene 10.000 termini e si rappresenta la sola occorrenza o meno di ogni termine (per cui il vettore è binario), allora N = 2 10000. Questo comporta la necessità di stimare 2(2 10000 1) parametri per p(x C 1) e altrettanti per p(x C 2). 4
Classificatori Naive Bayes Le features x i sono condizionalmente indipendenti rispetto alle classi C 1, C 2. Per ogni coppia i, j con 1 i, j d, i j e per k {1, 2} Sotto questa ipotesi, abbiamo che e quindi p(x i x j, C k ) = p(x i C k ) p(x i, x j C k ) = p(x i x j, C k )p(x j C k ) = p(x i C k )p(x j C k ) p(x C k ) = p(x 1,..., x d C k ) = p(x i C k ) e i parametri da stimare sono ϕ ik = p(x i = 1 C k ) per i = 1,..., d e k = 1, 2, per numero totale di parametri pari a 2d. Inoltre, sarà necessario stimare π = p(c 1). 5
Classificatori Naive Bayes Rappresentazione grafica (reti bayesiane) Nodi: variabili casuali Archi: relazioni di dipendenza Ombreggiatura: variabili visibili C i x 1 x 2 x d 6
ML e naive bayes Dato un training set (x i, y i), i = 1,..., n, possiamo scrivere la corrispondente verosimiglianza come L = = n p(x i, y i) n p(x i y i)p(y i) n = p(y i) p(x ij y i) = j=1 n π y i (1 π) 1 y i j=1 ϕ x ij y i j1 (1 ϕ j1) (1 x ij )y i ϕ x ij (1 y i ) j2 (1 ϕ j2) (1 x ij )(1 y i ) 7
ML e naive bayes E la log-verosimiglianza quindi come l = = n n d log p(y i) + log p(x ij y i) j=1 n n y i log π + (1 y i) log(1 π) n d n d + x ijy i log ϕ j1 + (1 x ij)y i log(1 ϕ j1) j=1 j=1 n d n d + x ij(1 y i) log ϕ j2 + (1 x ij)(1 y i) log(1 ϕ j2) j=1 j=1 8
ML e naive bayes Massimizziamo la log-verosimiglianza annullando la relativa derivata. Per π questo dà n l π = n y i π 1 y i = n1 π π n2 1 π ponendo la derivata pari a 0 otteniamo quindi π = n1 = n1 n 1 + n 2 n 9
ML e naive bayes Per ϕ j1 abbiamo: l ϕ j1 = n d j=1 x ijy i ϕ j1 n d j=1 (1 x ij)y i = nj1 n1 nj1 1 ϕ j1 ϕ j1 1 ϕ j1 dove n jk è il numero di elementi del training set nella classe C k aventi la j-esima componente x j = 1 e n k n jk è il numero di elementi aventi la j-esima componente x j = 0. Ponendo la derivata pari a 0 otteniamo ϕ j1 = Allo stesso modo, otteniamo per ϕ j2 n j1 n j1 + (1 n j1) = nj1 n 1 ϕ j2 = nj2 n 2 10
ML e naive bayes Per classificare x si calcolano p(c 1 x) e p(c 2 x), assegnando x alla classe di maggiore probabilità. Dato che p(c 1 x) = p(x C1)p(C1) d = p(xi C1)p(C1) p(x) p(x) e p(c 2 x) = p(x C2)p(C2) p(x) per classificare x è sufficiente confrontare p(x i C 1)p(C 1) = π ϕ x i i1 (1 ϕi1)1 x i = n1 n d = p(xi C2)p(C2) p(x) ( ) xi ( ) ni1 1 1 xi ni1 e p(x i C 2)p(C 2) = (1 π) ϕ x i i2 (1 ϕi2)1 x i = n2 n n 1 n 1 ( ) xi ( ) ni2 1 1 xi ni2 n 2 n 2 11
ML e naive bayes In definitiva, è sufficiente confrontare e 1 n d 1 1 1 n d 1 2 n x i i1 (1 ni1)1 x i n x i i2 (1 ni2)1 x i 12
Esempio docid termini in c = Cina? training set 1 Cinese Pechino Cinese yes 2 Cinese Cinese Shanghai yes 3 Cinese Macao yes 4 Tokyo Giappone Cinese no test set 5 Cinese Cinese Cinese Tokyo Giappone? 13
Esempio: stima parametri Priors: P (c) = π = 3/4 e 1 π = 1/4 Probabilità condizionate: ˆP (Cinese c) = 3/3 = 1 ˆP (Shanghai c) = ˆP (Macao c) = 1/3 ˆP (Tokyo c) = ˆP (Giappone c) = 0 ˆP (Cinese c) = 1 ˆP (Tokyo c) = ˆP (Giappone c) = 1 ˆP (Shanghai c) = ˆP (Macao c) = 0 14
Esempio Classificazione ˆP (c d 5) 1 0 0 1( 1/3) (1 1/3) = 0 ˆP (c d 5) 1 1 1 (1 0) (1 0) = 1 Classificato come non Cina Ma se avessi Cinese Cinese Cinese Tokyo Macao? 15
Smoothing Pericolo: valori nulli. Ad esempio, se n k1 = 0 (nel training set non compare nessun elemento di C 1 con feature x k = 1), per classificare un elemento con x k = 1 abbiamo 1 n d 1 1 n x i i1 (1 ni1)1 x i = 0 e il modello non classificherà mai tale elemento in C 1. Se al tempo stesso n k2 = 0 allora, per classificare lo stesso elemento, 1 n d 1 2 Quindi la classificazione è impossibile. n x i i2 (n2 ni2)1 x i = 0 16
Smoothing In generale, sia z IR k. Dato un training set z 1,..., z n, la probabilità ϕ i = p(z = i) stimata con ML risulta ϕ j = nj n dove n j è il numero di elementi z = j: se n j = 0 allora ϕ j = 0. Questo equivale ad escludere che la caratteristica z = j, non osservata nel training set, possa mai comparire. 17
Smoothing e classificatori binari Laplace smoothing: assegna valori non nulli a probabilità stimate pari a 0. Applicazione di smoothing: Anche in questo caso ϕ j1 = nj1 + 1 n 1 + 2 ϕ j = nj + 1 n + k d ϕ j = 1 j=1 ϕ j2 = nj2 + 1 n 2 + 2 π = n1 + 1 n + 2 18
Esempio docid termini in c = Cina? training set 1 Cinese Pechino Cinese yes 2 Cinese Cinese Shanghai yes 3 Cinese Macao yes 4 Tokyo Giappone Cinese no test set 5 Cinese Cinese Cinese Tokyo Giappone? 19
Esempio: stima parametri Priors: P (c) = π = 3/4 e 1 π = 1/4 Probabilità condizionate: ˆP (Cinese c) = (3 + 1)/(3 + 2) = 4/5 ˆP (Shanghai c) = ˆP (Macao c) = (1 + 1)/(3 + 2) = 2/5 ˆP (Tokyo c) = ˆP (Giappone c) = (0 + 1)/(3 + 2) = 1/5 ˆP (Cinese c) = (1 + 1)/(1 + 2) = 2/3 ˆP (Tokyo c) = ˆP (Giappone c) = (1 + 1)/(1 + 2) = 2/3 ˆP (Shanghai c) = ˆP (Macao c) = (0 + 1)/(1 + 2) = 1/3 20
Esempio Classificazione ˆP (c d 5) 4/5 1/5 1/5 (1 2/5) (1 2/5) 0.0012 ˆP (c d 5) 2/3 2/3 2/3 (1 1/3) (1 1/3) 0.13 21
Esempio: estensione Consideriamo il numero di occorrenze Priors: P (c) = π = 3/4 e 1 π = 1/4 Probabilità condizionate: ˆP (Cinese c) = (5 + 1)/(8 + 6) = 6/14 = 3/7 ˆP (Tokyo c) = ˆP (Giappone c) = (0 + 1)/(8 + 6) = 1/14 ˆP (Cinese c) = (1 + 1)/(3 + 6) = 2/9 ˆP (Tokyo c) = ˆP (Giappone c) = (1 + 1)/(3 + 6) = 2/9 I denominatori sono (8 + 6) e (3 + 6) in quanto il numero di occorrenze di termini in c e c è 8 e 3, rispettivamente, e in quanto ci sono 6 termini nel vocabolario 22
Esempio Classificazione ˆP (c d 5) 4/5 1/5 1/5 (1 2/5) (1 2/5) 0.0012 ˆP (c d 5) 2/3 2/3 2/3 (1 1/3) (1 1/3) 0.13 23