贝叶斯网络和朴素贝叶斯分类器有什么区别?我注意到其中一个只是在Matlab中实现为“classify”,而另一个具有整个网络工具箱。
如果可能的话,请在您的答案中解释哪个更可能提供更好的准确性,我将不胜感激(非必需)。
如果可能的话,请在您的答案中解释哪个更可能提供更好的准确性,我将不胜感激(非必需)。
简短回答:如果你只关心解决一个预测任务,那么请使用朴素贝叶斯。
贝叶斯网络(在维基百科上有很好的页面)以一种非常普遍的方式来建模特征之间的关系。如果你知道这些关系是什么,或者有足够的数据来推导它们,那么使用贝叶斯网络可能是合适的。
朴素贝叶斯分类器是描述贝叶斯网络中的特定类别的简单模型——其中所有特征都是类条件独立的。因此,有些问题朴素贝叶斯无法解决(以下是示例)。但是,它的简单性也使得它更容易应用,在许多情况下需要较少的数据就可以获得良好的结果。
你有一个二元特征x1
和x2
,以及一个目标变量y = x1 XOR x2
的学习问题。
在朴素贝叶斯分类器中,x1
和x2
必须被独立处理——所以你会计算像“在x1 = 1
的情况下,y = 1
的概率”这样的东西——希望你能看出这并没有什么用,因为x1 = 1
并不能使y = 1
更或者更少可能发生。由于贝叶斯网络不假定独立性,它将能够解决这样的问题。
参考文献:
1. 贝叶斯网络分类器