贝叶斯分类器笔记

时间:2022-06-10 10:07:19

贝叶斯分类器


从黑人兄弟谈起

某一天走到路上,和一个黑人擦肩而过,在惊叹他牙好白的时候,也想到了一个问题,这位黑人兄弟是打哪儿来的呢?

A. 非洲 B.美洲 C.欧洲 D.亚洲

我猜大多数人会和我一样,倾向于黑人兄弟来自于非洲。为啥?在没有提供其他有用信息,我们只能根据经验判断:非洲的黑人较其他洲的黑人多的多,因此我们认为这位黑人兄弟来自非洲的概率最大。

经验往往和概率息息相关,我们认为黑人兄弟来自非洲这个想法包含了两个信息:

(1)根据经验,选择了概率最大的非洲做为预测的结果

(2)根据经验,我们选择了非洲,也意味着我们出错的可能性相对于选择其他选项出错的可能性最小(设想一下,在非洲10个人有8个是黑人,在欧洲100个人可能只有1个是黑人,我们选择非洲只需要承担1/5的错误风险,选择欧洲却要承担99/100的风险)


贝叶斯定理

在前文的结果考虑中,我们相当于用到了以下几个概率

已知:P(黑人|亚洲),P(黑人|欧洲),P(黑人|非洲)

求:max(P(亚洲|黑人),P(欧洲|黑人),P(非洲|黑人))

涉及到了已知P(A|B)求P(B|A)问题

这里直接给出贝叶斯定理:

P(A|B)=P(A,B)P(B)=P(B|A)P(A)P(B)

换一下字母:

P(c|x)=P(x,c)P(x)=P(x|c)P(c)P(x)

其中P(c)是类“先验”概率,对应于黑人问题中的亚洲、美洲、非洲,p(x|c)是样本x相对于类标记c的类条件概率,或者称为似然(likelihood,我理解为似乎是其所以然),P(x)是用于归一化的证据因子,对于给定的样本x,其值不变。


朴素贝叶斯分类器

黑人问题中,我们观察到的样本特征只有一个,那就是,他好黑啊!(肤色),那么如果增加一些特征呢?比如一个女孩,她很白,高鼻梁,你能判断出她是哪个洲的人呢?如果再加上一些条件,比如金发,眼窝有点凹陷呢?

憋不下去了。

从美女的视角回到周老师切的西瓜身上。

从一个特征扩展到多个特征,贝叶斯定理的公式就变成了:

P(c|x)=P(x1,x2,,xd|c)P(c)P(x1,x2,,xd)

特征一旦变多,计算P(c|x)就有一个问题,那就是特征之间是否相互影响?比如特征A影响了特征B?,所谓朴素贝叶斯分类器,就是假设所有属性相互独立

很粗暴地说:你是你,他是他,你两互不相关,从今天起,你就是我朴贝分的人了(什么鬼)。

公式就变成了这样:

P(c|x)=P(c)P(x)i=1dP(xi|c)

判断方法也变成了:

argmaxcyP(c)i=1dP(xi|c)

(说白了谁大就归谁)

好的,那么,问题又来了,怎么计算P(c)和P(x_i|c) 又成了一个好头疼的问题。

回想一下当年学的概率论,怎么计算概率呢?概率和频率的关系,极大似然概率(自行移步概率书,等有了概率书来补一下),啊对对对,一拍脑门,我有之前的西瓜抽检报告啊,拿来,频率当频率,这就是离散属性的条件概率的极大似然估计值:

训练集D,第c类样本集合 Dc ,则 P(c)=|Dc||D|

对于离散属性而言, P(xi|c)=|Dc,xi||Dc|

对于连续属性, P(xi|c)=12πσc,iexp((xiμc,i)22σ2c,i) ,其中 μc,i σ2c,i 为均值和方差

也有一种方法,就是连续属性当成离散属性来做,就是按区域划分估算(相当于数学上的积分)

又来一个问题,如果有一个属性值在某个类上没有出现过,这样 P(xi|c)=0 ,计算结果为0,会有很大的误差好伐,这时候朴贝分一摊手说怪我咯,要怪就怪样本不够给力好嘛,气得直跺脚也不可以。怎么办呢?

术语叫”平滑”,具体而言就是避免概率为0现象的出现所以我们把极大似然估计做了一个拉皮处理,噢不,拉普拉斯修正。

P(c)=|Dc|+1|D|+N

P(xi|c)=|Dc,xi|+1|Dc|+Ni

其中N是类别数, Ni 是第i种属性的取值数。

撒花~~朴素贝叶斯分类器讲完啦~

在实际应用中,如果对预测速度要求较高,对给定训练集,计算所有概率估值然后存储起来,用时查表;如果数据更替频繁,则采用“懒惰学习”方式,收到预测请求时候再根据当前训练集进行估值,如果数据不断增加,则可以采取增量学习的方式,在现有估值基础上,仅对新增样本的属性值所涉及的概率估值进行技术修正即可。