Machine Learning
  • Introduction
  • 机器学习
    • 前言
      • 符号表
    • 监督式学习
      • 感知机
        • 感知机模型
        • 感知机学习算法
        • 算法python实现
      • Logistic回归
        • Logistic分布
        • Logistic回归模型
        • 算法python实现
      • 线性回归
        • 线性回归模型
        • 算法python实现
      • K近邻法
        • k近邻模型
        • kd树方法
        • kd树python实现
        • knn实例
      • 朴素贝叶斯法
        • 模型和原理
        • 参数估计
        • 算法和实现
      • 决策树
        • 模型与学习
        • 特征选择
        • 生成算法和剪枝
        • python实现
      • 支持向量机
    • 神经网络
      • 神经元模型和感知机
      • 神经网络
      • 神经网络的矩阵表达
      • 反向传播算法
        • 算法证明
        • 算法代码
        • 基于矩阵的计算
      • 改进神经网络的学习方法
        • 交叉熵代价函数
        • softmax
        • regularization
        • 权重初始化
      • 卷积神经网络
        • 基本介绍
    • 数学基础
      • 线性代数
        • 特征值和特征向量
      • 概率统计
        • 随机变量的特征
        • 样本统计量
        • 先验后验概率
      • 微积分
        • 向量内积
        • 方向导数和梯度
        • 梯度下降法
      • 信息论
        • 熵
        • 相对熵和交叉熵
        • 条件熵
        • 互信息
Powered by GitBook
On this page
  • 1. 极大似然估计
  • 2. 贝叶斯估计
  • 示例
  1. 机器学习
  2. 监督式学习
  3. 朴素贝叶斯法

参数估计

朴素贝叶斯法需要估计参数P(Y=ck)P(Y=c_k)P(Y=ck​)和P(Xj=xj∣Y=ck)P(X_j=x_j|Y=c_k)P(Xj​=xj​∣Y=ck​)

y=f(x)=arg⁡max⁡ck∏j=1nP(Xj=xj∣Y=ck)P(Y=ck)y=f(x)=\arg \max_{c_k}\prod_{j=1}^n P(X_j=x_j|Y=c_k)P(Y=c_k)y=f(x)=argck​max​j=1∏n​P(Xj​=xj​∣Y=ck​)P(Y=ck​)

假定数据集T={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}T=\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}T={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},其中x∈X⊆Rnx\in \mathcal{X}\subseteq R^nx∈X⊆Rn,y∈Y={c1,c2,...,cK}y\in \mathcal{Y}=\{c_1, c_2,...,c_K\}y∈Y={c1​,c2​,...,cK​}。XXX是定义在输入空间X\mathcal{X}X上的nnn维随机向量,YYY是定义在输出空间Y\mathcal{Y}Y上的随机变量。

1. 极大似然估计

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

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

P(Y=ck)=∑i=1mI(y(i)=ck)m, k=1,2,...,KP(Y=c_k)=\dfrac{\displaystyle\sum_{i=1}^mI(y^{(i)}=c_k)}{m},\ k=1,2,...,KP(Y=ck​)=mi=1∑m​I(y(i)=ck​)​, k=1,2,...,K

其中I(yi=ck)I(y_i=c_k)I(yi​=ck​)是指示函数,当yi=cky_i=c_kyi​=ck​时值为1,其他情况下为0。mmm为数据集里的数据量。

假定输入的nnn维特征向量xxx的第jjj维可能的取值为{xj1,xj2,...xjsj}\{x_{j1},x_{j2},...x_{js_{j}}\}{xj1​,xj2​,...xjsj​​},则条件概率P(Xj=xjl∣Y=ck)P(X_j=x_{jl}|Y=c_k)P(Xj​=xjl​∣Y=ck​)的极大似然估计是:

P(Xj=xjl∣Y=ck)=∑i=1mI(xj(i)=xjl,y(i)=ck)∑i=1mI(y(i)=ck)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)}P(Xj​=xjl​∣Y=ck​)=i=1∑m​I(y(i)=ck​)i=1∑m​I(xj(i)​=xjl​,y(i)=ck​)​
j=1,2,...,n; l=1,2,...,sj; k=1,2,...,Kj=1,2,...,n;\ l=1,2,...,s_j;\ k=1,2,...,Kj=1,2,...,n; l=1,2,...,sj​; k=1,2,...,K

其中xj(i)x_j^{(i)}xj(i)​是第iii个样本的第jjj个特征,xjlx_{jl}xjl​是第jjj个特征的可能取的第lll个值,III为指示函数。

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

L(θk;y(1),y(2),...,y(m))=∏i=1mp(y(i))=∏k=1KθktkL(\theta_k;y^{(1)},y^{(2)},...,y^{(m)})=\displaystyle\prod_{i=1}^mp(y^{(i)})=\displaystyle\prod_{k=1}^K\theta_k^{t_k}L(θk​;y(1),y(2),...,y(m))=i=1∏m​p(y(i))=k=1∏K​θktk​​

其中mmm是样本总数,tkt_ktk​为样本中Y=ckY=c_kY=ck​的样本数目,满足∑k=1Ktk=m\displaystyle\sum_{k=1}^Kt_k=mk=1∑K​tk​=m。取对数得到

ln(L(θk))=∑k=1Ktklnθkln(L(\theta_k))=\displaystyle\sum_{k=1}^Kt_kln\theta_kln(L(θk​))=k=1∑K​tk​lnθk​

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

l(θk,λ)=∑k=1Ktklnθk+λ(∑k=1Kθk−1)l(\theta_k,\lambda)=\displaystyle\sum_{k=1}^Kt_kln\theta_k+\lambda(\displaystyle\sum_{k=1}^K\theta_k-1)l(θk​,λ)=k=1∑K​tk​lnθk​+λ(k=1∑K​θk​−1)

求导可以得到

∂l(θk,λ)∂θk=tkθk+λ=0\dfrac{\partial l(\theta_k,\lambda)}{\partial \theta_k}=\dfrac{t_k}{\theta_k}+\lambda=0∂θk​∂l(θk​,λ)​=θk​tk​​+λ=0

得到:

tk=−λθk, k=1,2,...,Kt_k=-\lambda{\theta_k},\ k=1,2,...,Ktk​=−λθk​, k=1,2,...,K

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

P(Y=ck)=θk=tkmP(Y=c_k)=\theta_k=\dfrac{t_k}{m}P(Y=ck​)=θk​=mtk​​

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

2. 贝叶斯估计

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

条件概率的贝叶斯估计是

Pλ(Xj=xjl∣Y=ck)=∑i=1mI(xj(i)=xjl,y(i)=ck)+λ∑i=1mI(y(i)=ck)+sjλ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}Pλ​(Xj​=xjl​∣Y=ck​)=i=1∑m​I(y(i)=ck​)+sj​λi=1∑m​I(xj(i)​=xjl​,y(i)=ck​)+λ​

式中λ⩾0\lambda \geqslant0λ⩾0,sjs_jsj​是特征向量的第jjj维可能的取值数量。显然Pλ(Xj=xjl∣Y=ck)>0P_{\lambda}(X_j=x_{jl}|Y=c_k)>0Pλ​(Xj​=xjl​∣Y=ck​)>0,且∑l=1sjPλ(Xj=xjl∣Y=ck)=1\displaystyle\sum_{l=1}^{s_j}P_{\lambda}(X_j=x_{jl}|Y=c_k)=1l=1∑sj​​Pλ​(Xj​=xjl​∣Y=ck​)=1。

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

先验概率的贝叶斯估计是

Pλ(Y=ck)=∑i=1mI(y(i)=ck)+λm+KλP_{\lambda}(Y=c_k)=\dfrac{\displaystyle\sum_{i=1}^mI(y^{(i)}=c_k)+\lambda}{m+K\lambda}Pλ​(Y=ck​)=m+Kλi=1∑m​I(y(i)=ck​)+λ​

同样λ⩾0\lambda \geqslant0λ⩾0。

示例

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

表中X1X_1X1​,X2X_2X2​为特征,取值的集合分别为A1={1,2,3}A_1=\{1,2,3\}A1​={1,2,3},A2={S,M,L}A_2=\{S,M,L\}A2​={S,M,L},YYY为类标记,Y∈C={1,−1}Y\in C=\{1,-1\}Y∈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)=915P(Y=1)=\dfrac{9}{15}P(Y=1)=159​,P(Y=−1)=615P(Y=-1)=\dfrac{6}{15}P(Y=−1)=156​

P(X1=1∣Y=1)=29P(X_1=1|Y=1)=\dfrac{2}{9}P(X1​=1∣Y=1)=92​,P(X1=2∣Y=1)=39P(X_1=2|Y=1)=\dfrac{3}{9}P(X1​=2∣Y=1)=93​,P(X1=3∣Y=1)=49P(X_1=3|Y=1)=\dfrac{4}{9}P(X1​=3∣Y=1)=94​

P(X2=S∣Y=1)=19P(X_2=S|Y=1)=\dfrac{1}{9}P(X2​=S∣Y=1)=91​,P(X2=M∣Y=1)=49P(X_2=M|Y=1)=\dfrac{4}{9}P(X2​=M∣Y=1)=94​,P(X2=L∣Y=1)=49P(X_2=L|Y=1)=\dfrac{4}{9}P(X2​=L∣Y=1)=94​

P(X1=1∣Y=−1)=36P(X_1=1|Y=-1)=\dfrac{3}{6}P(X1​=1∣Y=−1)=63​,P(X1=2∣Y=−1)=26P(X_1=2|Y=-1)=\dfrac{2}{6}P(X1​=2∣Y=−1)=62​,P(X1=3∣Y=−1)=16P(X_1=3|Y=-1)=\dfrac{1}{6}P(X1​=3∣Y=−1)=61​

P(X2=S∣Y=−1)=36P(X_2=S|Y=-1)=\dfrac{3}{6}P(X2​=S∣Y=−1)=63​,P(X2=M∣Y=−1)=26P(X_2=M|Y=-1)=\dfrac{2}{6}P(X2​=M∣Y=−1)=62​,P(X2=L∣Y=−1)=16P(X_2=L|Y=-1)=\dfrac{1}{6}P(X2​=L∣Y=−1)=61​

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

P(Y=1)P(X1=2∣Y=1)P(X2=S∣Y=1)=915⋅39⋅19=145P(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(X1​=2∣Y=1)P(X2​=S∣Y=1)=159​⋅93​⋅91​=451​

P(Y=−1)P(X1=2∣Y=−1)P(X2=S∣Y=−1)=615⋅26⋅36=115P(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}P(Y=−1)P(X1​=2∣Y=−1)P(X2​=S∣Y=−1)=156​⋅62​⋅63​=151​

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

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

P(Y=1)=1017P(Y=1)=\dfrac{10}{17}P(Y=1)=1710​,P(Y=−1)=717P(Y=-1)=\dfrac{7}{17}P(Y=−1)=177​

P(X1=1∣Y=1)=312P(X_1=1|Y=1)=\dfrac{3}{12}P(X1​=1∣Y=1)=123​,P(X1=2∣Y=1)=412P(X_1=2|Y=1)=\dfrac{4}{12}P(X1​=2∣Y=1)=124​,P(X1=3∣Y=1)=512P(X_1=3|Y=1)=\dfrac{5}{12}P(X1​=3∣Y=1)=125​

P(X2=S∣Y=1)=212P(X_2=S|Y=1)=\dfrac{2}{12}P(X2​=S∣Y=1)=122​,P(X2=M∣Y=1)=512P(X_2=M|Y=1)=\dfrac{5}{12}P(X2​=M∣Y=1)=125​,P(X2=L∣Y=1)=512P(X_2=L|Y=1)=\dfrac{5}{12}P(X2​=L∣Y=1)=125​

P(X1=1∣Y=−1)=49P(X_1=1|Y=-1)=\dfrac{4}{9}P(X1​=1∣Y=−1)=94​,P(X1=2∣Y=−1)=39P(X_1=2|Y=-1)=\dfrac{3}{9}P(X1​=2∣Y=−1)=93​,P(X1=3∣Y=−1)=29P(X_1=3|Y=-1)=\dfrac{2}{9}P(X1​=3∣Y=−1)=92​

P(X2=S∣Y=−1)=49P(X_2=S|Y=-1)=\dfrac{4}{9}P(X2​=S∣Y=−1)=94​,P(X2=M∣Y=−1)=39P(X_2=M|Y=-1)=\dfrac{3}{9}P(X2​=M∣Y=−1)=93​,P(X2=L∣Y=−1)=29P(X_2=L|Y=-1)=\dfrac{2}{9}P(X2​=L∣Y=−1)=92​

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

P(Y=1)P(X1=2∣Y=1)P(X2=S∣Y=1)=1017⋅412⋅212=5153=0.03P(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.03P(Y=1)P(X1​=2∣Y=1)P(X2​=S∣Y=1)=1710​⋅124​⋅122​=1535​=0.03

P(Y=−1)P(X1=2∣Y=−1)P(X2=S∣Y=−1)=717⋅39⋅49=28459=0.06P(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.06P(Y=−1)P(X1​=2∣Y=−1)P(X2​=S∣Y=−1)=177​⋅93​⋅94​=45928​=0.06

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

Previous模型和原理Next算法和实现

Last updated 7 years ago

这里证明一下先验概率P(Y=ck)P(Y=c_k)P(Y=ck​)的极大似然估计(参考 )。

https://www.zhihu.com/question/33959624