Wie ist Naive Bayes ein linearer Klassifikator?


31

Ich habe den anderen Thread hier gesehen, aber ich glaube nicht, dass die Antwort die eigentliche Frage befriedigt hat. Was ich immer wieder gelesen habe, ist, dass Naive Bayes ein linearer Klassifikator (z. B. hier ) ist (so dass er eine lineare Entscheidungsgrenze zeichnet), der die Log Odds-Demonstration verwendet.

Ich simulierte jedoch zwei Gaußsche Wolken und passte eine Entscheidungsgrenze an und erhielt die Ergebnisse als solche (Bibliothek e1071 in r, mit naiveBayes ()) 1- Grün, 0 - Rot

Wie wir sehen können, ist die Entscheidungsgrenze nicht linear. Versucht es zu sagen, dass die Parameter (bedingte Wahrscheinlichkeiten) eine lineare Kombination im Protokollraum sind, anstatt zu sagen, dass der Klassifizierer selbst Daten linear trennt?


Wie haben Sie die Entscheidungsgrenze geschaffen? Ich vermute, es liegt eher an Ihrer Anpassungsroutine als an der wahren Entscheidungsgrenze des Klassifikators. Normalerweise würde man eine Entscheidungsgrenze erzeugen, indem man die Entscheidung an jedem einzelnen Punkt in Ihrem Quadranten berechnet.
Seanv507

Das habe ich gemacht, ich habe die beiden Bereiche X = [Min (x), Max (x)] und Y = [Min (Y), Max (Y)] mit einem Abstand von 0,1 genommen. Ich habe dann alle diese Datenpunkte mit dem trainierten Klassifikator versehen und Punkte gefunden, bei denen die Log-Quoten zwischen -0,05 und 0,05 lagen
Kevin Pei

Antworten:


30

Im Allgemeinen ist der naive Bayes-Klassifikator nicht linear, aber wenn die Wahrscheinlichkeitsfaktoren aus Exponentialfamilien stammen , entspricht der naive Bayes-Klassifikator einem linearen Klassifikator in einem bestimmten Merkmalsraum. Hier ist, wie man das sieht.p(xic)

Sie können jeden naiven Bayes-Klassifikator schreiben als *

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

Dabei ist die logistische Funktion . Wenn p ( x ic ) aus einer Exponentialfamilie stammt, können wir es schreiben alsσp(xic)

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

und daher

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

woher

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

Beachten Sie, dass dies ähnlich ist logistische Regression - ein linearer Klassifikator - in dem Merkmalsraum definiert durch die . Für mehr als zwei Klassen erhalten wir analog eine multinomiale logistische (oder Softmax-) Regression .ϕi

p(xic)ϕi(xi)=(xi,xi2)

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

Angenommen, .p(c=1)=p(c=0)=12


* So leiten Sie dieses Ergebnis ab:

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))

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.