朴素贝叶斯算法
朴素贝叶斯算法
对于朴素贝叶斯算法,我的理解就是:使用已知的概率和结果,来预测事情的条件。举一个例子就是,我们通过统计得到了不同年龄段喜欢吃冰激凌的比例,比如各采访了500个青少年、中年人和老年人,得到有450个青少年、300个中年人和50个老年人喜欢吃冰激凌。我们还通过统计,知道了在社会中假设小孩子占20%,中年人50%,老人30%。
之前我们可能会问,一个人喜欢吃冰激凌的概率是多少:这个肯定是20%90%+50%60%+30%*10%=51%.但现在问的问题是,如果一个人喜欢吃冰激凌,那他是小孩的概率是多少呢?
为了回答这个问题,我们先看一下以下几个概念:
一、先验概率
先验概率(prior probability)是指根据以往经验和分析得到的概率.
比如这里,小孩子在社会人口中占比30%就是先验概率。在算法中,这些概率一般都是由统计归纳得出的。
二、条件概率
条件概率就是在事件\(X=x\)的情况下,发生\(Y=y\)的概率。比如在这里,小孩喜欢吃冰激凌,这个可以看成:已知这个人是小孩,那么它喜欢吃冰激凌的概率是90%,在这里面,一个人的年龄就是X,小孩就是x,喜不喜欢吃冰激凌就是Y,喜欢吃冰激凌就是y。对应的条件概率表达式就是:\(P(Y=y|X=x)\)
三、后验概率
后验概率可以看做是条件概率的反向,就是如果事件Y=y发生了,那么X=x发生的概率。
而后验概率也就是我们这个问题的答案,对于求解这个问题,我们有叶贝斯公式:
\(P(X=x|Y=y)=\frac{P(Y=y|X=x)*P(X=x)}{P(Y=y)}\)
也就是如果一个人爱吃冰激凌,那么他是小孩的概率等于(一个人是小孩的概率*一个人是小孩且她喜欢吃冰激凌的概率)也就是一个人是一个喜欢吃冰激凌的小孩的概率除以一个人喜欢吃冰激凌的概率,也就是0.18÷0.51=0.35
其实如果把分母移动过去,这个公式的含义也十分明显,两边都等于一个人是喜欢吃冰激凌的小孩子的概率,只不过是把条件和结果反了过来而已。
关于公式更深一步的讨论,可以参考朴素贝叶斯算法的理解与实现