朴素贝叶斯分类法

(一) 前言

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。采用统计学习中的三要素方法对朴素贝叶斯分类器进行分析,朴素贝叶斯分类基于朴素贝叶斯模型,通过期望风险最小化方法来选择最优化模型空间中的最优解,最后可以采用最大似然估计或者贝叶斯估计求解分类器。

(二) 核心依赖

1. 贝叶斯公式

贝叶斯公式如下:

\(P\left ( Y=c_{k}|X=x \right )=\frac{P\left ( Y=c_{k} \right )P\left ( X=x| Y=c_{k} \right )}{ \sum_{k=1}^{K} P\left ( Y=c_{k} \right )P\left ( X=x| Y=c_{k} \right )}\) (公式1)

2. 特征独立性假设

贝叶斯法则另一特点就是假设特征之间不具有依赖性,虽然此假设有时并不合理(比如自然语言处理中假设文章中词与词之间的出现是不具有依赖性的),但是可以大大降低计算复杂度,所以这是一个非常强的假设。根据此假设与事件的的条件独立性可以得到如下公式:

\(P\left ( X=x|Y=c_{k} \right )=P\left ( X^{\left ( 1 \right )}=x^{\left ( 1 \right )}, X^{\left ( 2 \right )}=x^{\left ( 2 \right )},…, X^{\left ( n \right )}=x^{\left ( n \right )} |Y=c_{k}\right )=\prod_{i=1}^{n}P\left ( X^{\left ( i \right )}=x^{\left ( i \right )}|Y=c_{k} \right )\) (公式2)

3. 朴素贝叶斯法则所符合公式

将特征独立性公式带入贝叶斯公式,可得到贝叶斯法则符合以下公式:

\(P\left ( Y=c_{k}|X=x \right ) = \frac{P\left ( Y=c_{k}\right )\prod_{i=1}^{n} P\left ( X^{\left ( i \right )}=x^{\left ( i \right )}|Y=c_{k} \right )}{\sum_{k=1}^{K}P\left ( Y=c_{k}\right )\prod_{i=1}^{n} P\left ( X^{\left ( i \right )}=x^{\left ( i \right )}|Y=c_{k} \right )}\) (公式3)

(三) 最优解推导过程

我们已经得到了贝叶斯法的假设空间(公式3),但是我们怎么获取最优解呢,机器学习一般步骤是:设计损失函数,然后求最小化损失,此时就可以得到最优解,下面我们将进行逐步的推导求解。

1. 损失函数

我们选取0-1损失函数作为本次选取最优化解的损失函数,公式如下:

\(L\left ( y,f\left ( x \right ) \right )=\left\{\begin{matrix}
1 & y\neq f\left ( x \right ) & \\
0 & y= f\left ( x \right ) &
\end{matrix}\right.\)

可以看出,该损失函数的意义就是,当预测错误时,损失函数值为1,预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度,也就是只要预测错误,预测错误差一点和差很多是一样的。

2. 后验概率最大化准则

损失函数只能测得一次实验的损失,并不能表示整体的好坏情况,为了得到全局最优解,我们需要选取一种方法来获取全局最优。期望风险就可以很好的解决这个问题,期望风险是全局的,基于所有样本点损失函数最小化。由于期望风险是全局的,是理想化的,所以通常是不可求的,但是我们只需要用期望风险进行求解的推导,所以是可以的。又因为是对联合概率分布P(X,Y)取期望,所以求解期望风险最小化的过程如下:

\(
\begin{aligned}
R_{exp}\left ( f \right )
&=\iint_{D_{XY}}L\left ( y,f\left ( x \right ) \right )P\left ( x,y \right )dxdy\\
&=\int_{D_{X}}\int_{D_{Y}}L\left ( y,f\left ( x \right ) \right )P\left ( y|x \right )P\left ( x \right )dxdy\\
&==\int_{D_{X}}\left [ \int_{D_{Y}} L\left ( y,f\left ( x \right ) \right )P\left ( y|x \right )dy\right ]P\left ( x \right )dx
\end{aligned}
\)

其中\(\int _{D_{Y}}L\left ( y,f\left ( x \right ) \right )P\left ( y|x \right )dy\)称为在X=x时的y的条件期望。

为了使期望风险最小,只需要对每一个X=x逐个极小化。

\(\begin{aligned}
f\left ( x \right )
&=argmin_{y\in Y}\int_{D_{Y}}L\left ( y,f\left ( x \right ) \right )P\left ( y|x \right )dy\\
&=argmin_{y\in Y}\sum_{k=1}^{K}L\left ( c_{k},f\left ( x \right ) \right )P\left ( c_{k}|x \right )\\
&=argmin_{y\in Y}\sum_{k=1}^{K}P\left ( y \neq c_{k} |x \right )\\
&=argmin_{y\in Y}1-P\left ( y = c_{k} |x \right )\\
&=argmax_{y\in Y}P\left ( y = c_{k} |x \right )\\
\end{aligned}
\)

根据期望风险最小化准则就得到了后验概率最大化准则。

\(f\left ( x \right )=argmax_{c_{k}}P\left ( c_{k}|X=x \right )\)

(四) 朴素贝叶斯分类算法

1. 类别选择依据

根据后验概率最大化准则,我们只需要选择当前数据最大概率的分类就是最优结果。并且在公式3中分母针对任何ck都具有相同的值,所以分类公式为:

\(y=argmax_{c_{k}}\frac{\mathrm{d} }{\mathrm{d} x}P\left ( Y=c_{k} \right )\prod_{j=1}^{n}P\left ( X^{\left ( j \right )}=x^{\left ( j \right )}|Y=c_{k} \right )\) (公式4)

2. 学习与分类算法步骤

(1)计算先验概率\(P\left ( Y=c_{k} \right )\)与条件概率\(P\left ( X^{\left(j\right)}=a_{jl}|Y=c_{k} \right )\)

(2)对于给定的实例\(x=\left ( x^{1},x^{2},…,x^{n} \right )^{T}\),计算

\(P\left ( Y=c_{k} \right )\prod_{j=1}^{n}P\left ( X^{\left ( j \right )}=x^{\left ( j \right )}|Y=c_{k} \right ), k=1,2,…,k\)

(3)根据公式4确定实例x的类

(五) 参数估计

参数估计,是根据训练数据进行公式4中先验概率与条件概率具体的求解,进而可以对新测试数据进行分类

1. 极大似然估计求解法

先验概率求解公式:

\(P\left ( Y=c_{k} \right )=\frac{\sum_{i=1}^{N}I\left ( y_{i}=c_{k} \right )}{N}, \quad k=1,2,…,K\)

条件概率公式概率求解公式:

\(\begin{aligned}
P\left ( X^{\left ( j \right )}=a_{jl}|Y= a_{k}\right )=\frac{\sum_{i=1}^{N}I\left ( x_{i}^{j}=a_{jl}, y_{i}=c_{k} \right )}{\sum_{i=1}^{N}I\left ( y_{i}=c_{k} \right )}\\
\\
j=1,2,…,n; \quad l=1,2,…,S_{j}; \quad k=1,2,…,K
\end{aligned}\)

2. 贝叶斯估计求解法

为了解决零概率情况对后验概率计算结果的影响,进而使分类产生偏差的情况,贝叶斯估计在计算过程中进行了平滑,等价于在随机变量各个取值的频数上赋予一个正数\(\lambda>0 \).当\(\lambda=0 \)时就是极大似然估计。常取\(\lambda>1 \),这时称为拉普拉斯平滑(Laplace smoothing)

先验概率求解公式:

\(P\left ( Y=c_{k} \right )=\frac{\sum_{i=1}^{N}I\left ( y_{i}=c_{k} \right )+\lambda }{N+K\lambda }, \quad k=1,2,…,K\)

条件概率公式概率求解公式,公式中\(S_{j}\)表示特征j可能的取值个数:

\(
P\left ( X^{\left ( j \right )}=a_{jl}|Y= a_{k}\right )=\frac{\sum_{i=1}^{N}I\left ( x_{i}^{j}=a_{jl}, y_{i}=c_{k} \right ) + \lambda }{\sum_{i=1}^{N}I\left ( y_{i}=c_{k} \right ) + S_{j}\lambda }\)

(六) 三种常用模型

1. 模型选择依据

上面已经描述了贝叶斯分类的推到与求解过程,但是在上面的过程中默认特征的取值是离散的,如果特征的数据是连续的又给怎么处理呢?相面我们将描述三种常用的贝叶斯分类变种,在进行模型的选择时主要是根据训练数据特征来定,比如当特征为离散型的时候可以选择多项式模型;当特征为连续型数据的时候运用多项式模型就会导致很多\(P(x_{i}|y_{k})=0\)(不做平滑的情况下),此时即使做平滑,所得到的条件概率也难以描述真实情况。所以处理连续的特征变量,应该采用高斯模型;伯努利模型适用于数据中每个特征的取值只能是1和0(以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0)

2. Multinomial Naive Bayes[多项式朴素贝叶斯]

其实上面介绍的就可以看成是多项式朴素贝叶斯,可以处理特征是离散,并且可以采用极大私贝叶斯估计法对其进行求解

3. Gaussian Naive Bayes[高斯朴素贝叶斯]

高斯贝叶斯主要处理特征数据是连续的,并且由于样本比较少,无法分成区间计算,这时可以把特征假设都符合正态分布,通过已有样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值(计算出的值有可能大于1,但是并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性)。

高斯模型假设每一维特征都服从高斯分布(正态分布):

\(P\left ( x_{i}|y_{k} \right )=\frac{1}{\sqrt{2\pi \sigma_{y_{k},i}^{2}}}e^{-\frac{\left ( x_{i}-\mu _{y_{k},i} \right )^2}{2\sigma _{y_{k},i}^{2}}}\)

\(\mu_{y_{k},i}\) 表示类别为\(y_{k}\)的样本中,第i维特征的均值。

\(\sigma _{y_{k},i}^{2}\)表示类别为\(y_{k}\)的样本中,第i维特征的方差。

期望求法:

\(E\left ( x \right )=\sum_{k=1}^{n}x_{k}P\left ( x_{k} \right )\)

方差求法:

\(\sigma ^{2}=\frac{\sum_{i=1}^{N}\left ( X-\mu \right )^{2}}{N}\)

4. Bernoulli Naive Bayes[伯努利朴素贝叶斯]

与多项式模型一样,伯努利模型适用于离散特征的情况,所不同的是,伯努利模型中每个特征的取值只能是1和0(以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0).

伯努利模型中,条件概率\(P(x_{i}|y_{k})\)的计算方式是:

当特征值\(x_{i}\)为1时,\(P(x_{i}|y_{k})=P(x_{i}=1|y_{k})\);

当特征值\(x_{i}\)为0时,\(P(x_{i}|y_{k})=1−P(x_{i}=1|y_{k})\);


参考博客

《统计学习方法》 李航

朴素贝叶斯 后验概率最大化的含义

朴素贝叶斯理论推导与三种常见模型

朴素贝叶斯以及三种常见模型推导

期望, 方差, 协方差,标准差

-------------本文为博主原创文章,如需转载请注明出处 [https://ssjcoding.github.io]">-------------