为什么朴素贝叶斯无法解决XOR问题

时间:2017-01-16 18:25:38

标签: nlp naivebayes

我最近开始理解与自然语言处理相关的算法,并且遇到了各种站点,这些站点表明Naive Bayes无法捕获XOR概念。首先,我不明白XOR究竟是什么问题。有人可以解释一下,如果可能,可以通过一个简单的分类示例解决XOR问题。

1 个答案:

答案 0 :(得分:7)

XOR问题是最简单的问题,不能线性分离。 想象一下,你有两个布尔变量X和Y,你想要“预测”的目标值是对两个变量进行异或运算的结果。也就是说,只有当(或者不是另一个)为1时,您希望将1预测为结果,否则为0。更具图形性:

Y ^
1 | XOR(x=0,y=1)=1  XOR(x=1,y=1)=0
  | 
0 | XOR(x=0,y=0)=0  XOR(x=1,y=0)=1
  +------------------------------->
           0               1      X

正如你所看到的,对于我上面“情节”的四个“点”(X水平,Y垂直;想象逗号是“点”,如果你愿意的话),你无法画直线分隔两个结果的线(左上角和右下角的两个1,以及两个0,也在相对的角落)。所以使用直线模拟类分离的线性分类器无法解决这种性质的问题。

现在,对于Naive Bayes,它模拟了独立的事件。只给出X和Y,它可以对xs的分布进行建模,并且可以对y进行建模,但它不会对两个变量之间的任何关系进行建模。也就是说,为了对XOR函数建模,分类器必须同时观察两个变量 。仅基于X的状态进行预测而不考虑Y的状态(反之亦然)不能导致针对该问题的适当解决方案。因此,朴素贝叶斯分类器也是线性分类器。