我最近开始理解与自然语言处理相关的算法,并且遇到了各种站点,这些站点表明Naive Bayes无法捕获XOR概念.首先,我不明白XOR究竟是什么问题.有人可以解释,如果可能的话,XOR问题是一个简单的分类示例.
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的状态(反之亦然)不能导致针对该问题的适当解决方案.因此,朴素贝叶斯分类器也是线性分类器.