贝叶斯和朴素贝叶斯是啥
2020-03-30 15:21
232 查看
[toc]
# 一、贝叶斯
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330150256411-882602630.png)
简单地说,贝叶斯就是贝yes,见到贝克汉姆说了一句yes,研究的是这种概率事件。
开玩笑啦,贝叶斯原理是英国数学家托马斯·贝叶斯提出的,为了解决一个“逆概率”问题。
例如,一个男人发现了他老婆手机里暧昧短信 ,计算他老婆出轨的概率。
现实生活中,我们很难知道事情的全貌,当不能准确预知一个事物本质的时候,可以依靠和事物本质相关的事件来进行判断。
## 什么是先验概率、似然概率、后验概率
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330150300337-1212202741.png)
贝叶斯原理类似概率反转,通过先验概率和似然概率,推导出后验概率。
再以上面出轨的例子为例,
* 先验概率:男人的老婆没有任何情况,出轨的概率
* 似然概率:男人的老婆出轨了,手机里有暧昧短信的概率
* 后验概率:男人发现老婆手机有暧昧短信,计算他老婆出轨概率
再举个例子,产品由不同的工厂ABC生产,每个工厂都有自己的次品率
* 先验概率:A厂的产品占产品总数的比例
* 似然概率:A厂的次品率
* 后验概率:已知一件产品是次品,推断这件产品来自在A厂的概率。(次品可能来自ABC中任意一个厂)
>似然概率是由假设正推结果,后验概率是由结果倒推假设
## 公式推导
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330154602730-1341624706.png)
* $P(A|B)$:表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。
* $P(AB)$:表示事件A和事件B同时发生的概率
* $P(AB)=P(BA)$,可得$P(AB)=P(BA)=P(B|A)P(A)=P(A|B)P(B)$
* 通过$P(A|B)$来求$P(B|A)$,可得$P(B|A)=\frac {P(A|B)P(B)} {P(A)}$
* 分母$P(A)$可以根据全概率公式分解为:$P(A)=\sum_{i=1}^n P(B_i)P(A|B_i)$
* 最终公式变为:$P(B|A)=\frac {P(A|B)P(B)} {\sum_{i=1}^n P(B_i)P(A|B_i)}$
# 二、为什么需要朴素贝叶斯
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155135220-897010064.png)
假设训练数据的属性由n维随机向量x表示,分类结果用随机变量y表示,那x和y的统计规律就可以用联合概率分布$P(X,Y)$描述,每个具体的样本$(x_i,y_i)$都可以通过$P(X,Y)$独立同分布地产生。
贝叶斯分类器的出发点是联合概率分布,根据条件概率性质可以得到
$P(X,Y)=P(Y)⋅P(X∣Y)=P(X)⋅P(Y∣X)$
* $P(Y)$:每个类别出现的概率,先验概率
* $P(X|Y)$:给定的类别下不同属性出现的概率,似然概率
先验概率很容易计算出来,只需要统计不同类别样本的数目即可,而似然概率受属性数目的影响,估计较为困难。
例如,每个样本包含100个属性,每个属性的取值可能有100种,那分类的每个结果,要计算的条件概率是$100^2=10000$,数量量非常庞大。因此,这时候引进了朴素贝叶斯
# 三、朴素贝叶斯是什么
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330150322967-1469681338.png)
朴素贝叶斯,加了个朴素,意思是更简单的贝叶斯。
朴素贝叶斯假定样本的不同属性满足条件独立性假设,并在此基础上应用贝叶斯定理执行分类任务。
>对于给定的待分类项x,分析样本出现在每个类别中的后验概率,将后验概率最大的类作为x所属的类别
## 条件独立
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155213778-1735720718.png)
要解决似然概率难以估计的问题,就需要引入`条件独立性假设`。
条件独立性假设保证了所有属性相互独立,互不影响,每个属性独立地对分类结果发生作用。
这样条件概率变成了属性条件概率的乘积
$P(X=x∣Y=c)=$
$P(X(1)=x(1),X(2)=x(2),⋯,X(n)=x(n)∣Y=c)$
$\prod_{j=1}^nP(X^j=x^j|Y=c)$
这是朴素贝叶斯方法,有了训练数据集,先验概率$P(Y)$和似然概率$P(X|Y)$就可以求解后验概率$P(X|Y)$。
## 举例:长肌肉
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155550863-2010100952.png)
肌肉是训练、睡眠、饮食多种因素组合的结果
训练 | 睡眠 | 饮食
-|-|-
非常好 | 非常好 | 非常好 |
好 | 好 | 好 |
一般 | 一般 | 一般 |
不太好 | 不太好| 不太好 |
不好 | 不好| 不好 |
非常不好 | 非常不好| 非常不好 |
如果要计算后验概率,假设属性不独立,$6^3$就有了216组合,例如其中一种是`训练:好,睡眠:不好,包含:一般`,这样的全部组合出来复杂度太高了
如条件独立互不影响后,只需要考虑3个维度的结果,把最终的属性概率相乘,例如是80%(训练) * 85%(睡眠) * 90%(饮食),算复杂度降低了几个数量级。
## 拉普拉斯平滑
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330151525002-2010547728.png)
受训练数据集规模的限制,某个属性的取值可能在训练集中从未与某个类同时出现,这就可能导致属性条件概率为0,些时直接使用朴素贝叶斯分类就会导致错误的结论。
例如:在训练集中没有样本同时具有“年龄大于 60”的属性和“发放贷款”的标签,那么当一个退休人员申请贷款时,即使他是李嘉诚,朴素贝叶斯分类器也会因为后验概率等于零拒绝。
因为训练集样本的不充分导致分类错误,不是理想的结果,为了避免这种干扰,在计算属性条件概率时需要添加一个“拉普拉斯平滑”的步骤。
拉普拉斯平滑就是计算类先验概率和属性条件概率时,在分子上添加一个较小的修正量,在分母上则添加这个修正量与分类数目的乘积,避免了零概率对分类结果的影响。
## 半朴素贝叶斯
![](https://img2020.cnblogs.com/blog/662544/202003/662544-20200330155306474-1111219633.png)
属性之间可能具有相关性,而朴素贝叶斯独立假设性会影响分类性能。
`半朴素贝叶斯分类器`考虑了部分属性之间的依赖关系,既保留了属性之间较强的相关性,又不需要完全计算复杂的联合概率分布。
常用方法是建立独依赖关系:假设每个属性除了类别之外,最多只依赖一个其他属性。
相关文章推荐
- 贝叶斯以及朴素贝叶斯
- 贝叶斯2-朴素贝叶斯的python实现
- 贝叶斯(朴素贝叶斯,正太贝叶斯)及OpenCV源码分析
- 机器学习——贝叶斯算法和朴素贝叶斯算法
- 机器学习|朴素贝叶斯算法(二)-用sklearn实践贝叶斯
- 贝叶斯学习,spark mlib 朴素贝叶斯使用
- 贝叶斯算法与朴素贝叶斯算法的介绍
- 贝叶斯分类方法学习三 python+jieba+mongodb实现朴素贝叶斯新闻文本自动分类
- 机器学习——贝叶斯朴素贝叶斯 知识点与面试总结
- PGM:贝叶斯网表示之朴素贝叶斯模型naive Bayes
- 转载 最大似然,贝叶斯方法与朴素贝叶斯分类
- 贝叶斯(朴素贝叶斯,正太贝叶斯)及OpenCV源码分析
- 贝叶斯决策、朴素贝叶斯、贝叶斯估计
- [贝叶斯六]之朴素贝叶斯分类器设计
- 朴素贝叶斯与贝叶斯信念网络
- “Naive”贝叶斯算法 —— 朴素贝叶斯(Naive Bayesian)算法
- [置顶] 《统计学习方法》 朴素贝叶斯 贝叶斯估计 Python实现
- 贝叶斯与朴素贝叶斯分类器
- R语言︱贝叶斯网络语言实现及与朴素贝叶斯区别(笔记)
- PGM:贝叶斯网表示之朴素贝叶斯模型naive Bayes