Classificazione Bayesiana Selezionare, dato un certo pattern x, la classe ci che ha, a posteriori, la massima probabilità rispetto al pattern: P(C=c i x)>p(c=c j x) j i Teorema di Bayes (TDB): P(A B) = P(B A)P(A) P(B) Fornisce un metodo per calcolare la probabilità di un certo evento casuale A sapendo che si è verificato un evento B quando sono note le probabilità a priori di A e B e la probabilità di B condizionato da A. 1
Classificazione Bayesiana Nella classificazione: P(c j x ) = P( x c j P( x) )P(c j ) Dato che vogliamo sapere la classe c j che massimizza P(c j x), ci basta trovare la classe c j che massimizza P(x c j ) P(c j ) 2
Esempio Caso di istanze descritte da un solo attributo Due classi: il paziente ha un tipo di epatite; il paziente non ha una epatite. Attributo: risultato di un esame al fegato, due valori: + (epatite) e (no epatite). Dai risultati di laboratorio sappiamo: P (epatite) = 0.008 ; P (no epatite) = 0.992 P (+ epatite) = 0.98 ; P (- epatite) = 0.02 P (+ no epatite) = 0.03 ; P (- no epatite) = 0.97 3
Esempio Osserviamo che, secondo il laboratorio, un nuovo paziente è risultato + e vogliamo classificarlo (ha l epatite oppure no?). Dal TDB ( tralasciando il denominatore) abbiamo: P (+ epatite) * P (epatite) = 0.078 P (+ no epatite) * P (no epatite) = 0.298 quindi è più probabile che il paziente non abbia una epatite. 4
Classificazione Bayesiana Nel caso in cui l istanza x sia descritta da piu attributi, vogliamo trovare la classe C j tale che P(c i X 1 =x 1,X 2 =x 2,,X n =x n ) sia massimo, ovvero vogliamo compiere una operazione di belief revision Per brevita si scrive P(c i x 1,x 2,,x n ) Applicando il teorema di Bayes, ciò equivale a trovare la classe che massimizza P(x 1,x 2,,x n c i ) P(c i ) 5
Classificazione Baysiana Nel caso di n attributi, il problema e stimare P(x 1,x 2,,x n c i ) dai dati a disposizione Approccio diretto: P(x 1,x 2,,x n c i ) e dato dal numero di istanze della classe c j uguali a x 1,x 2,,x n che compaiono nei dati diviso il numero di istanze della classe c i. Problemi: Per poter calcolare P(x 1,x 2,,x n c i ), l istanza x 1,x 2,,x n deve apparire piu volte nei dati => occorrono molti dati Non posso classificare istanze non viste ovvero non presenti nei dati di training => nessuna generalizzazione! 6
Classificazione Bayesiana Per superare questi problemi si fa l ipotesi semplificativa che gli attributi osservati siano indipendenti (ipotesi Naive Bayes) data la classe. Dati due eventi casuali a e b (nel nostro caso saranno gli attributi), se a e b sono indipendenti data la classe la probabilità che a e b siano verificati simultaneamente dato c P(a,b c) è data da P(a c) P(b a,c)=p(a c) P(b c) Metodo Naive Bayes: si utilizza il teorema di Bayes facendo l ipotesi di indipendenza degli attributi 7
Classificazione Naive Bayes Nel nostro caso P(x 1,x 2,,x n c i )= P(x 1 c i ) P(x 2 c i )... P(x n c i ) Quindi con il metodo Naive Bayes a x viene assegnata la classe c ottenuta con la seguente formula c = argmax P(c c j j ) n k= 1 P(x k c j ) 8
Classificazione Naive Bayes E come avere la rete Bayesiana C! X1! X2!.! Xn! 9
Classificazione Naive Bayes Nella classificazione Naive Bayes la fase di apprendimento serve per la stima delle probabilità P(x k c j ) e P(c j ) della formula precedente per tutti i valori di x k e c j. Problema dell apprendimento dei parametri di una rete bayesiana di struttura nota da esempi completi I parametri sono calcolati mediante la frequenza relativa P(c i ) = proporzione di esempi del training set che appartengono a c i P(x k c i ) =rapporto tra gli esempi nel training set appartenenti alla classe c i che hanno X k =x k e gli esempi nel training set che appartengono alla classe c i 10
Classificazione Naive Bayes La fase di apprendimento consiste nel costruire una tabella di questa forma c 1 c 2... c n - P(c 2 ) X 1 =x 1,1... X 1 =x 1,k1 P(X 1 =x 1,k1 C=c 2 )... X n =x n,1... X n =x n,kn 11
Naive Bayes (cont.) Possiamo anche calcolare la probabilita della classe P(c i x,x,...,x ) = 1 2 n P( x 1,x2,...,xn ci ) P( c P( x,x,...,x ) 1 2 n i ) Calcoliamo P(x 1,x 2,...,x n ) cosi P( x 1,x 2,...,x n ) = i P( c i, x 1,x 2,...,x n ) = = i P( x 1,x 2,...,x n c i )P( c i ) = 12
Esempio No Outlook Temp Humid Windy Class D1 sunny mild normal T P D2 sunny hot high T N D3 sunny hot high F N D4 sunny mild high F N D5 sunny cool normal F P D6 overcast mild high T P D7 overcast hot high F P D8 overcast cool normal T P D9 overcast hot normal F P D10 rain mild high T N D11 rain cool normal T N D12 rain mild normal F P D13 rain cool normal F P D14 rain mild high F P Dato un giorno con le seguenti caratteristiche:" G=<Outlook=sunny,Temp=cool,Humid=high,Windy=T >" vogliamo sapere se si giocherà o meno una partita di tennis. " 13
Esempio Non calcoliamo l intera matrice, calcoliamo solo le probabilita che ci servono 14
Esempio (cont.) P(Class=P)=9/14=0.64 P(Class=N)=5/14=0.36 P(Outlook=sunny Class=P)=2/9=0.222 P(Outlook=sunny Class=N)=3/5=0.6 P(Temp=cool Class=P)=3/9=0.333 P(Temp=cool Class=N)=1/5=0.2 P(Humid=high Class=P)=3/9=0.333 P(Humid=high Class=N)=4/5=0.8 P(Windy=T Class=P)=3/9=0.33 P(Windy=T Class=N)=3/5=0.6 P(Class=P)*P(Outlook=sunny P)*P(Temp=cool P)* P(Humid=high P)*P(Windy=T P) = 0.0053 P(Class=N)*P(Outlook=sunny no)*p(temp=cool no)*p(humid=high no) *P(Windy=T no) = 0.0206 15
Esempio (cont.) La classe piu probabile e quindi N Calcoliamo le probabilita delle classi: P(Class=P G)= 0.0053/(0.0053+ 0.0206)= =0.205 P(Class=N G)= 0.0206/(0.0053+ 0.0206)= =1-0.205=0.795 16