这个学期在学模式识别,把常见的算法自己手码出来了,感受颇深,所以给大家分享一波
整个文章大纲
- 贝叶斯理论简介
- 先验概率
- 后验概率
- 最小错误率贝叶斯决策
- 最小风险贝叶斯决策
Part One 理论
一、贝叶斯理论简介
如果你是理工科出身,对贝叶斯公式肯定不会陌生。
贝叶斯经常用于文档分类上,在电子邮件的过滤等文本处理上效果相当不错,最近题主在学校做的一个参加挑战杯的项目,是基于LDA贝叶斯模型,可能有些同学会有点迷糊,这里的LDA不是Linear Discriminant Analysis线性分类器,是隐含狄利克雷分布(Latent Dirichlet Allocation)
上贝叶斯公式:
p ( A ∣ B ) = p ( B ∣ A ) ⋅ p ( A ) p ( B ) p(A|B) =\frac{p(B|A)\cdot p(A)}{ p(B)} p(A∣B)=p(B)p(B∣A)⋅p(A)
话不多说,我们来首先来看一下贝叶斯是基于什么样的思想:
新信息出现之后A的概率 = A的概率×新信息带来的调整
我在知乎上找到的维恩图很好地表现了贝叶斯公式的背后思想
来自非数学语言解释贝叶斯定理
那么现在对于最基础的公式有了最直观的理解之后,那我们就可以学习怎么把这个思想运用到分类上。
我们用先验概率和类条件概率的乘积,代替后验概率去做比较:
其实很简单,我来举个例子
现在有2类硬币:
* 1元
* 0.5元
目前知道的有这两类硬币数量的比例,这是一个先验概率噢,比如说,为了简便,我取1:1,每一种类别的频率都为0.5
那么现在我们想要根据测量硬币的重量来进一步预测这个硬币到底是1元的还是5角的
我们就可以根据贝叶斯公式推算出未知硬币的分别属于哪种硬币的概率,取概率大的为预测结果。
那你现在可能就会有问题了,后验概率怎么来的呢?
好问题,这也是贝叶斯的一个小bug,后验概率一般是根据数据得出,你可以看出其实这里不能做到完全严谨。
在一般应用中我们假设这个特征在类内是服从正态分布的(实际上生活中很多特征都是这样的),正态分布由两个参数唯一决定,均值和方差。所以完全可以用训练集中的特征的出现情况去估计这两个参数,从而得到类条件概率密度函数的模型。
- 高斯分布:
接下来我们来学习什么是最小错误率贝叶斯决策
二、最小错误率贝叶斯决策
如下图,如果类条件概率密度函数和先验概率的乘积图像是这样的,那么在交点处作为分类面,对于特征的值x取在分类面左边的样本预测为红色类别,右边的样本预测为绿色类别,总的错误率最小:
图中一半阴影即是把绿色类误判为红色类的情况,一半阴影是把红色类误判为绿色类的情况。只有分类面取在交点处时这个错误率之和才能最小。
如果不是取在交点处,不管是在左边还是右边,可以看到错误的面积总是会比刚刚那种情况多出一块:
如此我们可以得到:
以二分类问题为例,对于样本x的决策错误率:
更进一步得到:
决策函数:
讨论多分类问题:
如果认为样本的特征向量在类内服从多元正态分布:
类条件概率密度服从多元正态分布,带入,得:
- 多元正态分布
p ( x ) = 1 ( 2 π ) 1 / 2 ∣ ∑ ∣ 1 / 2 exp { − 1 2 ( x − μ ) T ∑ − 1 ( x − μ ) } , x ∈ R l p(x)=\frac{1}{(2\pi)^{1/2}|\sum|^{1/2}}\exp {\{-\frac{1}{2}(x-\mu)^T{\sum}^{-1}(x-\mu)\}}, \quad x \in R^l p(x)=(2π)1/2∣∑∣1/21exp{ −21(x−μ)T∑−1(x−μ)},x∈Rl - mean均值
μ = E [ x ] = E [ x 1 , x 2 , . . . . . , x l ] \mu = E[x] = E[x_1,x_2,.....,x_l] μ=E[x]=E[x1,x2,.....,xl] - 协方差矩阵:
∑ = E [ ( x − μ ) ( x − μ ) T ] = [ σ 11 2 σ 12 2 ⋯ σ 1 l 2 σ 21 2 σ 22 2 ⋯ σ 2 l 2