朴素贝叶斯法的参数估计

朴素贝叶斯法需要估计参数$$P(Y=c_k)$$和$$P(X_j=x_j|Y=c_k)$$

$$ y=f(x)=\arg \max_{c_k}\prod_{j=1}^n P(X_j=x_j|Y=c_k)P(Y=c_k) $$

假定数据集$$T={(x{(1)},y{(1)}),(x{(2)},y{(2)}),...,(x{(m)},y{(m)})}$$,其中$$x\in \mathcal{X}\subseteq R^n$$,$$y\in \mathcal{Y}={c_1, c_2,...,c_K}$$。$$X$$是定义在输入空间$$\mathcal{X}$$上的$$n$$维随机向量,$$Y$$是定义在输出空间$$\mathcal{Y}$$上的随机变量。

极大似然估计

应用极大似然估计法估计相应参数。

先验概率$$P(Y=c_k)$$的极大似然估计是:

$$ P(Y=c_k)=\dfrac{\displaystyle\sum_{i=1}mI(y{(i)}=c_k)}{m},\ k=1,2,...,K $$

其中$$I(y_i=c_k)$$是指示函数,当$$y_i=c_k$$时值为1,其他情况下为0。$$m$$为数据集里的数据量。

假定输入的$$n$$维特征向量$$x$$的第$$j$$维可能的取值为$${x_{j1},x_{j2},...x_{js_{j}}}$$,则条件概率$$P(X_j=x_{jl}|Y=c_k)$$的极大似然估计是:

$$ P(X_j=x_{jl}|Y=c_k)=\dfrac{\displaystyle\sum_{i=1}mI(x_j{(i)}=x_{jl},y{(i)}=c_k)}{\displaystyle\sum_{i=1}mI(y^{(i)}=c_k)} $$

$$ j=1,2,...,n;\ l=1,2,...,s_j;\ k=1,2,...,K $$

其中$$x_j^{(i)}$$是第$$i$$个样本的第$$j$$个特征,$$x_{jl}$$是第$$j$$个特征的可能取的第$$l$$个值,$$I$$为指示函数。

这里证明一下先验概率$$P(Y=c_k)$$的极大似然估计(参考 https://www.zhihu.com/question/33959624 )。

令参数$$P(Y=c_k)=\theta_k,\ k=1,2,...,K$$。则随机变量$$Y$$的概率可以用参数来表示为$$P(Y)=\displaystyle\sum_{k=1}^K\theta_kI(Y=c_k)$$,其中$$I$$是指示函数。极大似然函数

$$ L(\theta_k;y{(1)},y{(2)},...,y{(m)})=\displaystyle\prod_{i=1}mp(y{(i)})=\displaystyle\prod_{k=1}K\theta_k^{t_k} $$

其中$$m$$是样本总数,$$t_k$$为样本中$$Y=c_k$$的样本数目,满足$$\displaystyle\sum_{k=1}^Kt_k=m$$。取对数得到

$$ ln(L(\theta_k))=\displaystyle\sum_{k=1}^Kt_kln\theta_k $$

要求该函数的最大值,同时有约束条件$$\displaystyle\sum_{k=1}^K\theta_k=1$$。利用拉格朗日乘子法,

$$ l(\theta_k,\lambda)=\displaystyle\sum_{k=1}Kt_kln\theta_k+\lambda(\displaystyle\sum_{k=1}K\theta_k-1) $$

求导可以得到

$$ \dfrac{\partial l(\theta_k,\lambda)}{\partial \theta_k}=\dfrac{t_k}{\theta_k}+\lambda=0 $$

得到:

$$ t_k=-\lambda{\theta_k},\ k=1,2,...,K $$

将所有的$$K$$个式子加起来,得到$$\displaystyle\sum_{k=1}Kt_k=-\displaystyle\sum_{k=1}K\lambda{\theta_k}$$,同时结合约束条件$$\displaystyle\sum_{k=1}^K\theta_k=1$$,可得$$\lambda=-m$$。最终可得

$$ P(Y=c_k)=\theta_k=\dfrac{t_k}{m} $$

证明完毕。其他更多的详细证明请参考以上链接。

贝叶斯估计

用极大似然估计可能出现所要估计的参数值为0的情况,这会影响到连乘时的值直接为0,使分类结果产生偏差。解决这一问题的方法是采用贝叶斯估计。

条件概率的贝叶斯估计是

$$ P_{\lambda}(X_j=x_{jl}|Y=c_k)=\dfrac{\displaystyle\sum_{i=1}mI(x_j{(i)}=x_{jl},y{(i)}=c_k)+\lambda}{\displaystyle\sum_{i=1}mI(y^{(i)}=c_k)+s_j\lambda} $$

式中$$\lambda \geqslant0$$,$$s_j$$是特征向量的第$$j$$维可能的取值数量。显然$$P_{\lambda}(X_j=x_{jl}|Y=c_k)>0$$,且$$\displaystyle\sum_{l=1}^{s_j}P_{\lambda}(X_j=x_{jl}|Y=c_k)=1$$。

这等价于在随机变量各个取值的频数上赋予一个正数$$\lambda>0$$。当$$\lambda=0$$时,就是极大似然估计。常取$$\lambda=1$$,这时称为拉布普拉斯平滑(Laplace smoothing)。

先验概率的贝叶斯估计是

$$ P_{\lambda}(Y=c_k)=\dfrac{\displaystyle\sum_{i=1}mI(y{(i)}=c_k)+\lambda}{m+K\lambda} $$

同样$$\lambda \geqslant0$$。

示例

由下表的训练数据学习一个朴素贝叶斯分类器并确定$$x=(2,S)^T$$的类标记$$y$$。

表中$$X_1$$,$$X_2$$为特征,取值的集合分别为$$A_1={1,2,3}$$,$$A_2={S,M,L}$$,$$Y$$为类标记,$$Y\in C={1,-1}$$。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
X1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
X2 S M M S S S M M L L L M M L L
Y -1 -1 1 1 -1 -1 -1 1 1 1 1 1 1 1 -1

极大似然估计

$$P(Y=1)=\dfrac{9}{15}$$,$$P(Y=-1)=\dfrac{6}{15}$$

$$P(X_1=1|Y=1)=\dfrac{2}{9}$$,$$P(X_1=2|Y=1)=\dfrac{3}{9}$$,$$P(X_1=3|Y=1)=\dfrac{4}{9}$$

$$P(X_2=S|Y=1)=\dfrac{1}{9}$$,$$P(X_2=M|Y=1)=\dfrac{4}{9}$$,$$P(X_2=L|Y=1)=\dfrac{4}{9}$$

$$P(X_1=1|Y=-1)=\dfrac{3}{6}$$,$$P(X_1=2|Y=-1)=\dfrac{2}{6}$$,$$P(X_1=3|Y=-1)=\dfrac{1}{6}$$

$$P(X_2=S|Y=-1)=\dfrac{3}{6}$$,$$P(X_2=M|Y=-1)=\dfrac{2}{6}$$,$$P(X_2=L|Y=-1)=\dfrac{1}{6}$$

对于给定的$$x=(2,S)^T$$计算:

$$P(Y=1)P(X_1=2|Y=1)P(X_2=S|Y=1)=\dfrac{9}{15}\cdot \dfrac{3}{9} \cdot \dfrac{1}{9}=\dfrac{1}{45}$$

$$P(Y=-1)P(X_1=2|Y=-1)P(X_2=S|Y=-1)=\dfrac{6}{15}\cdot \dfrac{2}{6} \cdot \dfrac{3}{6}=\dfrac{1}{15}$$

当$$Y=-1$$时比较大,所以$$y=-1$$。

拉普拉斯平滑估计($$\lambda=1$$):

$$P(Y=1)=\dfrac{10}{17}$$,$$P(Y=-1)=\dfrac{7}{17}$$

$$P(X_1=1|Y=1)=\dfrac{3}{12}$$,$$P(X_1=2|Y=1)=\dfrac{4}{12}$$,$$P(X_1=3|Y=1)=\dfrac{5}{12}$$

$$P(X_2=S|Y=1)=\dfrac{2}{12}$$,$$P(X_2=M|Y=1)=\dfrac{5}{12}$$,$$P(X_2=L|Y=1)=\dfrac{5}{12}$$

$$P(X_1=1|Y=-1)=\dfrac{4}{9}$$,$$P(X_1=2|Y=-1)=\dfrac{3}{9}$$,$$P(X_1=3|Y=-1)=\dfrac{2}{9}$$

$$P(X_2=S|Y=-1)=\dfrac{4}{9}$$,$$P(X_2=M|Y=-1)=\dfrac{3}{9}$$,$$P(X_2=L|Y=-1)=\dfrac{2}{9}$$

对于给定的$$x=(2,S)^T$$计算

$$P(Y=1)P(X_1=2|Y=1)P(X_2=S|Y=1)=\dfrac{10}{17}\cdot \dfrac{4}{12} \cdot \dfrac{2}{12}=\dfrac{5}{153}=0.03$$

$$P(Y=-1)P(X_1=2|Y=-1)P(X_2=S|Y=-1)=\dfrac{7}{17}\cdot \dfrac{3}{9} \cdot \dfrac{4}{9}=\dfrac{28}{459}=0.06$$

由于$$Y=-1$$时,比较大,所以$$y=-1$$。


书籍推荐