• Non ci sono risultati.

Apprendimento Automatico Metodi Bayesiani - Naive Bayes Fabio Aiolli 13 Dicembre 2017

N/A
N/A
Protected

Academic year: 2021

Condividi "Apprendimento Automatico Metodi Bayesiani - Naive Bayes Fabio Aiolli 13 Dicembre 2017"

Copied!
18
0
0

Testo completo

(1)

Apprendimento Automatico

Metodi Bayesiani - Naive Bayes

Fabio Aiolli

13 Dicembre 2017

(2)

Classificatore Naive Bayes

Una delle tecniche pi` u semplici e popolari Quando usarlo:

insiemi di dati di dimensione abbastanza grande

attributi che descrivono le istanze sono condizionalmemente indipendenti data la classificazione

Applicazione su cui ha avuto successo:

Diagnosi

Classificazione di documenti testuali

(3)

Classificatore Naive Bayes

Funzione target f : X → V , con istanze x descritte da attributi ha

1

, a

2

, . . . , a

n

i.

Il valore pi` u probabile di f (x ) ` e:

v

MAP

= arg max

vj∈V

P(v

j

|a

1

, a

2

, . . . , a

n

)

= arg max

vj∈V

P(a

1

, a

2

, . . . , a

n

|v

j

)P(v

j

) P(a

1

, a

2

, . . . , a

n

)

= arg max

vj∈V

P(a

1

, a

2

, . . . , a

n

|v

j

)P(v

j

) Assunzione Naive Bayes:

P(a

1

, a

2

, . . . , a

n

|v

j

) = Y

i

P(a

i

|v

j

)

(4)

Classificatore Naive Bayes

Mettendo tutto assieme:

v

MAP

= arg max

vj∈V

P(a

1

, a

2

, . . . , a

n

|v

j

)P(v

j

) P(a

1

, a

2

, . . . , a

n

|v

j

) = Y

i

P(a

i

|v

j

) Classificatore Naive Bayes:

v

NB

= arg max

vj∈V

P(v

j

) Y

i

P(a

i

|v

j

)

(5)

Algoritmo Naive Bayes

Naive Bayes Learn(esempi) For each valore target v

j

P(v ˆ

j

) ← stima di P(v

j

) su esempi

For each valore di attributo a

i

di ogni attributo a, P(a ˆ

i

|v

j

) ← stima di P(a

i

|v

j

) su esempi

return P(v ˆ

j

), ˆ P(a

i

|v

j

) ∀i , j Classify New Instance(x)

v

NB

= arg max

vj∈V

P(v ˆ

j

) Q

i

P(a ˆ

i

|v

j

)

return v

NB

(6)

Ri-giochiamo a tennis?

E una giornata adatta per una partita di tennis? `

(7)

Ri-giochiamo a tennis?

Consideriamo di nuovo il problema Giocare a Tennis gi` a incontrato in precedenza

Consideriamo una nuova istanza:

<O = sunny, T = cool, H = high, W = strong>

Vogliamo calcolare:

v

NB

= arg max

vj∈V

P(v

j

) Y

i

P(a

i

|v

j

)

P(yes)P(sunny |y )P(cool |yes)P(high|yes)P(strong |yes) = 0.005 P(no)P(sunny |no)P(cool |no)P(high|no)P(strong |no) = 0.021

→ v

NB

= no

(8)

Naive Bayes: considerazioni aggiuntive

L’assunzione di indipendenza condizionale ` e spesso violata P(a

1

, a

2

, . . . , a

n

|v

j

) = Y

i

P(a

i

|v

j

)

... ma sembra funzionare comunque. Perch´ e? Notare che non ` e necessario stimare correttamente la probabilit` a a posteriori ˆ P(v

j

|x); ` e sufficiente che:

arg max

vj∈V

P(v ˆ

j

) Y

i

P(a ˆ

i

|v

j

) = arg max

vj∈V

P(v

j

) Y

i

P(a

i

|v

j

)

la probabilit` a a posteriori calcolata da Naive Bayes ` e spesso vicina a 1

o 0 anche se non dovrebbe

(9)

Naive Bayes: considerazioni aggiuntive

Cosa succede se nessun esempio di apprendimento con valore target v

j

possiede attributo a

k

? In tal caso:

P(a ˆ

k

|v

j

) = 0, e... ˆ P(v

j

) Y

i

P(a ˆ

i

|v

j

) = 0

Una soluzione tipica ` e la m-stima Bayesiana per ˆ P(a

i

|v

j

):

P(a ˆ

i

|v

j

) ← n

c

+ mp n + m dove

n ` e il numero di esempi di apprendimento per cui v = v

j

n

c

` e il numero di esempi di apprendimento per cui v = v

j

e a = a

i

p ` e la stima a priori per ˆ P(a

i

|v

j

), di solito 1/|a

i

|

m ` e il peso dato a priori (cio` e il numero di esempi ”virtuali”)

(10)

Esempio di applicazione: Classificazione di documenti testuali

apprendere quali documenti sono di interesse apprendere a classificare pagine web per argomento spam / no spam

. . .

Il classificatore Naive Bayes costituisce una delle tecniche pi` u utilizzate in questi contesti

Quali attributi usare per rappresentare documenti testuali?

(11)

Esempio di applicazione: Classificazione di documenti testuali

Concetto target: Interessante? : Documento → {⊕, }

Rappresentare ogni documento tramite un vettore di parole. Un attributo per ogni posizione di parola nel documento

Apprendimento: usare gli esempi per stimare:

P(⊕), P( ), P(doc|⊕), P(doc| )

Assunzione di indipendenza condizionale di Naive Bayes:

P(doc|v

j

) =

lunghezza(doc)

Y

i

P(a

i

= w

k

|v

j

)

dove P(a

i

= w

k

) ` e la prob che la parola in posizione i sia w

k

, dato v

j

.

Una assunzione addizionale: P(a

i

= w

k

|v

j

) = P(a

m

= w

k

|v

j

), ∀i , m

(12)

Esempio di applicazione: Classificazione di documenti testuali

Occorre quindi stimare ”solo” le P(v

j

) ∀j e le P(w

k

|v

j

) ∀k, j

Possiamo utilizzare una m-stima con priori uniforme e m uguale alla dimensione del vocabolario.

P(w ˆ

k

|v

j

) = n

k

+ 1 n + |vocabolario|

dove

n ` e il numero totale di posizioni di parole in tutti i documenti di training aventi di classe v

j

n

k

` e il numero di volte che la parola w

k

si trova in queste posizioni

|Vocabolario| ` e il numero totale di parole distinte trovate nel training

set

(13)

Esempio di applicazione: Classificazione di documenti

testuali

(14)

Algoritmo Expectation Maximization (EM)

Quando utilizzarlo:

dati solo parzialmente osservabili

clustering non-supervisionato (valore target non osservabile)

apprendimento supervisionato (alcuni attributi con valori mancanti) Alcuni esempi:

apprendimento Reti Bayesiane

apprendimento di modelli di Markov nascosti (Hidden Markov Models)

(15)

Esempio di EM

Assumiamo che ogni istanza x sia generata:

scegliendo una delle Gaussiane con prababilit` a uniforme

generando una istanza a caso secondo la Gaussiana scelta

(16)

EM per stimare k-medie

Date:

istanza da X generate da una mistura di k Gaussiane

medie hµ

1

, . . . , µ

k

i sconosciute delle k Gaussiane (assumiamo σ

2

conosciuto e uguale per tutte le Gaussiane).

non si sa quale istanza x

i

` e stata generata da quale Gaussiana Determinare:

stime maximum-likelihood di hµ

1

, . . . , µ

k

i

Ogni istanza pu` o essere pensata nella forma y

i

= hx , z

i 1

, z

i 2

i (caso k = 2), dove:

z

ij

` e 1 se l’esempio i ` e stato generato dalla Gaussiana j , 0 altrimenti x

i

osservabile

z

ij

non osservabili

(17)

EM per stimare k-medie (k = 2)

Algoritmo EM: scegliere a caso l’ipotesi h = hµ

1

, µ

2

i, poi ripetere:

Passo E: Calcola il valore atteso E [z

ij

] di ogni variabile non osservabile z

ij

, assumendo valga l’ipotesi corrente h

E [z

ij

] = p(x = x

i

|µ = µ

j

) P

2

n=1

p(x = x

i

|µ = µ

n

)

= e

σ21 (xi−µj)2

P

2

n=1

e

σ21 (xi−µn)2

Passo M: Calcola la nuova ipotesi maximum-likelihood h, assumendo che il valore preso da ogni variabile non osservabile z

ij

sia il suo valore atteso (calcolato sopra)

π

ij

= E [z

ij

] P

m

i =1

E [z

ij

] and µ

j

m

X

i =1

π

ij

x

i

(18)

Recap

Argomenti:

Teorema di Bayes Ipotesi MAP, ML

Classificazione pi` u probabile Intro Naive Bayes

Naive Bayes per documenti testuali Algoritmo EM

Esercizi:

Implementare NB su documenti testuali (per esempio ”Twenty User Newsgroups”, http://scikit-learn.org/stable/datasets/

twenty_newsgroups.html)

Confrontarlo con altri classificatori

Riferimenti

Documenti correlati

Neural Networks: nonlinear/linear neurons, number of hidden units, η, other learning parameters we have not discussed (e.g., momentum µ) Hold-out or Cross-Validation can be used

Supponendo che due mammografie successive sulla stessa persona diano risultati indipendenti (irreale, ma semplifica i calcoli…), valutare la. probabilità di essere malati nel caso

Neural Networks: nonlinear/linear neurons, number of hidden units, η, other learning parameters we have not discussed (e.g., momentum µ) Hold-out or Cross-Validation can be used

Supponendo una distribuzione a priori uniforme sulle ipotesi corrette in H, Seleziona una qualunque ipotesi da VS , con probabilit` a uniforme Il suo errore atteso non ` e peggiore

Transductive feature extraction with non-linear kernels Spectral Kernel Learning. Multiple

EasyMKL (Aiolli and Donini, 2015) is able to combine sets of weak kernels by solving a simple quadratic optimization problem with.

WIKIPEDIA: Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi elementari.. Il termine deriva dalla trascrizione latina del

Invece i metodi acquisisci, visualizza e minuti sono stati dichiarati public e dunque possono essere usati all'esterno della class, come abbiamo precedentemente visto. Normalmente