贝叶斯分类

假设有N种可能的类别标记,即$y=\{c_{1},c_{2}...c_{N}\}$,$\lambda_{ij}$是将一个真实标记为$c_{j}$的样本误分类为$c_{i}$所产生的损失,期望损失为:

  $R(c_{i}|x)=\sum_{j=1}^{N}\lambda_{ij}p(c_{j}|x)$

我们是希望找到一个判定准则 h ,一最小化总体风险:

  $R(h)=E_{x}[R(h(x)|x)]$

显然只要每一个样本都选择那个能使条件风险$R(c|x)$最小类别标记,即

  $h^{*}(x)=\underset{c \in y}{arg \ min}R(c|x)$

 

如果目标是最小化分类错误率,则误判损失$\lambda_{ij}$可写成:

  $\lambda_{ij}=\left\{\begin{matrix}0,if\ i = j\\ 1,otherwise\end{matrix}\right.$

此时的风险为:

  $R(c|x)=1-P(c|x)$

最小化分类错误率的贝叶斯最优化分类器:

  $h^{*}(x)=\underset{c \in y}{arg \ max}P(c|x)$

所以要求后验概率:

  $P(c|x)=\frac{P(x,c)}{P(x)}$

  $=\frac{P(c)P(x|c)}{P(x)}$

其中,$P(c)$是类的先验概率,$P(x|c)$是样本x相对于类标记c的类条件概率,$P(x)$是归一化的证据因子,给定样本x,证据因子与类别标记无关,因此估计$P(c|x)$的问题转化为如何基于训练数据D来估计先验$P(x)$和似然$P(x|c)$

对于$P(x)$,根据大数定律,当数据集包含充足的独立同分布样本时,可通过各类样本出现的频率来估计。

对于$P(x|c)$,它由于涉及关于x的所有属性的联合概率,直接根据样本出现的频率来估计将会遇到严重的困难,例如假设样本的d个属性都是二值的,则样本空间都有$2^{d}$种可能的取值,在现实应用中,这个值往往远大于训练样本数m,也就是说有很多取值在训练集中根本就没有出现过,“未观测到”和“出现概率为0”是不同的。

 

极大似然估计:

  假定$P(x|c)$具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。假设$P(x|c)$具有确定的形式并且被参数向量$\theta_{c}$唯一确定,则我们的任务是利用训练集D估计参数$\theta_{c}$,记$P(x|c)$为$P(x|\theta_{c})$(要已知总体分布,是n个属性的联合概率分布,计算量大,难以从有限的样本中得出)

令$D_{c}$表示训练集D中第c类样本组合的集合,假设这些样本是独立同分布的,则参数$\theta_{c}$对于数据集$D_{c}$的似然是(估计每一个类别的参数,即类别的分布是不同的):

  $P(D_{c}|\theta_{c})=\prod_{x\in D_{c}}P(x|\theta_{c})$

在$\theta_{c}$所有的取值中,找到一个能使数据出现的可能性最大,即:

  $LL(\theta_{c})=logP(D_{c}|\theta_{c})=\sum_{x\in D_{c}}logP(x|\theta_{c})$

极大似然估计$\widehat{\theta_{c}}$为:

  $\widehat{\theta_{c}}=\underset{\theta_{c}}{arg \ max}LL(\theta_{c})$

假设概率密度函数$P(x|c) \sim N(\mu_{c},\sigma_{c}^{2})$,则:

  $\widehat{\mu_{c}}=\frac{1}{|D_{c}|}\sum_{x\in D_{c}}x$

  $\widehat{\sigma_{c}}^{2}=\frac{1}{|D_{c}|}\sum_{x\in D_{c}}(x-\widehat{\mu_{c}})(x-\widehat{\mu_{c}})^{T}$

 

朴素贝叶斯:

利用极大似然估计来估计后验概率的主要困难是$P(x|c)$是所有属性上的联合概率,难以从有限的样本中得出,所有朴素贝叶斯假设每一个属性相互独立,则每一个属性都有自己的概率分布:

  $P(c|x)=\frac{P(c)P(x|c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^{d}p(x_{i}|c)$

其中$d$为属性数目,$x_{i}$为$x$在第$i$个属性上的取值。

即朴素贝叶斯表达式:

  $h_{nb}(x)=\underset{c\in y}{arg\ max}P(c)\prod_{i=1}^{d}p(x_{i}|c)$

令$D_{c}$表示训练集$D$中第$c$类样本组成的集合。

  $P(c)=\frac{|D_{c}|}{|D|}$

对于离散型属性,令$D_{c_{i}x_{i}}$表示$D_{c}$中在第$i$个属性上的取值为$x_{i}$的样本组成的集合:

  $p(x_{i}|c)=\frac{|D_{c_{i}x_{i}}|}{|D_{c}|}$

对于连续型属性,假设$P(x_{i}|c) \sim N(\mu_{c,i},\sigma_{c,i}^{2})$,其中$\mu_{c,i}$和$\sigma_{c,i}^{2}$分别是第$c$类样本在第$i$个属性上取值的均值和方差,则:

  $P(x_{i}|c)=\frac{1}{\sqrt{2\pi }\sigma_{c,i}}exp(-\frac{(x_{i}-\mu_{c,i})^{2}}{2\sigma_{c,i}^{2}})$

为避免因训练集样本不充分而导致概率值为0的情况(某一个属性的概率为0),因此加入拉普拉斯修正:

  $\widehat{P}(c)=\frac{|D_{c}|+1}{|D|+N}$

  $\widehat{P}(x_{i}|c)=\frac{|D_{c_{i}x_{i}}|+1}{|D_{c}|+N_{i}}$

其中$N$表示训练集$D$中可能的类别数,$N_{i}$表示第$i$个属性可能的取值数

  

  

 

posted @ 2019-09-04 23:20  小xxxx程序员  阅读(274)  评论(0编辑  收藏  举报