贝叶斯网络与贝叶斯分类器

G G*_* Gr 19 matlab machine-learning bayesian bayesian-networks naivebayes

贝叶斯网络和朴素贝叶斯分类器有什么区别?我注意到一个是在matlab中实现的,因为classify另一个有一个完整的网络工具箱.

如果你能在答案中解释哪一个更有可能提供更好的准确性,我将不胜感激(不是先决条件).

Ric*_*nte 31

如果您只对解决预测任务感兴趣,请简短回答:使用Naive Bayes.

贝叶斯网络(具有良好的维基百科页面)以非常通用的方式模拟特征之间的关系.如果您知道这些关系是什么,或者有足够的数据来推导它们,那么使用贝叶斯网络可能是合适的.

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

示例: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或更不可能.由于贝叶斯网络不具有独立性,因此能够解决这样的问题.


小智 6

朴素贝叶斯只是一般贝叶斯网络的受限/约束形式,您可以强制执行类节点不应具有父节点的约束,并且与属性变量对应的节点之间不应存在边缘.因此,没有任何东西可以阻止一般的贝叶斯网络被用于分类 - 预测的类是具有最大概率的类,当(通过条件)所有其他变量被设置为通常的贝叶斯推理方式的预测实例值时.关于此的一篇好文章是"贝叶斯网络分类器,机器学习,29,131-163(1997)".特别感兴趣的是第3节.尽管朴素贝叶斯是一种更为普遍的贝叶斯网络的约束形式,但本文还讨论了为什么朴素贝叶斯在分类任务中能够并且确实胜过一般的贝叶斯网络.