贝叶斯公式/贝叶斯法则/贝叶斯定理
介绍
贝叶斯定理被用来做什么?它被用来进行概率预测任务:在某个条件下,某件事发生的可能性有多大?
wiki 把为什么要做这个定理谈的很清楚,是为了覆盖逆概的场景:
在贝叶斯撰写关于贝叶斯定理的文章之前,在此之前,在此背景下,在此阶段,
人们已经能够进行正向概率计算,
例如,
解决诸如"假设袋子里面有N个白球和M个黑球,
随机摸出一球,
求摸到黑球的概率有多大"这类问题。
然而,
一个自然的问题随之而来:
如果我们事先并不清楚袋子中黑白比例的具体数值,
而是通过闭眼连续摸取若干个球,
观察这些被抽取出来的颜色分布情况后,
我们便可以据此做出关于袋子中黑白比例的何种估计。
这个问题恰就是所谓的逆概率问题。
了解一下公式
事件B发生的条件下,事件A发生的概率为:

同理可得,事件A发生的条件下,事件B发生的概率为:

很容易推导得到:

假设若P(A)≠0,那么就可以得到用来预测概率的贝叶斯定理了:

这个定理显然是可以推导到多个条件的,比如在2个条件的情况下:

经典案例
信某宗教的人是恐怖分子的概率是多少?
假设有百分之百的恐怖分子信仰某一宗教;一个人信仰某一宗教,并不能断定他/她就是百分之百的恐怖分子;还需计算先验概率;假设有七万名恐怖分子(世界总人口约为七十年亿);约三分之一的人口信仰某一宗教;那他/她属于恐怖分子的概率有多大?
解:
我们要求解的是这个概率: P(恐怖分子|信某教)
套用公式,得到 :
P(恐怖分子|信某教)
= P(信某教|恐怖分子) P(恐怖分子) / P(信某教)
= 100% * (7万人/70亿人) / (1/3)
= 0.003%
也即十万分之三的概率。
深入探讨下去,在数学理论层面而言,在民主党政策中没有特定宗教群体受到排斥这一论断是成立的;然而,在题目设定下假设所有恐怖分子都信仰某一宗教,则这一前提本身就存在一定的合理性问题。
检测呈阳性的雇员吸毒概率是多少?
假想一个常规检测方案,其敏感度与可靠性指标均达到 99% 。在该方案中,吸毒者群体中的阳性反应概率为 99% ,而未吸食毒品者的阴性反应概率同样为 99% 。现假定某公司对全体雇员实施毒品-screening测试,其中有 0.5% 的员工属于吸食毒品群体。那么,对于测试呈现阳性反应的所有雇员而言,其中有多少比例的实际吸食毒品情况呢?
解:
我们要求解的是这个概率: P(吸毒|检测呈阳性的雇员)
套用公式,得到 :
P(吸毒|检测呈阳性雇员)
= P(检测呈阳性雇员|吸毒) P(吸毒) / P(检测呈阳性雇员)
= 99% * 0.5% / [P(检测呈阳性雇员∩吸毒) + P(检测呈阳性∩不吸毒)]
= 99% * 0.5% / [P(检测呈阳性雇员|吸毒) * P(吸毒) + P(检测呈阳性|不吸毒) * P(不吸毒)]
= 99% * 0.5% / [99% * 0.5% + 1% * 99.5%]
= 0.3322
这表明尽管由于吸毒检测的准确性达到了99% ,然而根据贝叶斯定理可知:当某人检测呈阳性时,其吸食毒品的概率约为约33%,而不吸食毒品的可能性则相对较高。
此外需要注意的是, 检测准确性水平的高低, 对结果出现概率的影响程度也存在显著差异。具体而言, 当检测精确度达到 99.9% 时, 阳性检出者中吸毒者的比例提升至了 83.39% 。
垃圾邮件的过滤
该方法是由 Paul Graham 在其著作 《黑客与画家》 中所阐述的。这个问题可以通过逆向推理来解决;我们需要计算的概率是 P(垃圾邮件|检测到某种特征)
这一类特征主要基于以下几种类型:关键词、时间戳、频率度量以及邮件附件类型等;这些特征还可构成复合型的特征组合。
为了简化分析过程,我们可以选取最基础的 关键词 作为判断依据。通常而言,在中国式的垃圾邮件中发现‘发票’这个词的可能性很高。那么我们如何计算一封邮件被判定为垃圾邮件的概率呢?这可以通过贝叶斯定理来计算为 P(垃圾邮件|检测到‘发票’关键词)。
P(垃圾邮件|检测到“发票”关键词)
= P(检测到“发票”关键词|垃圾邮件) / P(检测到“发票”关键词)
好
如何确定 发票 关键词在整个邮件中的出现概率?理论上讲,只有当我们统计全部邮件样本时,才能得出精确的数据结果。然而,在实际操作中,由于时间和资源限制,我们无法实现这一点.因此,不得不作出某种折 Compromise:选取一定数量的典型邮件样本,将它们分为两组:一组为正常邮件样本,另一组为垃圾邮件样本.然后通过分析这两组数据,分别计算 发票 这个关键词在垃圾邮件和正常 emails 中的出现频率或发生概率.
可以看出,在训练数据量较大时(即使用了大量样本),所得到的概率结果会更接近真实值。Paul Graham采用了正常邮件和垃圾邮件各4000封的数据集进行研究。对于那些仅出现在垃圾邮件中的特征(即单词或模式),他假设该特征在正常 email 中的出现率设置为1%;而对于那些仅出现在正常 email 中的特征,则将其假设为出现在 spam 中的概率设为1%(反之亦然)。这种设定是为了防止出现零概率问题。随着 email 数据量的增长(即样本数量不断增加),计算结果也会随之自动调整以达到最佳效果)。
这样的话,将公式继续分解为如下:
P(垃圾邮件|检测到“发票”关键词)
= P(检测到“发票”关键词|垃圾邮件) / P(检测到“发票”关键词)
= 在垃圾邮件中检测到"发票"关键词的概率 / [独立事件 P(在垃圾邮件中检测到"发票"关键词) + P(在正常邮件中检测到"发票"关键词)]
= [ P(\text{识别出"发票"关键词}|\text{垃圾邮件样本}) \div P(\text{垃圾邮件样本}) ] + [ P(\text{识别出"发票"关键词}|\text{普通邮件样本}) \div P(\text{普通邮件样本}) ]
就可以根据训练模型计算出来的概率来进行初始值的计算。随后通过让大量用户将垃圾邮件标记为正常邮件以及将正常邮件标记为垃圾邮箱的行为不断重复训练纠正直到接近一个合理数值。
然而,在此之前还有一个问题值得注意:即使某个关键词的概率(作为单独的条件)再高,这封邮件仍然有成为正常邮件的可能性;因此,在此处应用贝叶斯定理时,请考虑多个相关因素,即计算这个概率:
P(垃圾邮件|检测到“A”关键词,检测到“B”关键词,检测到"C",...)
Paul Graham提出了一种策略,在处理邮件分类问题时将注意力集中在包含特定特征的关键字上。具体而言,在一封邮件中提取出概率 P(垃圾邮件|检测到"X"关键词) 最高的15个关键词,并计算这些关键词的联合概率值。(如果某个关键词在该系统中首次出现,则将该关键词的概率值设定为0.4)
