学习笔记15:贝叶斯决策理论

对于模式识别的方法,大体可以分为基于知识和基于数据的两类。所谓基于知识的方法,主要以专家系统为代表,一般归于人工智能的范畴;而基于数据的方法,则可归于基于数据的机器学习。

基于数据的方法,基础是统计模式识别,即依据统计的原理来建立分类器。
说到统计,则不得不谈到概率,这里罗列一些概率论的机器学习中的基本概念,百度都可以查到,不再赘述:
样本、样本集、类(类别)、特征、已知样本、未知样本、条件概率、先验概率、后验概率、监督学习、非监督学习

下面进入正题:

我们首先来看一个例子,对于身高、体重与性别的关系,想必都有一些感性的认识,比如,一个身高在180CM左右而体重在70KG,那这个人基本就是男性,而一个身高在160CM左右而体重在50KG,那这个人基本就是女性。

注意,这里的用词是‘基本’,因为这个问题我们只能根据我们的经验,通过对生活的观察,来做出相应的猜测,而这个人究竟是男性还是女性我们并不能肯定。

一般来讲,在判断这个人是男性还是女性的时候,我们的脑海中肯定是先估计一下这个人是男性的概率大致为多少,这个人是女性的概率大致为多少,而我们的结论则更倾向于概率较大的那个。

对于这个例子,我们需要有两点先验知识,第一点是男性和女性的总体比例是多少;第二点是男性中身高在180CM左右而体重在70KG比例和女性中身高在180CM左右而体重在70KG的比例。

而我们可以依据同样的原理,来利用计算机对这个问题及思考过程来进行模拟,这就是贝叶斯决策。

对于贝叶斯决策,同样需要两点先验知识:
-先验概率,对于上面的例子,也就是男性占中体人数的比例和女性占总体人数的比例,我们分别记为P(man),P(woman)
-类条件概率密度,对于上面的例子,也就是男性(女性)中身高在180CM左右而体重在70KG的比例,这个在概率论中则对应于条件概率,我们分别记为P(h=180,w=70|man),P(h=180,w=70|woman)

接下来的工作则是基于概率论中著名的公式,贝叶斯公式:

P ( ω | x ) = P ( x | ω ) P ( ω ) P ( x )

关于这个公式的证明,很容易,依照条件概率的定义即可得到,感兴趣的读者可以百度一下。这个定理虽然很简单,但是却建立起先验概率和后验概率相互转化的桥梁。
关于这个公式的理解,形象点来讲,就是通过‘我很饿的情况下选择吃包子的概率‘推导出‘我吃包子的情况下我很饿的概率’。

至此,我们不妨将我们的先验知识代入到这个公式中,可以得到:

P ( m a n | h = 180 , w = 75 ) = P ( h = 180 , w = 75 | m a n ) P ( m a n ) P ( h = 180 , w = 75 )

P ( w o m a n | h = 180 , w = 75 ) = P ( h = 180 , w = 75 | w o m a n ) P ( w o m a n ) P ( h = 180 , w = 75 )

进而可以得到:
λ = P ( m a n | h = 180 , w = 75 ) P ( w o m a n | h = 180 , w = 75 ) = P ( h = 180 , w = 75 | m a n ) P ( m a n ) P ( h = 180 , w = 75 | w o m a n ) P ( w o m a n )

λ 的值可以根据先验知识得到,当 λ 大于1时,则可以判断这个人是男性,否则为女性。

基于上述原理,我们就可以设计出贝叶斯分类器。已经证明,在已知先验概率和类条件概率的情况下,上述决策规则错误率最小,故也称之为最小错误率贝叶斯决策。

关于‘最小错误率’的理解:首先有个前提,即为先验概率和类条件概率都已知(都正确)的情况下,这是才是‘最小错误率’,如果训练集中男女比为1,先验概率则各为0.5,而测试集中却全是男性,这时你的先验概率显然是错误的,故也谈不上‘最小错误率’了。但实际上当数据取的最够充分、足够随机的话两个集中的男女比应该是近似一样的,这时即为‘最小错误率’。

那么问题来了,既然贝叶斯决策是最小错误率,那我们为什么还要学习SVM、ANN的呢?直接全用贝叶斯决策不就好了吗?

贝叶斯的优点在于简单直观,但是它有两个致命的缺点:
- 类条件概率密度和先验概率:更多的情况下,我们实际上是很难得到类条件概率密度或者先验概率的,此时则无法应用贝叶斯决策。
- 我们的目的是将样本进行准确地分类,而贝叶斯决策却将每一种情况概率都计算一遍,其运行开销之大可想而知。(毕竟我们只是要分类而不是求概率,有点舍本逐末了)

当然,对于根据身高体重来判断性别的问题,使用贝叶斯决策是很合适的,博主采用了100人的训练集和400人的测试集,准确率在90左右,而SVM和ANN的准确率都是低于贝叶斯决策的,这也从侧面验证了贝叶斯决策的‘最小错误率’。这里男女性的先验概率各设为0.5,类条件密度概率则根据高斯分布来估计。

对于多类别的情况:
其原理是一样的,这时的决策规则可以表示为:

P ( ω i | x ) = m a x j = 1 , 2... c P ( ω j | x ) = m a x j = 1 , 2... c P ( x | ω j ) P ( ω j ) $ x ω i

实际上,我们可以将
P ( x | ω j ) P ( ω j )
看作是一个关于j的函数,这里j=1,2,…,c,即为gj(x),我们称函数g为判别函数,这样,决策过程就转化成为了比较判别函数的大小。
这里需要注意的是,当特征向量维数很高时,若特征向量之间满足概率论中的独立性,则有P(AB)=P(A)P(B),P(A,B|C)=P(A|C)P(B|C),进而将问题简化。但是对于身高体重预测性别的问题,身高体重二维特征向量显然是不独立的,一般来讲,体重越大身高越高,我们称之为正相关,反之则为负相关,这时则需要引入协方差矩阵。

下面我们来看一下正态分布时的统计决策
多元正态分布的概率密度函数定义为:

p ( x ) = 1 ( 2 / p i ) d 2 | Σ | 1 2 e x p { 1 2 ( x μ ) T Σ 1 ( x μ ) }

式中,x=[x1,x2,…,xd]T是d维列向量;μ=[μ1,μ2,…,μd]T时d维均值向量;Σ是d∗d维协方差矩阵;Σ−1是Σ的逆矩阵,|Σ|是Σ的行列式。
对于正态分布(例如上面的身高体重问题)的问题,其决策面方程有如下等价形式(略去常数无关项):
g i ( x ) = 1 2 ( x μ i ) T Σ i 1 ( x μ i ) 1 2 l n | Σ i | + l n P ( ω i )

我们只需要将相关数据带入判别函数再以此比较大小做出决断即可。
这里需要指出的是,可以证明,其判别函数要么为线性函数,要么为二次函数,这固定的函数形式使得人们开始考虑直接寻找‘最优’的线性函数或是二次函数来完成分类,而跳过与分类无关的大量概率的计算,进而出现了后续的线性判别法,SVM等方法。

猜你喜欢

转载自blog.csdn.net/Softdiamonds/article/details/81232277