Jak Naive Bayes jest klasyfikatorem liniowym?

31

Widziałem tutaj inny wątek , ale nie sądzę, by odpowiedź zaspokoiła faktyczne pytanie. Ciągle czytam, że Naive Bayes jest klasyfikatorem liniowym (np. Tutaj ) (takim, że wyznacza liniową granicę decyzyjną) za pomocą demonstracji logarytmicznych szans.

Symulowałem jednak dwie chmury Gaussa i dopasowałem granicę decyzyjną i otrzymałem wyniki jako takie (biblioteka e1071 wr, przy użyciu naiveBayes ()) 1- zielony, 0 - czerwony

Jak widzimy, granica decyzji jest nieliniowa. Czy próbuje powiedzieć, że parametry (prawdopodobieństwa warunkowe) są kombinacją liniową w przestrzeni logów, a nie powiedzieć, że sam klasyfikator oddziela dane liniowo?

Kevin Pei
źródło
jak stworzyłeś granicę decyzji? Podejrzewam, że ma to związek z twoją rutyną dopasowania, a nie z prawdziwą granicą decyzji klasyfikatora. normalnie można wygenerować granicę decyzji, obliczając decyzję w każdym punkcie kwadrantu.
seanv507
Właśnie to zrobiłem, wziąłem dwa zakresy X = [Min (x), Max (x)] i Y = [Min (Y), Max (Y)] z odstępem 0,1. Następnie dopasowałem wszystkie te punkty danych do wyszkolonego klasyfikatora i znalazłem takie punkty, że logarytmiczne szanse wynosiły od -0,05 do 0,05
Kevin Pei

Odpowiedzi:

30

Zasadniczo naiwny klasyfikator Bayesa nie jest liniowy, ale jeśli czynniki prawdopodobieństwa pochodzą z rodzin wykładniczych , naiwny klasyfikator Bayesa odpowiada klasyfikatorowi liniowemu w określonej przestrzeni cech. Oto jak to zobaczyć.p(xic)

Możesz napisać dowolny naiwny klasyfikator Bayesa jako *

p(c=1x)=σ(ilogp(xic=1)p(xic=0)+logp(c=1)p(c=0)),

gdzie jest funkcją logistyczną . Jeśli pochodzi z rodziny wykładniczej, możemy zapisać jakoσp(xic)

p(xic)=hi(xi)exp(uicϕi(xi)Ai(uic)),

and hence

p(c=1x)=σ(iwiϕi(xi)+b),

where

wi=ui1ui0,b=logp(c=1)p(c=0)i(Ai(ui1)Ai(ui0)).

Note that this is similar to logistic regression – a linear classifier – in the feature space defined by the ϕi. For more than two classes, we analogously get multinomial logistic (or softmax) regression.

If p(xic) is Gaussian, then ϕi(xi)=(xi,xi2) and we should have

wi1=σ12μ1σ02μ0,wi2=2σ022σ12,bi=logσ0logσ1,

assuming p(c=1)=p(c=0)=12.


*Here is how to derive this result:

p(c=1x)=p(xc=1)p(c=1)p(xc=1)p(c=1)+p(xc=0)p(c=0)=11+p(xc=0)p(c=0)p(xc=1)p(c=1)=11+exp(logp(xc=1)p(c=1)p(xc=0)p(c=0))=σ(ilogp(xic=1)p(xic=0)+logp(c=1)p(c=0))
Lucas
źródło
Thank you for the derivation, which I now understand, can you explain the notations in equation 2 and below? (u, h(x_i), phi(x_i), etc) Is P(x_i | c) under an exponential family just simply taking the value from the pdf?
Kevin Pei
There are different ways you can express one and the same distribution. The second equation is an exponential family distribution in canonical form. Many distributions are exponential families (Gaussian, Laplace, Dirichlet, Bernoulli, binomial, just to name a few), but their density/mass function is typically not given in canonical form. So you first have to reparametrize the distribution. This table tells you how to compute u (natural parameters) and ϕ (sufficient statistics) for various distributions: en.wikipedia.org/wiki/Exponential_family#Table_of_distributions
Lucas
1
Notice the important point that ϕ(x)=(x,x2). What this means is that linear classifiers are a linear combination of weights w and potentially non-linear functions of the features! So, to the original poster's point, a plot of the datapoints may not show that they are separable by a line.
RMurphy
I find this answer misleading: as pointed out in the comment just about, and the answer just below, the Gaussian naive Bayes is not linear in the original feature space, but in a non-linear transform of these. Hence it is not a conventional linear classifier.
Gael Varoquaux
why p(xi|c) is Gaussian,then ϕi(xi)=(xi,xi2)? I think the sufficient statistic T(x) for Gaussian distribution should be x/σ.
Naomi
8

It is linear only if the class conditional variance matrices are the same for both classes. To see this write down the ration of the log posteriors and you'll only get a linear function out of it if the corresponding variances are the same. Otherwise it is quadratic.

axk
źródło
3

I'd like add one additional point: the reason for some of the confusion rests on what it means to be performing "Naive Bayes classification".

Under the broad topic of "Gaussian Discriminant Analysis (GDA)" there are several techniques: QDA, LDA, GNB, and DLDA (quadratic DA, linear DA, gaussian naive bayes, diagonal LDA). [UPDATED] LDA and DLDA should be linear in the space of the given predictors. (See, e.g., Murphy, 4.2, pg. 101 for DA and pg. 82 for NB. Note: GNB is not necessarily linear. Discrete NB (which uses a multinomial distribution under the hood) is linear. You can also check out Duda, Hart & Stork section 2.6). QDA is quadratic as other answers have pointed out (and which I think is what is happening in your graphic - see below).

These techniques form a lattice with a nice set of constraints on the "class-wise covariance matrices" Σc:

  • QDA: Σc arbitrary: arbitrary ftr. cov. matrix per class
  • LDA: Σc=Σ: shared cov. matrix (over classes)
  • GNB: Σc=diagc: class wise diagonal cov. matrices (the assumption of ind. in the model diagonal cov. matrix)
  • DLDA: Σc=diag: shared & diagonal cov. matrix

While the docs for e1071 claim that it is assuming class-conditional independence (i.e., GNB), I'm suspicious that it is actually doing QDA. Some people conflate "naive Bayes" (making independence assumptions) with "simple Bayesian classification rule". All of the GDA methods are derived from the later; but only GNB and DLDA use the former.

A big warning, I haven't read the e1071 source code to confirm what it is doing.

MrDrFenner
źródło