如何在贝叶斯网络中实现“异或”?

Posted

技术标签:

【中文标题】如何在贝叶斯网络中实现“异或”?【英文标题】:How to Implement "XOR" in Bayesian Networks? 【发布时间】:2016-07-05 22:26:54 【问题描述】:

在图形模型和贝叶斯网络中,如何实现XOR problem?

我在这里读到了bayesian network vs bayes classifier:

朴素贝叶斯分类器是一个简单的模型,用于描述特定类别的贝叶斯网络 - 其中所有特征在类别条件下都是独立的。因此,存在朴素贝叶斯无法解决的某些问题(示例如下)。但是,它的简单性也使其更易于应用,并且在许多情况下需要较少的数据即可获得良好的结果。

示例:XOR 您有一个学习问题,涉及二元特征 x_1、x_2 和目标变量 y = x_1 XOR x_2。

在朴素贝叶斯分类器中,x_1 和 x_2 必须独立处理 - 因此您可以计算诸如“在 x_1 = 1 的情况下 y = 1 的概率”之类的东西 - 希望您能看到这没有帮助,因为 x_1 = 1 不会增加或减少 y = 1 的可能性。由于贝叶斯网络不假设独立性,因此它能够解决这样的问题。

我用谷歌搜索,但不知道怎么做。有人可以给我一个提示或好的参考吗?谢谢!

【问题讨论】:

【参考方案1】:

这其实很简单。

模型的 DAG 看起来像

 x1 -> XOR <- x2

然后可以写出异或节点的概率分布

x1  x2  | P(XOR=1|x1,x2)
0   0   |    0
0   1   |    1
1   0   |    1
1   1   |    0

【讨论】:

以上是关于如何在贝叶斯网络中实现“异或”?的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby 中实现贝叶斯分类器?

在android上使用朴素贝叶斯分类[关闭]

04 贝叶斯算法 - 贝叶斯网络

在 MATLAB 中实现朴素贝叶斯算法 - 需要一些指导

贝叶斯网络

从贝叶斯方法谈到贝叶斯网络