Klasyfikacja naiwny Bayes LABORKA Piotr Ciskowski
NAIWNY KLASYFIKATOR BAYESA wyjaśnienie
Naiwny klasyfikator Bayesa żródło: Internetowy Podręcznik Statystyki Statsoft dane uczące 2 klasy - prawdopodobieństwo a priori: 1 ( ) = p C 1 n n 2 ( ) = p C 2 n n
Naiwny klasyfikator Bayesa żródło: Internetowy Podręcznik Statystyki Statsoft nowy punkt - szansa, że w tym miejscu zielony/czerwony: ( 1 1 2 ) ( 2 1 2 ) p C x, x =? p C x, x =? ( 1, 2 1) p x x C ( 1, 2 2 ) p x x C ( 1, 2 1) ( 1 1) ( 2 1) ( k 1) p x x C = p x C p x C = p x C d k = 1 d (, ) ( ) ( ) ( ) p x x C = p x C p x C = p x C = 1 2 2 1 2 2 2 k j j 1,, r k = 1
Naiwny klasyfikator Bayesa żródło: Internetowy Podręcznik Statystyki Statsoft nowy punkt - prawdopodobieństwo a posteriori: ( 1 1 2 ) ( 2 1 2 ) p C x, x =? p C x, x =? ( 1 1, 2 ) = ( 1) ( 1, 2 1) = ( j ) ( 1 1) ( 2 1) p C x x p C p x x C p C p x C p x C d (, ) ( ) (, ) ( ) ( ) p C x x p C p x x C p C p x C = = = 2 1 2 2 1 2 2 j k j j 1,, r k = 1
Naiwny klasyfikator Bayesa żródło: http://en.wikipedia.org/wiki/naive_bayes_classifier independent feature model naive Bayes probability model decision rule: - pick the hypothesis that is most probable - MAP decision rule - maximum a posteriori classify ( x1,, xd ) = arg max p ( C = c) p ( X i = xi C = c) c d i= 1
Naiwny klasyfikator Bayesa żródło: http://en.wikipedia.org/wiki/naive_bayes_classifier estymacja parametrów modelu prawdopodobieństwa a priori klas - maximum likelihood v equiprobable classes rozkłady cech - maximum likelihood v generate nonparametric model from data set - identification v assume a distibution - event model
Naiwny klasyfikator Bayesa żródło: http://en.wikipedia.org/wiki/naive_bayes_classifier Gaussian naive Bayes rozkłady cech w klasach: 1 p ( x = v c) = e 2πσ 2 c ( v µ ) 2 2σ c 2 c µ c średnia cechy x w klasie c σ c2 wariancja cechy x w klasie c
Naiwny klasyfikator Bayesa żródło: http://en.wikipedia.org/wiki/naive_bayes_classifier multivariate naive Bayes the likelihood of a document given a class C: n ( ) ( 1,, n ) = i ( i ) + ( 1 i ) 1 ( i ) p F F C F p w C F p w C i= 1 F i boolean expressing the occurence or absense of the i-th term from the vocabulary p(w i C) - probability of class C generating the term w i do klasyfikacji krótkich tekstów
NAIWNY KLASYFIKATOR BAYESA przykład. Sex classification
zbiór uczący:
zbiór uczący: >> sex = { 'male' ; 'male' ; 'male' ; 'male' ;... 'female' ; 'female' ; 'female' ; 'female' } >> height = [ 6 ;... % w stopach ;-) 5.92 ;... 5.58 ;... 5.92 ;... 5 ;... 5.5 ;... 5.42 ;... 5.75 ]
zbiór uczący c.d.: >> weight = [ 180 ;... % w funtach ;-) 190 ;... 170 ;... 165 ;... 100 ;... 150 ;... 130 ;... 150 ] >> footsize = [ 12 ;... % w calach ;-) 11 ;... 12 ;... 10 ;... 6 ;... 8 ;... 7 ;... 9 ]
nowa osoba do sprawdzenia: >> newperson = [ 6, 130, 8 ] narysuj dane uczące i nową osobę wzrost-waga: >> x12 = [ height, weight ] >> gscatter ( x12(:,1), x12(:,2), sex ) ; >> line ( newperson(1), newperson(2),... 'marker', 'x',... 'color', 'k',... 'markersize', 10,... 'linewidth', 2 ) >> set ( legend, 'location', 'best' ) >> xlabel ( 'height' ) >> ylabel ( 'weight' )
narysuj dane uczące i nową osobę wzrost-stopa: >> figure >> x13 = [ height, footsize ] >> gscatter ( x13(:,1), x13(:,2), sex ) ; >> line ( newperson(1), newperson(3),... 'marker', 'x',... 'color', 'k',... 'markersize', 10,... 'linewidth', 2 ) >> set ( legend, 'location', 'best' ) >> xlabel ( 'height' ) >> ylabel ( 'foot size' )
narysuj dane uczące i nową osobę waga-stopa: >> figure >> x23 = [ weight, footsize ] >> gscatter ( x23(:,1), x23(:,2), sex ) ; >> line ( newperson(2), newperson(3),... 'marker', 'x',... 'color', 'k',... 'markersize', 10,... 'linewidth', 2 ) >> set ( legend, 'location', 'best' ) >> xlabel ( 'weight' ) >> ylabel ( 'foot size' )
ustal parametry klasyfikatora: - zał. rozkład wszystkich cech: gaussowski >> meanheightm = mean ( height (1:4) ) % 5.8550 >> varheightm = var ( height (1:4) ) % 0.0350 >> meanweightm = mean ( weight (1:4) ) % 176.2500 >> varweightm = var ( weight (1:4) ) % 122.9167 >> meanfootsizem = mean ( footsize (1:4) ) % 11.2500 >> varfootsizem = var ( footsize (1:4) ) % 0.9167
ustal parametry klasyfikatora: - zał. rozkład wszystkich cech: gaussowski >> meanheightf = mean ( height (5:8) ) % 5.4175 >> varheightf = var ( height (5:8) ) % 0.0972 >> meanweightf = mean ( weight (5:8) ) % 132.5000 >> varweightf = var ( weight (5:8) ) % 558.3333 >> meanfootsizef = mean ( footsize (5:8) ) % 7.5000 >> varfootsizef = var ( footsize (5:8) ) % 1.6667
ustal parametry klasyfikatora: - zał. rozkład wszystkich cech: gaussowski >> Pmale = 0.5 ; % p(male) >> Pfemale = 0.5 ; % p(female) % prawdopodobieństwa a priori
oblicz prawdopodobieństwa a posteriori dla badanego przypadku, czyli dla: newperson = [ 6, 130, 8 ] - zał. rozkład wszystkich cech: gaussowski ( 6, 130, 8) p sex = M h = w = f = = ( 6, 130, 8) p sex = F h = w = f = = = = ( = ) ( = 6, = 130, = 8 = ) p sex M p h w f sex M ( = 6, = 130, = 8) p h w f ( = ) ( = 6 = ) ( = 130 = ) ( = 8 = ) p sex M p h sex M p w sex M p f sex M ( = 6, = 130, = 8) p h w f ( = ) ( = 6, = 130, = 8 = ) p sex F p h w f sex F ( = 6, = 130, = 8) p h w f ( = ) ( = 6 = ) ( = 130 = ) ( = 8 = ) p sex F p h sex F p w sex F p f sex F ( = 6, = 130, = 8) p h w f ( = 6, = 130, = 8) = ( = ) ( = 6, = 130, = 8 = ) + ( = ) ( = 6, = 130, = 8 = ) p h w f p sex F p h w f sex F p sex M p h w t sex M
oblicz prawdopodobieństwa a posteriori dla badanego przypadku, czyli dla: newperson = [ 6, 130, 8 ] - zał. rozkład wszystkich cech: gaussowski ( = = 6, = 130, = 8) = ( = ) ( = 6 = ) ( = 130 = ) ( = 8 = ) ( = = 6, = 130, = 8) = ( = ) ( = 6 = ) ( = 130 = ) ( = 8 = ) p sex M h w f p sex M p h sex M p w sex M p f sex M p sex F h w f p sex F p h sex F p w sex F p f sex F ( 6 µ ) 2 h M 2 1 2σ h M p h = sex = M = e 2 2π σ h M p h = 6 sex = F =? 1 p( h = 6 sex = M ) = e 2π σ 2 h M ( h µ ) 2 h M 2σ 2 h M ( 6 ) ( ) ( ) ( ) p w = 130 sex = M =? p w = 130 sex = F =? ( ) ( ) p f = 8 sex = M =? p f = 8 sex = F =?
oblicz prawdopodobieństwa a posteriori dla badanego przypadku, czyli dla: newperson = [ 6, 130, 8 ] - zał. rozkład wszystkich cech: gaussowski Ph6male = 1./(sqrt(2*pi*varHeightM))*exp(-(6-meanHeightM)^2/(2*varHeightM)) Ph6female = 1./(sqrt(2*pi*varHeightF))*exp(-(6-meanHeightF)^2/(2*varHeightF)) Pw130male = 1./sqrt(2*pi*varWeightM)*exp(-(130-meanWeightM)^2/(2*varWeightM)) Pw130female = 1./sqrt(2*pi*varWeightF)*exp(-(130-meanWeightF)^2/(2*varWeightF)) Pf8male = 1./sqrt(2*pi*varFootSizeM)*exp(-(8-meanFootSizeM)^2/(2*varFootSizeM)) Pf8female = 1./sqrt(2*pi*varFootSizeF)*exp(-(8-meanFootSizeF)^2/(2*varFootSizeF)) Pmale_h6w130f8 = Pmale * Ph6male * Pw130male * Pf8male Pfemale_h6w130f8 = Pfemale * Ph6female * Pw130female * Pf8female Pmale_h6w130f8 = 6.1971e-09 Pfemale_h6w130f8 = 5.3779e-04 female