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


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(xi∣c)

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

p(c=1∣x)=σ(∑ilog⁡p(xi∣c=1)p(xi∣c=0)+log⁡p(c=1)p(c=0)),

σp(xi∣c)

p(xi∣c)=hi(xi)exp⁡(uic⊤ϕi(xi)−Ai(uic)),

因此

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

哪里

wi=ui1−ui0,b=log⁡p(c=1)p(c=0)−∑i(Ai(ui1)−Ai(ui0)).

ϕi

p(xi∣c)ϕi(xi)=(xi,xi2)

wi1=σ1−2μ1−σ0−2μ0,wi2=2σ0−2−2σ1−2,bi=log⁡σ0−log⁡σ1,

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


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

p(c=1∣x)=p(x∣c=1)p(c=1)p(x∣c=1)p(c=1)+p(x∣c=0)p(c=0)=11+p(x∣c=0)p(c=0)p(x∣c=1)p(c=1)=11+exp⁡(−log⁡p(x∣c=1)p(c=1)p(x∣c=0)p(c=0))=σ(∑ilog⁡p(xi∣c=1)p(xi∣c=0)+log⁡p(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.