贝叶斯算法

一.概率基础知识

1.条件概率

是指事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为:P(A|B),读作“在B条件下A的概率”。
P(A|B) = P(B|A) * P(A) / P(B)

例子

一起汽车撞人逃跑事件,已知只有两种颜色的车,比例为蓝色15% 绿色85%,目击者指证是蓝车,但根据现场分析,当时那种条件目击者看正确车的颜色的可能性是80%,那么,肇事的车是蓝车的概率到底是多少?
解答:
设A={目击者看到车是蓝色的},B={车的实际颜色是蓝色}
P(A)=80%×15%+20%×85%=29%
即:车是蓝色(15%)×目击者看正确(80%)+车是绿色(85%)×目击者看错了(20%)
P(AB)=80%×15%=12%
即:车是蓝色(15%)×目击者看正确(80%)
P(B|A)=P(AB)/P(A)=12%/29%≈41%

2.全概率公式

是指事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为:P(A|B),读作“在B条件下A的概率”。
P(B) =∑P(B|Ai) * P(Ai)

3.贝叶斯公式

是将全概率公式带入到条件概率公式当中,对于事件Ak和事件B有:
P(Ak|B) = [ P(Ak) * P(B|Ak) ] / ∑P(B|Ai) * P(Ai),(i=1,2,····,n)

对于P(Ak|B)来说,分母∑P(B|Ai)*P(Ai) 为一个固定值,因此:
P(Ak|B) = P(Ak) * P(B|Ak)
P(Ak) 先验概率,P(Ak|B) 后验概率,P(B|Ak) 似然函数

4.特征条件独立假设

P(yk|x) =P(yk) * P(x|yk)

样本x有n个属性:x=(x1,x2,···,xn),所以:P(yk|X) =P(yk) * P(x1,x2,···,xn|yk) 条件独立假设
P(yk|x) =P(yk) * ∏P(xi|yk)

5.拉普拉斯平滑

为了解决零概率的问题,假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。
公式P(yk|x) =P(yk) * ∏P(xi|yk),是一个多项乘法公式,其中有一项数值为0,则整个公式就为0,显然不合理,避免每一项为零的做法就是,在分子、分母上各加一个数值。
P(y) = (|Dy| + 1) / (|D| + N)
|Dy|表示分类y的样本数,|D|样本总数。

P(xi|Dy) = (|Dy,xi| + 1) / (|Dy| + Ni)
|Dy,xi|表示分类y属性i的样本数,|Dy|表示分类y的样本数,Ni表示i属性的可能的取值数。

例子

假设在文本分类中,有3个类,C1、C2、C3,在指定的训练样本中,某个
词语K1,在各个类中观测计数分别为0,990,10,K1的概率为0,0.99,
0.01,对这三个量使用拉普拉斯平滑的计算方法如下:
  1/1003 = 0.001,991/1003=0.988,11/1003=0.011

二.朴素贝叶斯

1.朴素贝叶斯分类

对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别:

2.计算流程

贝叶斯算法

3.三个阶段

贝叶斯算法
(1) 第一阶段——准备阶段,根据具体情况确定特征属性,对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。
(2)第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。
(3)第三阶段——应用阶段。这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,由程序完成。

4.优点

(1)算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化即可!)
(2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)

5.缺点

理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。