贝叶斯公式
定义
根据条件概率的定义,在事件B发生的条件下事件A发生的概率是
P(A|B)=P(A∩B)/P(B)
同样地,在事件A发生的条件下事件B发生的概率
P(B|A)=P(A∩B)/P(A)
整理与合并上述两个方程式,便可以得到:
P(A|B)P(B)=P(A∩B)=P(B|A)P(A)
上式两边同除以P(B),若P(B)是非零的,我们便可以得到贝叶斯定理的公式表达式:
P(A|B)=P(B|A)*P(A)/P(B)
理解
我们把P(A)称为"先验概率"(Prior probability),即在B事件发生之前,我们对A事件概率的一个判断。P(A|B)称为"后验概率"(Posterior probability),即在B事件发生之后,我们对A事件概率的重新评估。P(B|A)/P(B)称为"可能性函数"(Likelihood),这是一个调整因子,使得预估概率更接近真实概率。
所以,条件概率可以理解成下面的式子:
后验概率 = 先验概率 x 调整因子
这就是贝叶斯推断的含义。我们先预估一个"先验概率",然后加入实验结果,看这个实验到底是增强还是削弱了"先验概率",由此得到更接近事实的"后验概率"。
例子
1.已知某种疾病的发病率是0.001,即1000人中会有1个人得病。现有一种试剂可以检验患者是否得病,它的准确率是0.99,即在患者确实得病的情况下,它有99%的可能呈现阳性。它的误报率是5%,即在患者没有得病的情况下,它有5%的可能呈现阳性。现有一个病人的检验结果为阳性,请问他确实得病的可能性有多大?
P(得病|阳性) = 0.019
2.一种癌症,得了这个癌症的人被检测出为阳性的几率为90%,未得这种癌症的人被检测出阴性的几率为90%,而人群中得这种癌症的几率为1%,一个人被检测出阳性,问这个人得癌症的几率为多少?
P(得病|阳性) = 0.083
P(未得病|阳性) = 0.917
总结
贝叶斯公式,就是对我们预估的“先验概率prior”,不断用“后验概率(条件概率)”来修正
朴素贝叶斯NB
公式,定义
Cmap = P(c|d) = P(c|t1,t2,…,tn)
= P(t1,t2,…,tn|c) * P( c ) / P(t1,t2,…,tn)
去掉不依赖于c的分母,得到
Cmap = P(t1,t2,…,tn|c) * P( c )
P(c|t1,t2,…,tn)表示,输入t1…tk这组输入的任意组合后,得到状态为c的概率
通过贝叶斯公式计算后,将“后验概率”表达为“先验概率”和“训练数据结果”的乘积
朴素贝叶斯分类器,基于一个假设:所有的t1…tk都是相互独立的,也就是说一个输入的所有属性值相互不影响。那么P(t1,t2,…,tn|c)就可以写成每个属性的单个乘积,即:
P(t1,t2,…,tn|c) = P(t1|c) * P(t2|c) * … * P(tn|c)
理解
什么是朴素贝叶斯分类器,简单来说,就是我们有一个样本,一堆的输入数据和结果。我们用朴素贝叶斯来训练这些数据,也就是建立一个模型,从这些数据中找到一些规律,将这些数据按照某些特征分类。这样,我们再获得一个新的输入数据后,就可以根据我们自己制作的分类器,将新的数据也重新归类,并且计算出我们想要概率结果。
举个例子,就比如说小明是否早上出门上课,取决于很多因素。起床时间,天气状况,身体状况,精神状态,blahblah。我们现在有很多历史数据和对应的是否去上课的结果。
现在我们已知今天的情况,想判断小明是否去上课。就可以建模,训练历史数据,然后输入今天的数据,得到一个上课与不上课的概率,看看哪个情况的概率较大。
例子
除了上述简单的例子之外,朴素贝叶斯也可以应用于文本分类和其他实际应用中