贝叶斯公式的理解——机器学习算法(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a727911438/article/details/55847696








贝叶斯公式作为数学中最有趣的公式之一,其简洁强大实用的特性在现实生活中使用了两百多年,将人类的思维模式用数学来表达出来,堪称上帝的公式。


本篇文章面向学了贝叶斯公式但没学懂的童鞋,如果你还对贝叶斯公式存在困惑,或许看了本文就理解了。对于只想简单了解贝叶斯公式的童鞋,本文也足够了。

在没有学过概率论的童鞋,思维模式大多是正向思维。什么是正向思维?有一个很典型的例子就是,有一个黑箱子,我们已经知道里面有N个白球和M个黑球,那么我们就能知道闭着眼睛随机抽出来的球的概率。正向思维就是我们只有知道了所有可能发生的情况,才能推断出每个情况发生的概率。

既然有正向思维,那么倒向思维是什么?倒向思维是,如果我们事先并不知道黑箱里面黑白球的比例,而是闭着眼睛摸出一个或好几个球,观察这些取出来的球的颜色之后,就此对黑箱里面的黑白球的比例进行推测,但是推测不出箱子里面球的数量。通俗地讲,就是通过一些已知的概率可以求一些未知的概率。

伟大的贝叶斯公式就是用倒向思维来条件概率的。


这里又引出一个概念:条件概率。先看条件概率的符号表示:P(B|A),意思是在事件A发生的条件下,事件B发生的概率。

刚才说贝叶斯公式是求条件概率的,那是时候要亮出贝叶斯公式了:


P(B|A) = P(AB) / P(A)


我们先来理解 P(B|A) 究竟是个什么鬼,P(B|A) 是在事件A发生的条件下,事件B发生的概率。有人还是很难理解,我们换个说法,P(B|A) 在公式里面的意思是 P(AB) 占 P(A) 的比重。



(实在还是不理解条件概率的话,来看下面的文氏图来辅助理解 P(AB) 占 P(A) 的比重是什么意思

扫描二维码关注公众号,回复: 3849738 查看本文章






------------------------------------------------------------------------------------------------------------------------------



以上就是贝叶斯的简单理论知识。不过,学数学嘛,只学理论不行的,还要用到例子来学习。

首先,我们先来看一个正向思维的例子,以LOL某游戏玩家大雄同学玩了100局游戏为例(其中涉及“开黑”术语是和朋友一起玩游戏的意思)。

玩家大雄胜利情况
玩家 总游戏局数 总胜利局数 开黑局数 开黑且胜利的局数
大雄 100 80 34 24


设A事件为玩家胜利

P(A) = 80/100 = 0.8

设B事件为玩家开黑

P(B) = 34/100 = 0.34

设AB事件为玩家开黑且胜利

P(AB) = 24/100 = 0.24

前方注意,条件概率来了

设C事件为如果玩家胜利,此胜利局为开黑局

P(C) = P(B|A) = P(AB) / P(A) = 0.24/0.8 = 0.3

设D事件为如果玩家开黑,此开黑局为胜利局

P(D) = P(A|B) = P(AB) / P(B) = 0.24/0.34 = 0.71



------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




看了以上例子,是否对正向思维有了更好的理解。是时候来研究一下倒向思维的贝叶斯公式了。


玩家大雄的胜利情况
玩家 总胜率 胜利局中为开黑局的可能性 失败局中为开黑局的可能性
大雄 0.8 0.3 0.5


我们要做的是,根据表格中的已知的概率,来求玩家在开黑局中胜利的概率。

设A事件为玩家胜利

P(A) = 0.8
P(~A) = 1 - P(A) = 1-0.8 = 0.2

设B事件为玩家开黑,根据已知条件概率有

胜利局中为开黑局的可能性:

P(B|A) = 0.3
失败局中为开黑局的可能性:
P(B|~A) = 0.5

根据全概率公式求玩家玩游戏会开黑的概率

P(B) = P(B|A) * P(A) + P(B|~A) * P(~A)
        = 0.3*0.8 + 0.5*0.2
        = 0.34

设C事件为玩家在开黑局中取得胜利

计算过程中将贝叶斯公式展开,其中分母由全概率公式求得

P(C) = P(A|B) = P(AB) / P(B)
        = P(B|A) * P(A) / ( P(B|A) * P(A) + P(B|~A) * P(~A) )

        = 0.71


结论:我们根据所有的计算结果,我们可以猜测得出,大雄玩家平时玩LOL,有三成机率会和朋友一起开黑,并且在只要开黑就有七成的胜利把握。最终结论就是,跟大雄一起开黑不算太坑。


=================================================================================================================



看了上面这个例子,是不是对倒向思维有了很好的理解。


贝叶斯公式作为机器学习最核心的算法之一,单纯只有以上对贝叶斯公式的理解还是不够,还需要学习多维随机变量的概率密度、最大似然估计、各种分布等等概率学的知识。否则也难以理解机器学习算法中的朴素贝叶斯算法、贝叶斯分类模型等等概念。学习概率论和数理统计的知识是人工智能的基础,但是学习概率论的前提仍需有高等数学和线性代数的知识作为铺垫。所以,单纯依赖离散数学和数据结构的知识来编程已经完全不够的,因为未来是人工智能的时代。噢,离题了,在机器学习领域中,在贝叶斯公式中加了一些名词(不知是在统计学中加的名词还是在计算机领域加的,这个我就没考究过,甚至名词都有可能有误,因为在网上看到的):


后验概率P(A|B) = 似然函数P(B|A) * 先验概率P(A) / 证据因子P(B)


上面四个概念将会在往后系列文章(二)中做解释。



===============================================================================================================================



下面再举一个类似的例子作为本文的结束:

情景:作为程序员的小明又要去相亲了,根据小明以往的经验,如果相亲对象是一个美女,他们有下次约会的概率有九成;如果相亲对象不够漂亮,他们有下次约会的概率有三成;综合媒婆和朋友的说法,得知相亲对象是美女的概率有两成,那么,他跟相亲对象有下次约会的概率是多少?

设A事件为相亲对象是美女,根据题意,A事d件的发送有两成概率

P(A) = 0.2

则相亲对象不漂亮的概率有八成

P(~A) = 0.8

设B事件为小明跟相亲对象有第二次约会,那么有

P(B|A) = 0.9
P(B|~A) = 0.3

根据伟大的贝叶斯公式,求得

P(B) = P(B|A) * P(A) / ( P(B|A) * P(A) + P(B|~A) * P(~A) )
        = 0.9*0.2 / ( 0.9*0.2 + 0.3*0.8 )
        = 0.43


根据结果:小明跟相亲对象有第二次约会的概率不到五成,果然程序员找女朋友好难啊。。。




===================================================


正文到此结束,有错误之处,还请指出,谢谢观看!


======================================




猜你喜欢

转载自blog.csdn.net/a727911438/article/details/55847696