模式识别与机器学习笔记专栏之贝叶斯分类决策(一)

这是模式识别与机器学习笔记专栏的第一篇,我会持续更新,点个关注不迷路~

在所有的生活场景中,我们无时无刻不在进行着模式识别。比如你看见迎面走来一个人,根据他的长相来辨认出他好像是你一年前某个活动小组的组长,然后你开始决策要不要和他打个招呼。或者你走进水果店,把西瓜拍了个遍来决定最后买哪一个。或者你突然被捂上眼睛,听着背后人的声音来辨别是不是你的亲爱的。

模式(pattern) 可以理解成某种特征,也就是你可以获取到的某种原始数据,而 模式识别(pattern recognition) 就是根据输入原始数据来判断其类别并采取相应行为的能力。它对我们至关重要,但我们常常希望可以有机器帮我们来做这个工作,让机器执行预定的程序来进行分类从而决策。比如一个短信拦截系统,帮我们分辨哪些是骚扰短信,哪些是有用的信息。

在这个问题上,贝叶斯决策理论是最最经典而基本的分类方法了。那么,何为贝叶斯分类决策?

1. 贝叶斯公式

首先,我们熟悉的贝叶斯公式
P ( ω i ∣ x ) = p ( x ∣ ω i ) P ( ω i ) p ( x ) P(\omega_i|x)=\frac{p(x|\omega_i)P(\omega_i)}{p(x)} P(ωix)=p(x)p(xωi)P(ωi)
在模式识别问题中,用 d d d 维向量 x x x 来表示希望分类对象的特征,它一般是从传感器获取,并且抽象化出来。 ω \omega ω 来表示可能分类的类别。 ω i \omega_i ωi 对应着第 i i i 类,如果是一个两类问题, i = 1 , 2 i=1,2 i=1,2 ,如果是 c c c 类问题,则 i = 1 , 2 , . . . , c i=1,2,...,c i=1,2,...,c

P ( ω i ∣ x ) P(\omega_i|x) P(ωix) 是由特征 x x x 预测的结果,也就是后验概率, p ( x ∣ ω i ) p(x|\omega_i) p(xωi) 是类条件概率,或者叫似然概率,就是特征 x x x 这个随机变量分布情况,它是取决于类别 ω \omega ω 的状态的。 P ( ω i ) P(\omega_i) P(ωi)是类先验信息,是根据先前知识经验给定的,并且因为总共就c类,所以很容易得到 ∑ j = 1 c P ( ω j ) = 1 \sum^{c}_{j=1}P(\omega_j)=1 j=1cP(ωj)=1 p ( x ) p(x) p(x)是归一化因子,并不重要:

p ( x ) = ∑ j = 1 c p ( x ∣ ω j ) P ( ω j ) p(x)=\sum^{c}_{j=1}p(x|\omega_j)P(\omega_j) p(x)=j=1cp(xωj)P(ωj)
目的就是使得所有后验概率之和为1。

贝叶斯公式提供了一个后验概率的重要计算依据:从似然概率和先验概率得到。

2. 最小错误率贝叶斯决策

首先简化问题为二分类问题,比如短信分类问题, ω = ω 1 \omega=\omega_1 ω=ω1 是将短信分为有用短信, ω = ω 2 \omega=\omega_2 ω=ω2 是将短信分类为垃圾短信。假设我们现在对这两类的先验概率和特征 x x x 的类条件概率分布都知道了。那么通过一个短信提取到的特征 x x x ,就可以利用贝叶斯公式计算后验概率,也就是对可能的两类做出的概率判断。
P ( ω 1 ∣ x ) = p ( x ∣ ω 1 ) P ( ω 1 ) P ( ω 2 ∣ x ) = p ( x ∣ ω 2 ) P ( ω 2 ) P(\omega_1|x)=p(x|\omega_1)P(\omega_1)\\ P(\omega_2|x)=p(x|\omega_2)P(\omega_2) P(ω1x)=p(xω1)P(ω1)P(ω2x)=p(xω2)P(ω2)
很自然的来比较后验概率来进行决策,哪一类的后验概率大,就判定为哪一类,先验是给定的,归一化因子不重要,实质上比的就是类条件概率分布。

  • 现在引入一个错误率 P ( e r r o r ∣ x ) P(error|x) P(errorx) 的概念,对一个 x x x ,算出了 P ( ω 1 ∣ x ) P(\omega_1|x) P(ω1x) P ( ω 2 ∣ x ) P(\omega_2|x) P(ω2x),假如我们让 ω = ω 1 \omega=\omega_1 ω=ω1,也就是判定为第一类,把这条短信判断成有用的,那么我们判断正确的概率就是 P ( ω 1 ∣ x ) P(\omega_1|x) P(ω1x) ,而判断错误的概率就是 P ( ω 2 ∣ x ) P(\omega_2|x) P(ω2x)。写成公式:

P ( e r r o r ∣ x ) = { P ( ω 1 ∣ x ) 如果判定为 ω 2 P ( ω 2 ∣ x ) 如果判定为 ω 1 P(error|x)= \begin{cases} P(\omega_1|x)& \text{如果判定为}\omega_2 \\ P(\omega_2|x)& \text{如果判定为}\omega_1 \end{cases} P(errorx)={P(ω1x)P(ω2x)如果判定为ω2如果判定为ω1

  • 我们希望我们判断的错误率更小,因此我们得到判决规则:

如果 P ( ω 1 ∣ x ) > P ( ω 2 ∣ x ) P(\omega_1|x)>P(\omega_2|x) P(ω1x)>P(ω2x),判定为 ω 1 \omega_1 ω1;否则判定为 ω 2 \omega_2 ω2

——这就是最小错误率贝叶斯决策,也就是哪一类后验概率大,判为哪一类

  • 写成似然概率和先验概率的形式:

如果 p ( x ∣ ω 1 ) P ( ω 1 ) > p ( x ∣ ω 2 ) P ( ω 2 ) p(x|\omega_1)P(\omega_1)>p(x|\omega_2)P(\omega_2) p(xω1)P(ω1)>p(xω2)P(ω2),判定为 ω 1 \omega_1 ω1;否则判定为 ω 2 \omega_2 ω2

3. 最小风险贝叶斯决策

下面把判决规则升级一下。

再回想一下短信分类的问题。假如预测成有用短信和骚扰短信的后验概率接近的时候,这时候误判的可能性还是比较高的。如果误判,可能会把有用的分成垃圾,把垃圾短信分成有用的。可以想象这两者的错误率是此消彼长的,但对哪种的错误率容忍度更高呢?把有用的分成垃圾的看起来更加难以接受。这时候可能就希望那种模棱两可的情况还是判定成有用的好。那么如何来体现这种对错误率容忍度的不同呢?下面就引入损失函数。

对每一种判断以及真实情况定义一个损失函数 λ ( α i ∣ ω j ) \lambda(\alpha_i|\omega_j) λ(αiωj),以下面的两类问题为例

λ ( α i ∥ ω j ) \lambda(\alpha_i\|\omega_j) λ(αiωj) ω 1 \omega_1 ω1 ω 2 \omega_2 ω2
α 1 \alpha_1 α101
α 2 \alpha_2 α220

ω j \omega_j ωj 表示要分类对象的真实类别是 ω j \omega_j ωj α i \alpha_i αi 表示要采取的行为,即判定为 ω i \omega_i ωi

以短信分类为例,假如真实是 ω 1 \omega_1 ω1 ,有用短信,采取 α 1 \alpha_1 α1 ,判断为有用,也就是判断正确了,可以定义损失就是0。假如真实是 ω 2 \omega_2 ω2 ,垃圾短信,采取 α 1 \alpha_1 α1 ,判断为有用,也就是判断错误了,可以定义损失函数为1。假如真实是 ω 1 \omega_1 ω1 ,有用短信,采取 α 2 \alpha_2 α2 ,判断为垃圾,同样是判断错误了,而这种错误我们的容忍度更低,那么可以定义损失函数为2。

  • 损失函数乘以对应的后验概率 P ( ω j ∣ x ) P(\omega_j|x) P(ωjx) 并求和,得到风险函数 R ( α i ∣ x ) R(\alpha_i|x) R(αix)

R ( α 1 ∣ x ) = λ ( α 1 ∣ ω 1 ) P ( ω 1 ∣ x ) + λ ( α 1 ∣ ω 2 ) P ( ω 2 ∣ x ) R ( α 2 ∣ x ) = λ ( α 2 ∣ ω 1 ) P ( ω 1 ∣ x ) + λ ( α 2 ∣ ω 2 ) P ( ω 2 ∣ x ) R(\alpha_1|x)=\lambda(\alpha_1|\omega_1)P(\omega_1|x) +\lambda(\alpha_1|\omega_2)P(\omega_2|x)\\ R(\alpha_2|x)=\lambda(\alpha_2|\omega_1)P(\omega_1|x) + \lambda(\alpha_2|\omega_2)P(\omega_2|x) R(α1x)=λ(α1ω1)P(ω1x)+λ(α1ω2)P(ω2x)R(α2x)=λ(α2ω1)P(ω1x)+λ(α2ω2)P(ω2x)

理解起来就是: α i \alpha_i αi行为的风险=每种 ω \omega ω 情况下采取 α i \alpha_i αi行为的损失x是这种 ω \omega ω 的后验概率

  • 与最小错误率贝叶斯决策相对应的,这时候使得风险函数最小就行了,判决规则写成:

如果 R ( α 1 ∣ x ) < R ( ω 2 ∣ x ) R(\alpha_1|x) < R(\omega_2|x) R(α1x)<R(ω2x),采取行为 α 1 \alpha_1 α1 ,也就是判定为 ω 1 \omega_1 ω1;否则采取行为 α 2 \alpha_2 α2 ,也就是判定为 ω 2 \omega_2 ω2

因此决策的方式就是采取风险 R ( α i ∣ x ) R(\alpha_i|x) R(αix)最小的行为 α i \alpha_i αi——这是最小风险贝叶斯决策

  • λ ( α i ∣ ω j ) \lambda(\alpha_i|\omega_j) λ(αiωj) 简写成 λ i j \lambda_{ij} λij ,并把类条件概率和先验概率代入,得到判决规则:

如果 ( λ 11 − λ 21 ) p ( x ∣ ω 1 ) P ( ω 1 ) < ( λ 22 − λ 12 ) p ( x ∣ ω 2 ) P ( ω 2 ) (\lambda_{11}-\lambda_{21})p(x|\omega_1)P(\omega_1) < (\lambda_{22}-\lambda_{12})p(x|\omega_2)P(\omega_2) (λ11λ21)p(xω1)P(ω1)<(λ22λ12)p(xω2)P(ω2),采取行为 α 1 \alpha_1 α1 ,也就是判定为 ω 1 \omega_1 ω1;否则采取行为 α 2 \alpha_2 α2 ,也就是判定为 ω 2 \omega_2 ω2

  • 还可以写成似然比的形式:

如果 p ( x ∣ ω 1 ) p ( x ∣ ω 2 ) < ( λ 22 − λ 12 ) ( λ 11 − λ 21 P ( ω 2 ) P ( ω 1 ) \frac{p(x|\omega_1)}{p(x|\omega_2)}<\frac{(\lambda_{22}-\lambda_{12})}{(\lambda_{11}-\lambda_{21}}\frac{P(\omega_2)}{P(\omega_1)} p(xω2)p(xω1)<(λ11λ21(λ22λ12)P(ω1)P(ω2) ,采取行为 α 1 \alpha_1 α1 ,也就是判定为 ω 1 \omega_1 ω1;否则采取行为 α 2 \alpha_2 α2 ,也就是判定为 ω 2 \omega_2 ω2

这样写的好处是,不等式右边的损失函数和先验概率都是给定的,是一个常数,左边就是似然概率之比,所以只需要算出似然概率之比就可以进行分类预测

  • 另外,如果采用如下0-1损失函数的时候,最小风险贝叶斯决策就会退化成最小错误率贝叶斯决策
λ ( α i ∥ ω j ) \lambda(\alpha_i\|\omega_j) λ(αiωj) ω 1 \omega_1 ω1 ω 2 \omega_2 ω2
α 1 \alpha_1 α101
α 2 \alpha_2 α210

R ( α 1 ∣ x ) = λ ( α 1 ∣ ω 1 ) P ( ω 1 ∣ x ) + λ ( α 1 ∣ ω 2 ) P ( ω 2 ∣ x ) = P ( ω 2 ∣ x ) R ( α 2 ∣ x ) = λ ( α 2 ∣ ω 1 ) P ( ω 1 ∣ x ) + λ ( α 2 ∣ ω 2 ) P ( ω 2 ∣ x ) = P ( ω 1 ∣ x ) R(\alpha_1|x)=\lambda(\alpha_1|\omega_1)P(\omega_1|x)+\lambda(\alpha_1|\omega_2)P(\omega_2|x)=P(\omega_2|x)\\ R(\alpha_2|x)=\lambda(\alpha_2|\omega_1)P(\omega_1|x) + \lambda(\alpha_2|\omega_2)P(\omega_2|x)=P(\omega_1|x) R(α1x)=λ(α1ω1)P(ω1x)+λ(α1ω2)P(ω2x)=P(ω2x)R(α2x)=λ(α2ω1)P(ω1x)+λ(α2ω2)P(ω2x)=P(ω1x)

  • 如果是多类情况

R ( α i ∣ x ) = ∑ j = 1 c λ ( α i ∣ ω j ) P ( ω j ∣ x ) R(\alpha_i|x)=\sum^c_{j=1}\lambda(\alpha_i|\omega_j)P(\omega_j|x) R(αix)=j=1cλ(αiωj)P(ωjx)

决策行为 α ∗ = a r g m i n R ( α i ∣ x ) \alpha^*=argminR(\alpha_i|x) α=argminR(αix) ,也就是采取的行为 α i \alpha_i αi 是使得风险 R ( α i ∣ x ) R(\alpha_i|x) R(αix) 最小的那个 α i \alpha_i αi


还想BB几句

感谢你看到这里!我是在努力code,刚尝试写博的小白zolich。我希望把自己的学习心得写成细致的笔记形式,帮助自己记忆查阅,也希望能够帮到和我一样在努力学习的人。

如果这篇文章对你有一点点帮助的话,顺手点赞or收藏or分享下吧~拜托啦,这对我真的很重要!我会持续写作,加个关注看后续!你的支持是对我最大的鼓励!

水平所限,如有疏漏,欢迎指正~

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值