贝叶斯介绍
贝叶斯是十八世纪英国伟大的数学家,贝叶斯算法源于他生前为解决 “逆概” 问题而写的一篇文章。
逆概问题
既然贝叶斯算法解决的问题是逆概问题,那么我们首先就需要搞明白什么是正概,什么是逆概了。我们拿中学数学课常用的摸球来举个例子。
1)正向概率
假设袋子里有 M 个白球,N 个黑球,随机摸出一个球,请问摸出白球的概率有多大?这个问题对大家来说想必非常轻松了,摸出白球的概率为:M/(M+N) 。
以上就是正向概率的求解,我们事先是知道袋子中黑球白球的分布的,所以可以轻松的求出摸出白球和摸出黑球的概率。
2)逆向概率
如果我们事先不知道袋子中黑球和白球的比例,而是闭上眼镜,摸出几个球之后。之后观察被摸出的球中,白球和黑球的比例,并以此来推测袋中黑球和白球的比例。
这个就是逆向概率,我们实现并不知道黑球和白球的分布。现实世界中,应用更广泛的也是逆向概率,因为人类的观察能力是有限的,比如观察海洋生物的多样性,计算一批产品中的残次品概率等等,我们是无法统计到所有样本的。
贝叶斯公式推导
我们先来看一下贝叶斯公式,不需要记住,只需要先有个大概印象就好。
场景来了:假设某个中学男女比例为 60%:40%,并且男生总是穿长裤,而女生则一半穿长裤一半穿裙子。
那么请问穿裤子的学生中女生的概率 P(Girl|Pants)
是多少呢?
第一步:我们需要知道穿裤子的人有多少个?假设学校总人数为 M
,则穿裤子的人数为男生穿裤子的人数+女生穿裤子的人数,即 M*P(Boy)*P(Pants|Boy) + M*P(Girl)*P(Pants|Girl)
,其中 P(Pants|Boy)
和 P(Pants|Girl)
为条件概率,即男生穿裤子的概率和女生穿裤子的概率。
注:根据题意男生总是穿长裤,则
P(Pants|Boy) = 100%
;女生一半穿长裤一半穿裙子,则P(Pants|Girl) = 50%
。
第二步:接下来,还需要知道穿裤子的女生的人数,首先得是女生,其次还得是穿着裤子,因此穿裤子的女生就是 M*P(Girl)*P(Pants|Girl)
。
第三步:计算穿裤子中的人中,女生的概率 P(Girl|Pants)
,即 M*P(Girl)*P(Pants|Girl) / (M*P(Boy)*P(Pants|Boy) + M*P(Girl)*P(Pants|Girl))
,将 M
进行约分得到 P(Girl)*P(Pants|Girl) / (P(Boy)*P(Pants|Boy) + P(Girl)*P(Pants|Girl))
。
通过以上三步的拆解,最终得到:
P(Girl|Pants) = P(Girl)*P(Pants|Girl) / (P(Boy)P(Pants|Boy) + P(Girl)P(Pants|Girl))
其中,分母 (P(Boy)*P(Pants|Boy) + P(Girl)*P(Pants|Girl))
也就是穿裤子的概率,可以表示为 P(Pants)
,上述计算穿裤子中女生概率的公式就变为:
P(Girl|Pants) = P(Girl)*P(Pants|Girl) / P(Pants)
这样,我们求逆向概率,穿裤子的人中是女生的概率就可以转变为求正向概率了。把其中的 Girl
和 Pants
换成 A
和 B
就是小鱼前面给出的贝叶斯公式了。
网友评论