天真贝叶斯如何成为线性分类器?


31

我在这里看到了另一个主题但我认为答案不能满足实际问题。我一直读到的是,朴素贝叶斯是使用对数赔率演示的线性分类器(例如:here)(它绘制了线性决策边界)。

但是,我模拟了两个高斯云并拟合了决策边界,并得到了这样的结果(r中的库e1071,使用naiveBayes()) 1-绿色,0-红色

如我们所见,决策边界是非线性的。是否要说参数(条件概率)是对数空间中的线性组合,而不是说分类器本身是线性地分离数据?


您是如何创建决策边界的?我怀疑这与您的拟合例程有关,而不是与分类器的实际决策范围有关。通常,将通过计算象限中每个点的决策来生成决策边界。
seanv507 2015年

那就是我所做的,我采用了X = [Min(x),Max(x)]和Y = [Min(Y),Max(Y)]的两个范围,间距为0.1。然后,我使用训练有素的分类器对所有这些数据点进行拟合,发现点使得对数几率介于-0.05和0.05之间
Kevin Pei

Answers:


30

p(xic)

您可以将任何朴素的贝叶斯分类器写为*

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

σp(xic)

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

因此

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

哪里

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

ϕi

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

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

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


*以下是得出此结果的方法:

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

谢谢您的推导,据我所知,您能解释等式2及以下的符号吗?(u,h(x_i),phi(x_i)等)指数族下的P(x_i | c)只是从pdf中取值吗?
凯文·佩

uϕ

1
ϕ(x)=(x,x2)w

我发现这个答案具有误导性:正如在评论中以及下面的答案中所指出的那样,高斯朴素贝叶斯在原始特征空间中不是线性的,而是这些特征的非线性变换。因此,它不是常规的线性分类器。
盖尔·瓦罗夸

p(xi|c)ϕi(xi)=(xi,xi2)T(x)x/σ

8

仅当两个类别的类别条件方差矩阵相同时,它才是线性的。为了看到这一点,请写下对数后验的比率,并且只有在相应的方差相同的情况下,才能得到线性函数。否则,它是二次方的。


3

我想补充一点:进行某些混淆的原因在于执行“朴素贝叶斯分类”的含义。

在“高斯判别分析(GDA)”的广泛主题下,有几种技术:QDA,LDA,GNB和DLDA(二次DA,线性DA,高斯朴素贝叶斯,对角LDA)。[更新] LDA和DLDA在给定预测变量的空间内应为线性。(例如参见DA的Murphy 4.2,第101页,NB的第82页。注意:GNB不一定是线性的。离散NB(在引擎盖下使用多项式分布)是线性的。您也可以检出Duda ,Hart&Stork第2.6节)。正如其他答案所指出的那样,QDA是二次的(我认为这是图形中正在发生的事情-参见下文)。

Σc

  • Σc
  • Σc=Σ
  • Σc=diagc
  • Σc=diag

尽管e1071文档声称它假定类条件独立性(即GNB),但我怀疑它实际上在执行QDA。有人将“朴素贝叶斯”(做出独立性假设)与“简单贝叶斯分类规则”混为一谈。所有的GDA方法都源自于后者。但只有GNB和DLDA使用前者。

一个大警告,我还没有阅读e1071源代码来确认它在做什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.