贝叶斯分类
假设有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$个属性可能的取值数