在简书的第一篇博客、作为总结机器学习的开始,网上已经有了很多关于贝叶斯公式以及朴素贝叶斯的资料,但我还是想自己记录一下自己学习过程中的一些要点。
一 贝叶斯公式:
在学习贝叶斯公式之前,先了解几个定义:
1.边缘概率(又称先验概率): 某个事件发生的概率。边缘概率是这样得到的:在联合概率中,把最终结果中那些不需要的事件通过合并成它们的全概率,而消去它们(对离散随机变量用求和得全概率,对连续随机变量用积分得全概率),这称边缘化,如事件A的边缘概率为P(A),B的边缘概率表示为P(B)。
2.联合概率:表示为两个事件共同发生的概率。A与B的联合概率表示为P(AB)或者P(A,B)。
3.条件概率(又称为后验概率):事件A在另外一个事件B已经发生的情况下发生的概率。条件概率表示为P(A|B),表示为在B条件下A的概率。
贝叶斯公式:
在网上发现一个比较恰当例子来解释这个公式:
有甲、乙两条生产线,甲生产线的产品合格率为90%,乙生产线的产品合格率为95%,两条生产线的生产量占比分别为30%和70%,现在发现了一件不合格品,判断这个不合格品是甲生产线生产出来的概率? 假设现在生产出来的产品总量为1000个,如图中所示,甲乙生产线的产量分别是300和700个,则不合格品分别为30和35个
现用A表示生产不合格品事件, B1、B2分别表示甲乙两条生产线
推导:
不合格品总数 = 甲不合格数量 + 乙不合格数量 = 总产量X甲产量占比X甲不合格率 + 总产量X乙产量占比X乙不合格率 = 总产量XP(B1)XP(A|B1) + 总产量XP(B2)XP(A|B2)
得到:
假设为n条生产线则有:
单变量条件概率推导
根据条件概率的定义,在事件B发生的条件下事件A发生的概率为:
事件A发生的条件下事件B的概率为:
综合上述两个式子得到:
二 朴素贝叶斯
先简单介绍几个名词的概念
朴素贝叶斯:NaiveBayes
朴素:特征条件独立
贝叶斯:基于贝叶斯定理
属于监督学习的生成模型,实现简单,并没有迭代,有贝叶斯理论作为支撑。
我们先看一个例子然后在看理论
(1)病人分类
某个医院早上收了六个病人,如上图,现在又来了第七个病人,是一个身上发热的建筑工人,请问他换上感冒的概率有多大?
根据贝叶斯定理:
假设“发热”和“建筑工人”这个两个属性是独立的,因此,上式可化为
通过已有数据可算出上式结果为0.66,因此这个发热建筑工人有0.66的概率得了感冒。同理可以算出这个病人患上过敏或脑震荡的概率。比较这几个概率得到最大值,可以知道他最有可能得什么病
(2)理论
这段内容来自韩家炜先生的书《数据挖掘:概念与技术》第351页:
解释下,其中训练元组可以理解为训练的样本,上文例子中每一个病人样本,x1~xn可以表示为n个属性,A1~An可以理解为属性值,C1~Cn可以理解为有多少种疾病分类,其中的不等式表示求该算式最大值,继续看书有
可以看到一个关键的要点,为了计算P(X|Ci)假设类条件独立的朴素嘉定,对应我们在病人分类的例子里计算概率所使用的方法,假设条件独立后,计算复杂度降低了几个数量级,同时根据样本计算独立的概率还是很容易的,这也是朴素贝叶斯的由来,可以说贝叶斯和朴素贝叶斯的最大区别就在‘朴素’上即条件独立,引入朴素贝叶斯的目的是为了降低计算量