Artificial intelligence Naï;ve-Bayes算法的结果总是为0

Artificial intelligence Naï;ve-Bayes算法的结果总是为0,artificial-intelligence,classification,probability,text-classification,naivebayes,Artificial Intelligence,Classification,Probability,Text Classification,Naivebayes,我有一个关于朴素贝叶斯分类法的问题。 虽然我认为这是一个简单的例子,但我遇到了一个障碍 基本上,以下是我想做的分类: 我希望能够获取一些培训数据: input1 | input2 | input3 | class 1 3 3 1 2 1 1 2 1 1 1 3 3 3 3 1 并将其分为1-3类 据我所

我有一个关于朴素贝叶斯分类法的问题。 虽然我认为这是一个简单的例子,但我遇到了一个障碍

基本上,以下是我想做的分类:

我希望能够获取一些培训数据:

input1 | input2 |  input3 | class
  1        3         3        1
  2        1         1        2
  1        1         1        3
  3        3         3        1
并将其分为1-3类

据我所知,首先你要计算 类,所以在这种情况下

class 1 = P(c_1) = 0.50
class 2 = P(c_2) = 0.25
class 3 = P(c_3) = 0.25
thusfar说的很有道理。它们都添加到1及其 很容易看出这些数字的来源

因此,由于这些数值的数值性质,我想要简化 把它们分成若干范围。因此,我将我的数据重建为:

不管怎么说,我是怎么到那张桌子的。继续Bayes部分:

P(Class 1 | avg_speed_1): 0.5
P(Class 1 | avg_speed_2): 0
P(Class 1 | avg_speed_3): 0
P(Class 2 | avg_speed_1): 0
P(Class 2 | avg_speed_2): 0.25
P(Class 2 | avg_speed_3): 0
P(Class 3 | avg_speed_1): 0
P(Class 3 | avg_speed_2): 0
P(Class 3 | avg_speed_3): 0.25
P(Class 1 | avg_distance_1): 0.5
P(Class 1 | avg_distance_2): 0
P(Class 1 | avg_distance_3): 0
P(Class 2 | avg_distance_1): 0
P(Class 2 | avg_distance_2): 0.25
P(Class 2 | avg_distance_3): 0
P(Class 3 | avg_distance_1): 0
P(Class 3 | avg_distance_2): 0
P(Class 3 | avg_distance_3): 0.25
P(Class 1 | avg_elev_gain_1): 0.5
P(Class 1 | avg_elev_gain_2): 0
P(Class 1 | avg_elev_gain_3): 0
P(Class 2 | avg_elev_gain_1): 0
P(Class 2 | avg_elev_gain_2): 0
P(Class 2 | avg_elev_gain_3): 0
P(Class 3 | avg_elev_gain_1): 0
P(Class 3 | avg_elev_gain_2): 0
P(Class 3 | avg_elev_gain_3): 0.5
现在这一切对我来说仍然有意义。然而,每个类仍然加1 当我去计算每个类的概率时,0的值会把计算搞砸

以第一节课为例:

P(Class 1 | avg_speed_1) *
P(Class 1 | avg_speed_2) *
P(Class 1 | avg_speed_3) *
P(Class 1 | avg_distance_1) *
P(Class 1 | avg_distance_2) *
P(Class 1 | avg_distance_3) *
P(Class 1 | avg_elev_gain_1) *
P(Class 1 | avg_elev_gain_2) *
P(Class 1 | avg_elev_gain_3) *
P(Class 1) = 0
我发现它总是等于零,因为有很多 输入元素仍然为零!我哪里出错了?!?这是否意味着我没有足够的训练数据

也就是说,天真的Bayes方法是正确的分类方法吗


如果您有任何想法,我们将不胜感激

您为什么要这样将条件概率相乘?当然,当你将一组包含0的数字相乘时,你会得到一个0的乘积——但是你正在计算的乘积对计算来说似乎毫无意义。你似乎记错了全概率定律。另外,请注意,“天真”并没有拼写为“nieve”。确切地说。这就是我知道出了问题的地方。在这个公式中,我看到是P(C|i1)*P(C|i2)*P(C|i3)*P(C)的乘积给出了答案。这看起来非常错误,因为如果这些概率中的任何一个是0,那么整个概率都是0@约翰科勒曼一旦先验概率被计算出来,你会如何预测类,比如给定的输入i1,i2,i3如果它不是所有条件概率的乘积,维基百科文章中关于Naïve Bayes分类器的公式似乎表明所有条件概率都是反向的。你应该乘以
P(平均速度1级)
而不是
P(平均速度1级)