先看贝叶斯定力的公式表示:
通过事例来了解
已知对steve这个人的大概描述,(温顺,乐于助人,做事有条理,注重细节,喜欢钻研,对周围的人不太感兴趣)推断steve的职业:
图书管理员 or 农民
大部分人倾向于图书管理员
但是这些人忽略了图书管理员与农民的比例
怎么理性的不忽略调所有重要的因素呢
先画出样本
在所有样本中,40%图书管理员hit(1040%=4),10%的农民hit(20010%=20)
那么从符合条件的人中随便抽出一个,
是图书管理员的概率表示为:
4/24=16.7%
是农民的概率为:
20/24=83.3%
所以,你的先验经验认为是图书管理员的概率大于是农民的概率,然而实际农民的数量是数倍于图书管理员的
贝叶斯定理的本质是新的证据不能直接用于你的决策,应该用来更新你的先验经验
在算法上就是
再如:
离散数据案例
样本:
身高 体重 鞋码 性别
高 高 高 男
低 低 低 女
中 高 高 男
中 低 低 女
…
假如我们有一些这样的样本数据
我们遇到的数据可以分为两种,一种是离散数据,另一种是连续数据。那什么是离散数据呢?
离散就是不连续的意思,有明确的边界,比如整数 1,2,3 就是离散数据,而 1 到 3 之间的任何数,就是连续数据,它可以取在这个区间里的任何数值。
我以下面的数据为例,这些是根据你之前的经验所获得的数据。然后给你一个新的数据:身高“高”、体重“中”,鞋码“中”,请问这个人是男还是女?
针对这个问题,我们先确定一共有 3 个属性,假设我们用 A 代表属性,用 A1, A2, A3 分别为身高 = 高、体重 = 中、鞋码 = 中。一共有两个类别,假设用 C 代表类别,那么 C1,C2 分别是:男、女,在未知的情况下我们用 Cj 表示。
那么我们想求在 A1、A2、A3 属性下,Cj 的概率,用条件概率表示就是 P(Cj|A1A2A3)。根据上面讲的贝叶斯的公式,我们可以得出:
因为一共有 2 个类别,所以我们只需要求得 P(C1|A1A2A3) 和 P(C2|A1A2A3) 的概率即可,然后比较下哪个分类的可能性大,就是哪个分类结果。
在这个公式里,因为 P(A1A2A3) 都是固定的,我们想要寻找使得 P(Cj|A1A2A3) 的最大值,就等价于求 P(A1A2A3|Cj)P(Cj) 最大值。
我们假定 Ai 之间是相互独立的,那么: P(A1A2A3|Cj)=P(A1|Cj)P(A2|Cj)P(A3|Cj)
然后我们需要从 Ai 和 Cj 中计算出 P(Ai|Cj) 的概率,带入到上面的公式得出 P(A1A2A3|Cj),最后找到使得 P(A1A2A3|Cj) 最大的类别 Cj。
我分别求下这些条件下的概率:
P(A1|C1)=1/2, P(A2|C1)=1/2, P(A3|C1)=1/4,(身高为高,一半是男性;体重为中,一半是男性;鞋码为中,1/4是男性)
P(A1|C2)=0, P(A2|C2)=1/2, P(A3|C2)=1/2,
所以 P(A1A2A3|C1)=1/16,
P(A1A2A3|C2)=0。
因为 P(A1A2A3|C1)P(C1)>P(A1A2A3|C2)P(C2),
所以应该是 C1 类别,即男性。
总结:分别计算两种结果的概率,取最大
连续数据案例
实际生活中我们得到的是连续的数值,比如下面这组数据:
那么如果给你一个新的数据,身高 180、体重 120,鞋码 41,请问该人是男是女呢?
公式还是上面的公式,这里的困难在于,由于身高、体重、鞋码都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办呢?
这时,可以假设男性和女性的身高、体重、鞋码都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。
比如,男性的身高是均值 179.5、标准差为 3.697 的正态分布。所以男性的身高为 180 的概率为 0.1069。怎么计算得出的呢? 你可以使用 EXCEL 的 NORMDIST(x,mean,standard_dev,cumulative) 函数,一共有 4 个参数:
x:正态分布中,需要计算的数值;
Mean:正态分布的平均值;
Standard_dev:正态分布的标准差;
Cumulative:取值为逻辑值,即 False 或 True。它决定了函数的形式。当为 TRUE 时,函数结果为累积分布;为 False 时,函数结果为概率密度。
这里我们使用的是 NORMDIST(180,179.5,3.697,0)=0.1069。
同理我们可以计算得出男性体重为 120 的概率为 0.000382324,男性鞋码为 41 号的概率为 0.120304111。
所以我们可以计算得出:
P(A1A2A3|C1)=P(A1|C1)P(A2|C1)P(A3|C1)=0.10690.000382324 0.120304111=4.9169e-6
同理我们也可以计算出来该人为女的可能性:
P(A1A2A3|C2)=P(A1|C2)P(A2|C2)P(A3|C2)=0.00000147489 0.015354144 0.120306074=2.7244e-9
很明显这组数据分类为男的概率大于分类为女的概率。
例如一项针对1000个样本的癌症检测,这1000个样本中有10%是真阳性,
检测结果是:
10%的阳性样本中有一人为假阴性
剩下90%中有89人为假阳性
那么,有一个检测结果为阳性的样本,要么是在真阳性的9个样本,要么是假阳性的89个样本
则这个样本为阳性的概率为:
实际我们知道,受试这真阳性中有9人的结果正确,我们说它的正确率9/10,在医学上,叫做检测的灵敏度为9/10
另外990个样本有901的检测结果正确
以上,如果一个样本检测出阳性,只有1/11的概率是阳性
在医生们已知
发病率为1%
灵敏度是90%
特异度是91%
这三个数据
而推断出一个阳性样本最接近的正式概率是9/10(1/11)
为什么会存在这样的误差
检测前正式的概率为1/100(1000个样本10个阳性)
而通过这次检测,将先验概率提高到1/11
而我们求得的四个数据中
将灵敏度除以假阳率
表示检测结果为阳性时,具体有多少可能患病
这个数称为贝叶斯系数,或者似然比
(可以把这个数理解为一个系数,即出现阳性结果时,有多少可能是真的阳性,按概率的思路来理解就是)