# 参数估计

朴素贝叶斯法需要估计参数$$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}$$上的随机变量。

## 1. 极大似然估计

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

**先验概率**$$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](https://www.zhihu.com/question/33959624%EF%BC%89%E3%80%82) ）。

令参数$$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}
$$

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

## 2. 贝叶斯估计

用极大似然估计可能出现所要估计的参数值为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$$。
