fengdu78 / lihang-code

《统计学习方法》的代码实现
18.69k stars 6.26k forks source link

第4章 朴素贝叶斯算法实现中的先验概率问题 #14

Open junliang230 opened 5 years ago

junliang230 commented 5 years ago

您好,我对贝叶斯算法实现中的先验概率有些疑惑 `

计算概率

def calculate_probabilities(self, input_data):
    # summaries:{0.0: [(5.0, 0.37),(3.42, 0.40)], 1.0: [(5.8, 0.449),(2.7, 0.27)]}
    # input_data:[1.1, 2.2]
    probabilities = {}
    for label, value in self.model.items():
        probabilities[label] = 1 #probability[label]=1???
        for i in range(len(value)):
            mean, stdev = value[i]
            probabilities[label] *= self.gaussian_probability(input_data[i], mean, stdev) 
    return probabilities

`

为什么这里的probabilities[label]可以直接赋值为1呢,这样所有的类的先验概率是不是都一样了,为什么不根据样本计算这里的probabilities[label]呢 谢谢解答

Xiaoccer commented 5 years ago

同问

k-burner commented 5 years ago

同问……划分数据后类别不平衡了,先验概率应该不相等了吧

hanhao0125 commented 5 years ago

是有问题,没有乘先验概率,作者不出来回应一下吗

1344618323 commented 3 years ago

同问,希望能更改下

josephcui commented 3 years ago

确实少了先验概率,训练集的两类样本是不均衡的,一个是39,一个是31

jiaozihao18 commented 2 years ago

同样有疑问,看了好久代码没找到先验概率计算。

kpsc commented 2 years ago

看了他给的链接,原始文章里面是写了先验概率的 image

nicholaslsq commented 2 years ago

This is Nicholas. I've received your mail.

cyy0214 commented 2 years ago

Thank you. Your email is received and will be handled as soon as possible.Best Regards.This is an automatic reply,confirming that your e-mail was received.Thank you.

xmingpyccnu commented 2 years ago

您好!很开心收到您的邮件。我将在查看邮件后,尽快给您回复。

daibitao19 commented 2 years ago

您好,我已经收到您的邮件,稍后我将尽快给你回复。