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

Why does Naive Bayes fail to solve XOR

我最近开始了解与自然语言处理相关的算法,并且遇到过各种表明朴素贝叶斯无法捕捉 XOR 概念的网站。首先我不明白异或问题到底是什么。有人可以用简单的分类示例解释一下 XOR 问题是什么吗?

异或问题是最简单的线性不可分问题。 假设您有两个布尔变量 X 和 Y,您想要 "predict" 的目标值是对这两个变量进行异或运算的结果。也就是说,只有当其中一个(而不是另一个)为 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

如您所见,对于上面我的 "plot" 的四个 "points"(X 水平,Y 垂直;假设逗号是 "points",如果您愿意),有你不可能画一条直线来分隔两个结果(左上角和右下角的两个 1,以及两个 0,也在对角)。因此 linear classifiers,使用直线模拟 class 分离,不能解决这种性质的问题。

现在,对于朴素贝叶斯,它对 独立 事件建模。仅给定 X 和 Y,它可以对 xs 的分布建模,也可以对 ys 建模,但它不对两个变量之间的任何关系建模。也就是说,要对 XOR 函数建模,classifier 必须同时观察两个变量。只根据 X 的状态做出预测而不考虑 Y 的状态(反之亦然)不能导致此问题的正确解决方案。因此,朴素贝叶斯 classifier 也是线性 classifier。