这是模式识别与机器学习笔记专栏的第一篇,我会持续更新。机器学习
在全部的生活场景中,咱们无时无刻不在进行着模式识别。好比你看见迎面走来一我的,根据他的长相来辨认出他好像是你一年前某个活动小组的组长,而后你开始决策要不要和他打个招呼。或者你走进水果店,把西瓜拍了个遍来决定最后买哪个。或者你忽然被捂上眼睛,听着背后人的声音来辨别是否是你的亲爱的。函数
模式(pattern) 能够理解成某种特征,也就是你能够获取到的某种原始数据,而 模式识别(pattern recognition) 就是根据输入原始数据来判断其类别并采起相应行为的能力。它对咱们相当重要,但咱们经常但愿能够有机器帮咱们来作这个工做,让机器执行预约的程序来进行分类从而决策。好比一个短信拦截系统,帮咱们分辨哪些是骚扰短信,哪些是有用的信息。学习
在这个问题上,贝叶斯决策理论是最最经典而基本的分类方法了。那么,何为贝叶斯分类决策?spa
1. 贝叶斯公式
首先,咱们熟悉的贝叶斯公式对象
在模式识别问题中,用 \(d\) 维向量 \(x\) 来表示但愿分类对象的特征,它通常是从传感器获取,而且抽象化出来。\(\omega\) 来表示可能分类的类别。\(\omega_i\) 对应着第 \(i\) 类,若是是一个两类问题,\(i=1,2\) ,若是是 \(c\) 类问题,则 \(i=1,2,...,c\)it
\(P(\omega_i|x)\) 是由特征 \(x\) 预测的结果,也就是后验几率,\(p(x|\omega_i)\) 是类条件几率,或者叫似然几率,就是特征 \(x\) 这个随机变量分布状况,它是取决于类别 \(\omega\) 的状态的。\(P(\omega_i)\)是类先验信息,是根据先前知识经验给定的,而且由于总共就c类,因此很容易获得\(\sum^{c}_{j=1}P(\omega_j)=1\)。\(p(x)\)是归一化因子,并不重要:io
目的就是使得全部后验几率之和为1。table
贝叶斯公式提供了一个后验几率的重要计算依据:从似然几率和先验几率获得。class
2. 最小错误率贝叶斯决策
首先简化问题为二分类问题,好比短信分类问题,\(\omega=\omega_1\) 是将短信分为有用短信,\(\omega=\omega_2\) 是将短信分类为垃圾短信。假设咱们如今对这两类的先验几率和特征 \(x\) 的类条件几率分布都知道了。那么经过一个短信提取到的特征 \(x\) ,就能够利用贝叶斯公式计算后验几率,也就是对可能的两类作出的几率判断。变量
很天然的来比较后验几率来进行决策,哪一类的后验几率大,就断定为哪一类,先验是给定的,归一化因子不重要,实质上比的就是类条件几率分布。
- 如今引入一个错误率 \(P(error|x)\) 的概念,对一个\(x\) ,算出了 \(P(\omega_1|x)\) 和 \(P(\omega_2|x)\),假如咱们让\(\omega=\omega_1\),也就是断定为第一类,把这条短信判断成有用的,那么咱们判断正确的几率就是 \(P(\omega_1|x)\) ,而判断错误的几率就是\(P(\omega_2|x)\)。写成公式:
- 咱们但愿咱们判断的错误率更小,所以咱们获得判决规则:
若是\(P(\omega_1|x)>P(\omega_2|x)\),断定为 \(\omega_1\);不然断定为 \(\omega_2\)
——这就是最小错误率贝叶斯决策,也就是哪一类后验几率大,判为哪一类
- 写成似然几率和先验几率的形式:
若是\(p(x|\omega_1)P(\omega_1)>p(x|\omega_2)P(\omega_2)\),断定为 \(\omega_1\);不然断定为 \(\omega_2\)
3. 最小风险贝叶斯决策
下面把判决规则升级一下。
再回想一下短信分类的问题。假如预测成有用短信和骚扰短信的后验几率接近的时候,这时候误判的可能性仍是比较高的。若是误判,可能会把有用的分红垃圾,把垃圾短信分红有用的。能够想象这二者的错误率是此消彼长的,但对哪一种的错误率容忍度更高呢?把有用的分红垃圾的看起来更加难以接受。这时候可能就但愿那种模棱两可的状况仍是断定成有用的好。那么如何来体现这种对错误率容忍度的不一样呢?下面就引入损失函数。
对每一种判断以及真实状况定义一个损失函数\(\lambda(\alpha_i|\omega_j)\),如下面的两类问题为例
\(\lambda(\alpha_i\vert\omega_j)\) | \(\omega_1\) | \(\omega_2\) |
---|---|---|
\(\alpha_1\) | 0 | 1 |
\(\alpha_2\) | 2 | 0 |
\(\omega_j\) 表示要分类对象的真实类别是 \(\omega_j\) ,\(\alpha_i\) 表示要采起的行为,即断定为 \(\omega_i\)
以短信分类为例,假如真实是\(\omega_1\) ,有用短信,采起\(\alpha_1\) ,判断为有用,也就是判断正确了,能够定义损失就是0。假如真实是\(\omega_2\) ,垃圾短信,采起\(\alpha_1\) ,判断为有用,也就是判断错误了,能够定义损失函数为1。假如真实是\(\omega_1\) ,有用短信,采起\(\alpha_2\) ,判断为垃圾,一样是判断错误了,而这种错误咱们的容忍度更低,那么能够定义损失函数为2。
- 由损失函数乘以对应的后验几率\(P(\omega_j|x)\) 并求和,获得风险函数\(R(\alpha_i|x)\)
理解起来就是:\(\alpha_i\)行为的风险=每种 \(\omega\) 状况下采起\(\alpha_i\)行为的损失x是这种 \(\omega\) 的后验几率
- 与最小错误率贝叶斯决策相对应的,这时候使得风险函数最小就好了,判决规则写成:
若是\(R(\alpha_1|x) < R(\omega_2|x)\),采起行为\(\alpha_1\) ,也就是断定为 \(\omega_1\);不然采起行为\(\alpha_2\) ,也就是断定为 \(\omega_2\)
所以决策的方式就是采起风险\(R(\alpha_i|x)\)最小的行为\(\alpha_i\)——这是最小风险贝叶斯决策
- 把\(\lambda(\alpha_i|\omega_j)\) 简写成\(\lambda_{ij}\) ,并把类条件几率和先验几率代入,获得判决规则:
若是\((\lambda_{11}-\lambda_{21})p(x|\omega_1)P(\omega_1) < (\lambda_{22}-\lambda_{12})p(x|\omega_2)P(\omega_2)\),采起行为\(\alpha_1\) ,也就是断定为 \(\omega_1\);不然采起行为\(\alpha_2\) ,也就是断定为 \(\omega_2\)
- 还能够写成似然比的形式:
若是\(\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)}\) ,采起行为\(\alpha_1\) ,也就是断定为 \(\omega_1\);不然采起行为\(\alpha_2\) ,也就是断定为 \(\omega_2\)
这样写的好处是,不等式右边的损失函数和先验几率都是给定的,是一个常数,左边就是似然几率之比,因此只须要算出似然几率之比就能够进行分类预测
- 另外,若是采用以下0-1损失函数的时候,最小风险贝叶斯决策就会退化成最小错误率贝叶斯决策
\(\lambda(\alpha_i\vert\omega_j)\) | \(\omega_1\) | \(\omega_2\) |
---|---|---|
\(\alpha_1\) | 0 | 1 |
\(\alpha_2\) | 1 | 0 |
- 若是是多类状况
决策行为\(\alpha^*=argminR(\alpha_i|x)\) ,也就是采起的行为\(\alpha_i\) 是使得风险\(R(\alpha_i|x)\) 最小的那个\(\alpha_i\)