我找到了以下Matlab实现的朴素贝叶斯分类器:
https://github.com/jjedele/Naive-Bayes-Classifier-Octave-Matlab
高斯朴素贝叶斯和朴素贝叶斯有什么区别?我如何扩展上述实现以变成高斯朴素贝叶斯?
如何扩展实现以便用于4个类别?只是做一对所有其他吗?
非常感谢您的帮助。
回答:
在朴素贝叶斯分类中,我们使用一组特征(x0,x1,…xn),并尝试将这些特征分配给已知的一组类别Y中的一个(y0,y1,…yk)。我们通过使用训练数据来计算条件概率,这些概率告诉我们在训练集中某个类别拥有特定特征的频率,然后将它们相乘。
结果是Y集中每个类别的得分。我们然后选择得分最高的Y成员作为我们的特征集应被分配到的类别。
到目前为止,我们还没有对p(x|C)分布的形态做出任何假设。
在高斯朴素贝叶斯中,我们假设所有这些p(x|C)值都是正态分布的,这就是唯一的“区别”,实际上这并不是一个区别,GNB只是朴素贝叶斯的一个子集。
如果您没有很多训练数据,并且愿意假设总体数据围绕您拥有的样本(训练)数据的均值呈正态分布,那么这可能会很有用。
完全披露,Tex来自维基百科。