Datawhale统计学习方法打卡Task04

学习教材《统计学习方法(第二版)》李航

学习内容:第4章 朴素贝叶斯法

第4章 朴素贝叶斯法

        朴素贝叶斯(naive bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯法包括朴素贝叶斯的学习与分类、朴素贝叶斯法的参数估计算法。

4.1 朴素贝叶斯法的学习与分类

4.1.1基本方法        

设输入空间\mathcal X\in \mathbf R^n为n维向量的集合,输出空间为类标记集合\mathcal Y=\{c_1, c_2,\cdots,c_K\}。输入特征向量x\in \mathcal X,输出为类标记y\in \mathcal Y。X是定义在输入空间\mathcal X上的随机向量,Y是定义在输出空间\mathcal Y上的随机变量。P(X,Y)是X和Y的联合概率分布。训练数据集

T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\}

P(X,Y)独立同分布产生。

朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y)。具体的,学习一下先验概率分布及条件概率分布。先验概率分布

P(Y=c_k), \;\;k=1,2,\cdots,K

 条件概率分布:

P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k),\;k=1,2,\cdots,K

于是学习到联合概率分布P(X,Y)

 贝叶斯基本的原理为:

P(AB)=P(A)P(B|A)=P(B)P(A|B)

P(A_i|B)=\frac{P(B|A_i)P(A_i)}{\sum_jP(B|A_i)P(A_i)}

其中:

P(A)是A的先验概率或边缘概率,就是在不考虑B的情况下A的概率;

P(A|B)是一致B发生后A的条件概率,所以叫做A的后验概率;

参考网址:贝叶斯公式_百度百科

朴素贝叶斯法对条件概率分布做了条件独立性的假设。由于这是一个较强的假设,所以交朴素贝叶斯(区别于一般的贝叶斯方法)。具体的条件独立性假设是:

P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)\\ =\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)

朴素贝叶斯分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y=c_k|X=x),将后验概率最大的类别作为x的输出。后验概率计算根据贝叶斯定理进行:

P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}

根据条件独立的假设有:

P(Y=c_k|X=x)=\frac{P(y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_kP(y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}

这是朴素贝叶斯法分类的基本公式。于是朴素贝叶斯分类器可表示为:

注意到,上式中分母对所有的c_k都是相同的,所以,

y=f(x)=\underset{c_k}{argmax}\frac{P(y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_kP(y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)}

y=\underset{c_k}{argmax}P(y=c_k)\prod_jP(X^{(j)}=x^{(j)}|Y=c_k)

 4.1.2后验概率最大化的含义

朴素贝叶斯法将市里分到后验概率最大的类中。这等价与期望风险最小化。假设选择0-1损失函数:

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

式中f(X)是分类决策函数。这时,期望风险函数为

R_{exp}(f)=E[L(Y,f(X))]

期望是对联合分布P(X,Y)取的

R_{exp}(f)=E_X\sum_{k=1}^K[L(c_k,f(X))]P(c_k|X)

为了使期望风险最小化,只需对X=x逐个极小化,由此得到:

这样一来,根据期望风险最小化准则就得到了 后验概率最大化准则:

f(x)=\underset{c_k}{argmax}P(c_k|X=x)

以上是说明为什么将后验概率最大的类作为x的类输出。

4.2朴素贝叶斯的参数估计

4.2.1极大似然估计

在朴素贝叶斯法中,学习意味着估计P(Y=c_k)P(X^{(j)}=x^{(j)}|Y=c_k)。可以应用 极大似然估计法估计相应的概率。先验概率P(Y=c_k)的极大似然估计是:

P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N},\;k=1,2,\cdots,K

先验概率就是先在给定的训练集中,计算每个分类占总样本数的比例

第j个特征x^{(j)}可能的取值集合为\{a_{j1},a_{j2},\cdots,a_{jS_j}\},条件概率P(X^{(j)}=a_{jl}|Y=c_k)的极大似然估计是:

P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)}

此处的理解条件概率为,在所有的y_i=c_k的样本中,x^{(j)}=a_{jl}的数量 。

4.2.2学习与分类算法

算法4.1 (朴素贝叶斯算法)

  上面的过程结合着下面例题的程序看更好理解。

例4.1 试由表4.1的训练数据学习一个朴素贝叶斯分类器,并确定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\}

解:根据算法4.1,容易计算下列概率:

先验概率:

P(Y=1)=\frac{9}{15},\;P(Y=-1)=\frac{6}{15}

 条件概率

P(X^{(1)}=1|Y=1)=\frac{2}{9},P(X^{(2)}=2|Y=1)=\frac{3}{9},P(X^{(3)}=3|Y=1)=\frac{4}{9}

 P(X^{(2)}=S|Y=1)=\frac{1}{9},P(X^{(2)}=M|Y=1)=\frac{4}{9},P(X^{(2)}=L|Y=1)=\frac{4}{9}

 P(X^{(1)}=1|Y=-1)=\frac{3}{6},P(X^{(2)}=2|Y=-1)=\frac{2}{6},P(X^{(3)}=3|Y=-1)=\frac{1}{6}

.P(X^{(2)}=S|Y=-1)=\frac{3}{6},P(X^{(2)}=M|Y=-1)=\frac{2}{6},P(X^{(2)}=L|Y=-1)=\frac{1}{6}

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

P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{9}{15}\frac{3}{9}\frac{1}{9}=\frac{1}{45}

P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{6}{15}\frac{2}{6}\frac{3}{6}=\frac{1}{15}

取计算结果最大的分类,所以x=(2,S)^T的分类为-1。

#

4.2.3贝叶斯估计

 用极大似然估计可能会出现要顾及的概率值为0的情况,这时会影响到后验概率的计算结果。采用平滑的方式进行计算:

P_{\lambda}(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}-a_{jl},y_i=c_k)+\lambda}{\sum_{i=1}^NI(y_i=c_k)+S_j\lambda}

式中\lambda\geq0。等价于在随机变量各个区直的频数上赋予一个正数\lambda。当\lambda=0时,就是极大似然函数估计。常取\lambda=1,这时称为拉普拉斯平滑。

此时先验概率的贝叶斯估计是:

P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda}

例4.2 问题同4.1,按照拉普拉斯平滑估计概率,即取\lambda=1 

 习题

4.1用极大似然估计法推出朴素贝叶斯法中的概率估计公式4.8及4.9

第一步:极大似然估计的一般步骤

1.写出随机变量的概率分布函数;

2.写出似然函数;

3.对似然函数去对数,得到对数似然函数,并进行化简;

4.对参数进行求导,并令导数等于0;

5.求解似然函数方程,得到参数的值。

第二步:证明公式4.8

P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N},\;k=1,2,\cdots,K

根据朴素贝叶斯定义可以,Y=y_1,y_2,\cdots,y_N满足独立同分布,假设P(Y=c_k)概率为p,其中c_k在随机变量Y中出出现的次数m=\sum_{i=1}^NI(y_i=c_k),可得似然函数为:

L(p|Y)=P(Y=c_k|p)=C_N^mp^m(1-p)^{N-m}

对似然函数取对数,得到对数似然函数为:

\begin{aligned} \log L(p|Y)&=\log C_N^mp^m(1-p)^{N-m}\\ &=\log C_N^m+m\log p+(N-m)\log(1-p) \end{aligned}

使似然函数的导数等于0.

\begin{aligned} \frac{\partial{\log L(p)}}{\partial{\log p}}&=\frac{m}{p}-\frac{N-m}{1-p}\\ &=\frac{m(1-p)-p(N-m)}{p(1-p)}\\ &=\frac{m-Np}{p(1-p)} =0\end{aligned}

可得,P(Y=c_k)=p=\frac{m}{N}

综上所述:公式4.8得证。#

第三步:证明公式4.9

 根据朴素贝叶斯法对条件概率分布独立性的假设可得:

P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)\\ =\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)

根据上述定义,在条件Y=c_k下,随机变量X满足条件独立性,假设P(X^{(j)}=a_{jl}|Y=c_k)的概率为p,其中c_k在随机变量Y中出现的次数m=\sum_{i=1}^NI(y_i=c_k)

y=c_kx^{(j)}=a_{jl}同时出现的次数n=\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)。可得似然函数为:

L(p|X,Y)=P(X^{(j)}=a_{jl},y=c_k|p)=C_m^np^n(1-p)^{m-n}

与第2步推导过程类似,可求解得到p=n/m,带入n和m的公式可得:

P(x^{(j)}=a_{jl}|Y=c_k)=p=\frac{n}{m}=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_jl,y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)}

公式4.9得证。

4.2用贝叶斯估计法推出朴素贝叶斯法中的概率估计公式4.10及公式4.11

解题思路:

1.贝叶斯估计的一般步骤

2.证明公式4.11:假设P_\lambda(Y=c_i)服从狄利克雷分布(Dirichlet),根据贝叶斯公式,推导后验概率也服从Dirichlet分布,求参数期望;

3.证明公式4.10:证明通4.11

解体步骤:

第一步:贝叶斯估计的一般步骤

1.确定参数\theta的先验概率p(\theta)

2.根据样本集D=x_1,x_2,\cdots,x_n,计算似然函数P(D|\theta)P(D|\theta)=\prod_{i=1}^nP(x_n|D)

3.利用贝叶斯公式,求\theta的后验概率:

P(\theta|D)=\frac{P(D|\theta)P(\theta)}{\int_\Theta P(D|\theta)P(\theta)d\theta}

4.计算后验概率分布参数\theta的期望,并求出贝叶斯估计值:

\hat \theta=\underset{\Theta}{\int}\theta\cdot P(\theta|D)d\theta

第二步:证明公式4.11

P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda}

证明思路:

1.条件假设:P_\lambda(Y=c_k)=u_k,且参数\lambda服从Dirichlet分布;随机变量Y出现y=c_k的次数为m_k;

2.得到u的先验概率P(u);

3.得到似然函数P(m|u);

4.根据贝叶斯公式,计算后验概率P(u|m)

5.计算u的期望E(u)

证明步骤:

1.条件假设

根据朴素贝叶斯的基本方法,训练数据T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},假设:

(1)随机变量Y出现y=c_k的次数为m_k,即m_k=\sum_{i=1}^NI(y_i=c_k),可知\sum_{i=1}^Km_k=N

(2)P_\lambda(Y=c_k)=u_k,随机变量u_k服从参数为\lambda的Dirichlet分布。

2.得到先验概率

根据假设(2)和Dirichlet分布的定义,可得先验概率为

P(u)=P(u_1,u_2,\cdots,u_K)=C(\lambda)\prod_{k=1}^Ku_k^{\lambda-1}

3.得到似然函数

m=(m_1,m_2,\cdots,m_K)^T,可得似然函数为

P(m|u)=u_1^{m1}\cdot u_2^{m2}\cdots u_K^{mK}=\prod_{k=1}^Ku_k^{mk}

4.得到后验概率分布

结合贝叶斯公式,求u的后验概率分布,可得

P(u|m)=\frac{P(m|u)P(u)}{P(m)}

根据假设(1)可得

P(u|m,\lambda)\propto P(m|u)P(u|\lambda)\propto\prod_{k=1}^Ku_k^{\lambda+m_k-1}

上式表明,后验概率分布P(u|m,\lambda)也服从dirichlet分布

5.得到随机变量u的期望

根据后验概率分布P(u|m,\lambda)和假设(1),求随机变量u的期望,可得:

E(u_k)=\frac{\alpha_k}{\sum_{k=1}^K\alpha_k

其中\alpha_k=\lambda+m_k,则:

\begin{aligned} E(u_k)&=\frac{\alpha_k}{\sum_{i=1}^K\alpha_k}\\ &=\frac{\lambda+m_k}{\sum_{i=1}^K(\lambda+m_k)}\\ &=\frac{\lambda+m_k}{\sum_{i=1}^K\lambda+\sum_{i=1}^Km_k}\\ &=\frac{\lambda+m_k}{K\lambda+N}\\ &=\frac{\lambda+\sum_{i=1}^NI(y_i=c_k)}{K\lambda+N}\\ \end{}

随机变量u_ku_k的期望,可得P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)+\lambda}{N+K\lambda}

 公式4.11得证。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值