公式介绍
贝叶斯定理(贝叶斯公式又被称为贝叶斯定理)由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系。
它的公式是: P(B|A) = P(A|B)*P(B) / P(A)
意思是说,(在事件A发生的情况下,B发生的概率) 等于 (B发生的情况下,A发生的概率) 乘以 (B发生的概率) 除上 (A发生的概率)
贝叶斯公式,是用来解决逆向概率问题的。比如百科上面的一个例子:
一座别墅在过去的 20 年里一共发生过 2 次被盗,别墅的主人有一条狗,狗平均每周晚上叫 3 次,在盗贼入侵时狗叫的概率被估计为 0.9,问题是:在狗叫的时候发生入侵的概率是多少?
当我们知道了一些正向概率的情况下,需要根据这些数据,反过来求逆向概率的时候,就使用贝叶斯公式。
贝叶斯公式推导
下面有几个基本概念,首先假设有事件A和事件B。
-
事件相互独立
事件A的发生与事件B发生没有关系,记P (B | A) = P(B), 就是无论事件A发生或不发生,事件B发生的概率不变。
-
事件相互不独立
事件A的发生与事件B发生没有关系,P(B|A) 不等于 P(B), 贝叶斯定理中的两个事件就是这种关系。
-
条件概率
指在事件A发生的情况下事件B的概率,记作 P (B | A)。
-
联合概率
指事件A和事件B同时发生的概率,记作 P(BA) 或 P(AB)。
-
P(AB) 与 P(A | B)的区别
如下图的右边部分,方框表示事件所有的情况, 即包括A不发生,B不发生,A发生,B发生等等。 P(A|B)表示,先在B的椭圆中,在去计算椭圆A在B中的占比, 不考虑B不发生的情况。概率等于图中阴影部分除以B的部分。 P(AB)表示,在所有的情况下找到A和B同时发生的部分,也就是阴影部分, 不过,概率却是等于图中阴影部分除以整个方框的部分。
我自己画的,汗!
根据条件概率的公式有 P(AB) = P(A)P(B|A),意思就是AB同时发生的概率等于A发生的概率乘上在A发生的情况下B发生的概率。
而P(AB) = P(BA) -------- (1)
P(AB) = P(A)P(B|A) --------- (2)
P(BA) = P(B)P(A|B) --------- (3)
根据 (1)(2)(3) 可以得到 P(A)P(B|A) = P(B)P(A|B),这样就可以直接得到贝叶斯公式
P(B|A) = P(A|B)*P(B) / P(A)
朴素贝叶斯
朴素贝叶斯是用来解决特征有多个维度的情况,在这种情况下,特征不是只有一个值,而是一组值,这样求 P(X | Y)就不容易得到。
贝叶斯定理、特征条件独立假设就是朴素贝叶斯的两个重要的理论基础。
特征条件独立假设
朴素贝叶斯 在这里就做了一个特征条件独立假设,就是假设特征之间是独立互不影响的。
比如 x 是一个向量,为 {x1, x2, x3} ,类别为 y。要求P (X | y),如果没有这个假设,x1的出现频率和x2的出现频率有关系,那这样就没法求了。有了假设后,我们分别求出x1、x2、x3出现的概率在相乘就可以得到 P(X | Y)的值了。
朴素贝叶斯推导
给定训练数据集(X,Y),其中每个样本x都包括n维特征,即x=(x1,x2,x3,...,xn),类标记集合含有k种类别,即y=(y1,y2,...,yk)。
具体数据大概是如果现在来了一个新样本x,我们要怎么判断它的类别?从概率的角度来看,这个问题就是给定x,它属于哪个类别的概率最大。
这样我们可以分别求出 P( y1 | X)、P( y2 | X) ... P( yn | X),概率最大的就是判断的分类。
以 P( y1 | X)为例,根据贝叶斯定理,P( y1 | X) = P( X | y1) * P (y1) / P (X)。其中 P(X) 是 P (X)出现的概率,可以发现,无论Y如何取值,P (X)都是固定的,所以我们可以将P(X)忽略掉,直接求 P (X | y1) * P (y1) 来比较大小。
对于 P(y1) 比较容易得到,就是y1出现的次数除以y的类别数量。
对于 P (X | y1),因为我们刚刚做了特征条件独立假设,所以 P (X | y1) = P (x1 | y1) * P (x2 | y1) * ... * P (xn | y1)。这个也比较容易求得。
在算出所有的 P( y2 | X) ... P( yn | X),取概率最大的分类。
三种常见的模型
多项式模型
当某一维特征的值xi没在训练样本中出现过时,会导致P(xi|yk)=0,从而导致后验概率为0。多项式模型可以克服这个问题。
当特征是离散的时候,可以使用多项式模型。
多项式模型在计算先概率 P(yk) 和条件概率 P(xi|yk) 时,会做一些平滑处理,具体公式为:
当α=1时,称作Laplace平滑,当0<α<1时,称作Lidstone平滑,α=0时不做平滑。
高斯模型
当特征是连续值的时候,运用多项式模型(不做平滑处理时)就会发现很多 P (xi | y) 都是 0 ,即使做平滑处理,也不能描述真实情况。
所以在连续值的时候,可以选用高斯模型。下面是高斯正太分布公式
下面是一组人类身体特征的统计资料。
性别 | 身高(英尺) | 体重(磅) | 脚掌(英寸) |
---|---|---|---|
男 | 6 | 180 | 12 |
男 | 5.92 | 190 | 11 |
男 | 5.58 | 170 | 12 |
男 | 5.92 | 165 | 10 |
女 | 5 | 100 | 6 |
女 | 5.5 | 150 | 8 |
女 | 5.42 | 130 | 7 |
女 | 5.75 | 150 | 9 |
已知某人身高6英尺、体重130磅,脚掌8英寸,请问该人是男是女?
根据朴素贝叶斯分类器,计算下面这个式子的值。
P(身高|性别) x P(体重|性别) x P(脚掌|性别) x P(性别)。
这里 身高 体重 脚掌尺寸 都是连续变量,并且数量不多,不好分成区间。
这时,可以假设男性和女性的身高、体重、脚掌都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。
比如,男性的身高是均值5.855、方差0.035的正态分布。所以,男性的身高为6英尺的概率的相对值等于1.5789(大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。
对于脚掌和体重同样可以计算其均值与方差。有了这些数据以后,就可以计算性别的分类了。
P(男) = P(身高=6|男) x P(体重=130|男) x P(脚掌=8|男) x P(男)
= 6.1984 x e-9
P(女) = P(身高=6|女) x P(体重=130|女) x P(脚掌=8|女) x P(女)
= 5.3778 x e-4
可以看到,女性的概率比男性要高出将近10000倍,所以判断该人为女性。