贝叶斯网络和朴素贝叶斯分类器有什么区别?

问题描述 投票:19回答:2

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

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

matlab machine-learning bayesian naivebayes bayesian-networks
2个回答
31
投票

简短的回答,如果您只对解决预测任务感兴趣:使用朴素贝叶斯。

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

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

Example: XOR

你有二元特征x1x2以及目标变量y = x1 XOR x2的学习问题。

在Naive Bayes分类器中,x1x2必须独立处理 - 所以你会计算像“y = 1x1 = 1的概率”这样的事情 - 希望你能看到这没有用,因为x1 = 1不再制作y = 1或者不太可能。由于贝叶斯网络不具有独立性,因此能够解决这样的问题。


6
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.