解释MATLAB Naive Bayes的“后验”函数

时间:2013-03-22 16:10:20

标签: matlab probability classification

在我们创建Naive Bayes分类器对象nb(例如,使用多元多项式(mvmn)分布)后,我们可以使用posterior调用nb函数来测试数据宾语。此功能有3个输出参数:

  

[post,cpre,logp] = posterior(nb,test)

我理解如何计算post及其含义,cpre是预测类,基于每个类的最大后验概率。

问题是关于logp。很清楚它是如何计算的(测试中每个模式的PDF的对数),但我不理解这个测量的含义以及它如何在朴素贝叶斯程序的上下文中使用。对此非常感激。

感谢。

1 个答案:

答案 0 :(得分:1)

您所指的logplog likelihood,这是衡量模型合适程度的一种方法。我们使用日志概率来防止计算机在非常小的浮点数上下溢,并且还因为加法比乘法更快。

如果您使用不同的起点多次学习分类器,则会得到不同的结果,因为似然函数不是对数凹函数,这意味着您将陷入局部最大值。如果计算后验的可能性在您的原始数据上,您将获得模型的可能性。虽然可能性可以很好地衡量一组参数与另一组参数的匹配程度,但您需要注意不要overfitting

在您的情况下,您正在计算某些未观察(测试)数据的可能性,这可以让您了解您的学习分类器对数据的拟合程度。如果您尝试根据测试集学习此模型,则可以根据最高测试可能性选择参数;但是一般来说,当你这样做时,最好使用validation set。你在这里做的是计算predictive likelihood

计算对数似然性不仅限于朴素贝叶斯分类器,实际上可以计算任何贝叶斯模型(高斯混合,潜在dirichlet分配等)。