如何计算朴素贝叶斯高斯公式分母中的归一化

问题描述

我正在尝试通过自己编写算法来学习朴素贝叶斯高斯机器学习算法。

我在实现中注意到,所有标签的最终预测概率总和不是1.0。实际上,我所有的预测概率都非常小,例如0.00000000000184大小。但是,从中选择最大尺寸可以为我提供高度准确的预测。

所以我试图让它们加1,我认为失败是因为我只使用了先验和似然计算。我忽略了分母中的标准化器。

这是我的数据集中的一个例子。列0-4是我的属性,列4是我的标签

enter image description here

因此,我正在尝试包括normalizer。但是我不知道怎么做。我的标签列是分类的,因此我知道如何计算任何分类值具有的P(y)先验概率。

但是我的属性是真实值,那么如何计算任何此类真实属性的P(X)先验概率?这是我尝试实现的公式。我无法理解分母的计算。

enter image description here

解决方法

如果您设法为每个类y计算分子:P(x|y)P(y)。 那么分母P(X)就是所有类别y上这些总和:P(X)=sum_y ( P(x|y)P(y) )

请注意,NB算法是关于选择P(x|y)P(y)最高的y类。将这些结果除以P(X)不会改变结论,因此计算它可能不值得。

现在听起来您在计算P(x|y)时遇到问题。 这就是概率建模的地方。

一种可能性是,对于每个类别y,观察到的x都是独立的(即“天真”的意思)和高斯。 所以概率P(x/y) = product_i(f(x_i,m_y,s_y))

连续x_i的{​​{1}}的4个观测值中的每个观测值,高斯密度,以及xm_y的均值和标准差y。