关键字:贝叶斯、概率、贝叶斯分类算法、应用
本文收集整理的相关知识点大多来自网络,如有不恰当之处,还望指正。
什么是概率?
什么是概率这个问题似乎人人都觉得自己知道,却有很难说明白。比如说我问你 掷一枚硬币为正面的概率为多少?,大部分人第一反应就是50%的几率为正。不好意思,首先这个答案就不正确,只有当材质均匀时硬币为正面的几率才是50%(所以不要觉得打麻将的时候那个骰子每面的几率是相等的,万一被做了手脚呢)。
好,那现在假设硬币的材质是均匀的,那么为什么正面的几率就是50%呢?有人会说是因为我掷了1000次硬币,大概有492次是正面,508次是反面,所以近似认为是50%,说得很好(掷了1000次我也是服你)。
掷硬币的例子说明了古典统计学的思想,就是概率是基于大量实验的,也就是 大数定理。那么现在再问你,有些事件,例如:明天下雨的概率是30%;A地会发生地震的概率是5%;一个人得心脏病的概率是40%…… 这些概率怎么解释呢?难道是A地真的100次的机会里,地震了5次吗?肯定不是这样,所以古典统计学就无法解释了。再回到掷硬币的例子中,如果你没有机会掷1000次这么多次,而是只掷了3次,可这3次又都是正面,那该怎么办?难道这个正面的概率就是100%了吗?这也是古典统计学的弊端。
什么是独立概率?
事件A的发生对事件B发生的概率没有影响,这样的两个事件叫做相互独立事件
独立:扔骰子的每一次投掷试验,扔硬币的每一次投掷试验
不独立:天气形势变化,红绿灯的变化和车辆行驶状态
什么是贝叶斯定理?
通常,事件A在事件B的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系,贝叶斯法则就是这种关系的陈述。
贝叶斯法则又被称为贝叶斯定理、贝叶斯规则,是指概率统计中的应用所观察到的现象对有关概率分布的主观判断(即先验概率)进行修正的标准方法。当分析样本大到接近总体数时,样本中事件发生的概率将接近于总体中事件发生的概率。
我们将一枚硬币抛向空中,落地时正面和反面的概率都是50%,这是常识。但如果我们抛100次,正面和反面的次数并不会都是50,有可能正面40次,反面60次。那抛1000次,10000次呢,正面反面的次数有可能还不会是五五开。只有将抛硬币无数次,正面和反面出现的次数才会趋向于相等。也就是说,正面和反面出现的概率50%是一个极限、客观的概率,并不会随着抛掷次数的增减而变化。
但是贝叶斯定理与这个精确客观的概率不同,它要求当事人估计一个主观的先验概率,再根据随后观察到的事实进行调整,随着调整次数的增加,结果将会越来越精确。这里有一个问题,数学不是讲究客观吗?这里怎么冒出一个主观概率出来?这也是当时的学者质疑贝叶斯的问题。事实上,贝叶斯定理在17世纪提出后,一直受到冷落,直到20世纪30年代电子计算机出现后才得到广泛应用。如今我们每天都在和贝叶斯定理打交道:你上搜索引擎搜寻问题,背后的算法中就有贝叶斯公式的身影;你邮箱里的垃圾邮件,很有可能就是运用贝叶斯定理帮你拦截的。
为什么会出现这种情况?因为贝叶斯定理符合人类认知事物的自然规律。我们并非生而知之,大多数时候,面对的是信息不充分、情况不确定,这个时候我们只能在有限资源的情况下,作出决定,再根据后续的发展进行修正。实际上,这也是科学研究的步骤。
说的专业一点就是这样解释的:
作为一个规范的原理,贝叶斯法则对于所有概率的解释是有效的;然而,频率主义者和贝叶斯主义者对于在应用中概率如何被赋值有着不同的看法:频率主义者根据随机事件发生的频率,或者总体样本里面的个数来赋值概率;贝叶斯主义者要根据未知的命题来赋值概率。
贝叶斯统计中的两个基本概念是先验分布和后验分布:
1、先验分布。总体分布参数θ的一个概率分布。贝叶斯学派的根本观点,是认为在关于总体分布参数θ的任何统计推断问题中,除了使用样本所提供的信息外,还必须规定一个先验分布,它是在进行统计推断时不可缺少的一个要素。他们认为先验分布不必有客观的依据,可以部分地或完全地基于主观信念。
2、后验分布。根据样本分布和未知参数的先验分布,用概率论中求条件概率分布的方法,求出的在样本已知下,未知参数的条件分布。因为这个分布是在抽样以后才得到的,故称为后验分布。贝叶斯推断方法的关键是任何推断都必须且只须根据后验分布,而不能再涉及样本分布。
下面我们来引出贝叶斯公式
首先通过面的韦恩图,我们理解的似然(Likelihood)是指两个相关的条件概率之比,即给定B的情况下A发生的几率(就是AB重叠的部分)和A的整体几率之比。
根据韦恩图,我们可以得知:
P(A|B)=P(AB)/P(B)=P(B|A)*P(A)/P(B)
1、P(A)是A的先验概率或边缘概率,称作"先验"是因为它不考虑B因素,是根据以往经验和分析得到的概率。可以通过频率来估计。
2、P(A|B)是已知B发生后A的条件概率,也称作A的后验概率。
3、P(B|A)是已知A发生后B的条件概率,也称作B的后验概率,这里称作似然度。涉及到所以关于B所有属性的联合概率。
4、P(B)是B的先验概率或边缘概率,这里称作标准化常量。
5、P(B|A)/P(B)称作标准似然度。
贝叶斯法则又可表述为:
后验概率=(似然度*先验概率)/标准化常量=标准似然度*先验概率
可以翻译为p(类别|特征) = p(特征|类别)p(类别) / p(特征)
如果要确定某个样本归属于哪一类,则需要计算出归属不同类的概率,再从中挑选出最大的概率,也就是选出概率最大值来定义为所属于的类别
MAX(P(Ai|B))=MAX(P(B|Ai)*P(Ai)/P(B))
下面我们举个栗子来说明下:
某种病发病率约为0.1%,即1000人中有一个人是阳性,现在的检测手段很成熟,准确率高达99%,但是有5%的误报率。如果一个人的检测结果呈阳性,那么这个人真的感染这种病的概率有多大?
使用贝叶斯定理分析,假设A为得病,B为检测呈阳性。可知:P(A)=0.001 #发病率
P(B丨A)=0.99 #发病检测为阳性的概率
P(B)=P(B丨A) P(A)+P(B丨A')P(A')=0.99x0.001+0.05x0.999=0.05094 # 检测阳性的概率等于
得病且检测为阳性概率 加上 未得病且检测出阳性的概率
P(A丨B)=P(A)*P(B丨A)/P(B)=0.001x0.99/0.05094=0.019
是不是很惊讶,哪怕准确率这么高,检测结果呈阳性的可信度只有2%。如果一种病的发病率很低,对于检测结果呈阳性,我们不用过多担忧。
PS:计算P(B)的时候,P(B丨A) P(A)我们称之为联合概率
什么是朴素贝叶斯(Naive Bayes)?
朴素贝叶斯是一种简单但是非常强大的线性分类器。它在垃圾邮件分类,疾病诊断中都取得了很大的成功。它只所以称为朴素,是因为它假设特征之间是相互独立的,但是在现实生活中,这种假设基本上是不成立的。那么即使是在假设不成立的条件下,它依然表现的很好,尤其是在小规模样本的情况下。但是,如果每个特征之间有很强的关联性和非线性的分类问题会导致朴素贝叶斯模型有很差的分类效果。
根据变量的分布不同,NB也分为以下3类:
- 朴素贝叶斯的高斯模型(特征是连续变量,符合高斯分布)
- 朴素贝叶斯的多项式模型(特征是离散变量,符合多项分布),在文本分类的情境中,特征是词的出现次数
- 朴素贝叶斯的伯努利模型(特征是布尔变量,符合01分布),在文本分类的情境中,特征是词是否出现
图片内容来源:《机器学习-周志华》P151
其中x代表样本,c代表类标记
求得概率P(c|x)最大,P(x)在样本给定下,是一个归一化的常量,所以也就是计算分子的最大值也就是下面图的解释。
下面继续使用周志华老师书上的例子:
下面图中计算的是公式的分子部分,先验概率乘以似然度(条件概率),其中是好瓜,并且敲声清脆的测试例没有,得出的概率值为0,这样带入连乘式计算的结果将是0,这显然不太合理
下面使用到了拉普拉斯修正 N代表类别数。重新计算先验概率和条件概率。
实际项目中,概率P往往是值很小的小数,连续的小数相乘容易造成下溢出使乘积为0或者得不到正确答案。一种解决办法就是对乘积取自然对数,将连乘变为连加
算法特性及优缺点
- 优点:算法简单、所需估计参数很少、对缺失数据不太敏感。另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算。朴素贝叶斯属于生成式模型,收敛速度将快于判别模型(如逻辑回归);天然可以处理多分类问题
- 缺点:因为朴素贝叶斯分类假设样本各个特征之间相互独立,这个假设在实际应用中往往是不成立的,从而影响分类正确性;不能学习特征间的相互作用;对输入数据的表达形式很敏感。
朴素贝叶斯应用
文本分类 ; 垃圾文本过滤 ; 情感判别 ; 用于基于内容的推荐生成模型