第四章朴素贝叶斯法.4.1 导论


本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考: 在线Latex公式

前言

理解朴素贝叶斯法解决的问题,模型假设、损失函数和估计方法。
详细说明:第4章介绍的朴素贝叶斯法依然适用于分类问题。通过学习第1节,需要了解朴素贝叶斯模型的基本思想和模型假设,需要掌握朴素贝叶斯中,极大似然估计的求解方法及对应的算法;通过学习第2节,理解引入贝叶斯估计的原因及贝叶斯估计的求解方法。通过学习第3节,了解后验概率最大化对应的损失函数
学习目标:
0.导读视频。
1.理解朴素贝叶斯模型的模型假设。
2.理解后验概率最大化与期望损失最小化的关系。
3.掌握极大似然估计的求解过程。
4.掌握贝叶斯估计的求解过程。
5.掌握贝叶斯估计的算法实现。
在这里插入图片描述

导入

复习:条件概率

P ( A ∣ B ) P(A|B) P(AB)表示在B发生的条件下发生A的概率。
P ( A ∣ B ) = P ( A B ) P ( B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\cfrac{P(AB)}{P(B)}=\cfrac{P(B|A)P(A)}{P(B)} P(AB)=P(B)P(AB)=P(B)P(BA)P(A)
P ( A B ) P(AB) P(AB)表示事件A和B都发生的概率,它等于A发生的概率乘以A发生的条件下B发生的概率。
P ( A B ) = P ( B ∣ A ) P ( A ) = P ( A ∣ B ) P ( B ) P(AB)=P(B|A)P(A)=P(A|B)P(B) P(AB)=P(BA)P(A)=P(AB)P(B)

三豆问题

这个例子就是三门问题的翻版,老师很会编。
在这里插入图片描述

女朋友和妈妈掉河里了,路人拿出来3颗豆,两颗绿豆1颗红豆。如果我抽中红豆救女朋友,抽中绿豆救妈妈。
我和路人各自抽了一颗,路人发现自己抽中的是绿豆,他想用剩下的那颗和我换,我换不换?换不换豆女朋友活下去的概率一样吗?
直觉来讲:
换不换豆我抽中红豆的概率应该都是1/3。这时路人跟我说他的是绿豆,排除一颗,我抽中红豆的概率是1/2。换不换概率都是1/2。
其实不然,我们根据条件概率的知识进行计算:
设A表示我抽中的是红豆,B表示路人抽中的是绿豆
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) = 1 ⋅ 1 3 1 = 1 3 P(A|B)=\cfrac{P(B|A)P(A)}{P(B)}=\cfrac{1\cdot\cfrac{1}{3}}{1}=\cfrac{1}{3} P(AB)=P(B)P(BA)P(A)=1131=31
这里 P ( B ∣ A ) = 1 P(B|A)=1 P(BA)=1表示如果我抽中红豆,剩下的是绿豆,路人抽中绿豆的概率为1
P ( A ) = 1 3 P(A)=\cfrac{1}{3} P(A)=31表示我抽中红豆的概率是1/3
P ( B ) = 1 P(B)=1 P(B)=1表示路人抽中绿豆的概率,这个事情已经发生了,因此是1。而不是2/3
P ( A ∣ B ) = 1 3 P(A|B)=\cfrac{1}{3} P(AB)=31表示在路人抽中绿豆的条件下,我抽中红豆概率只有1/3。
如果要救女朋友,最好和路人交换一下。如果要救妈,最好不要换。

手写数字

假设有一个手写数据集,里面有100条记录,其中第0-9条记录是10个人分别写的0。10-19条是10个人分别写的1。……。第90-99条是10个人分别写的10.
小红写了一个数字X,怎么判断是数字几呢?
朴素贝叶斯工作原理分别计算写X的条件下,是数字Y的概率可以分开计算:
P ( Y = 0 ∣ X ) = ? , P ( Y = 1 ∣ X ) = ? … … , P ( Y = 10 ∣ X ) = ? P(Y=0|X)=?,P(Y=1|X)=?……,P(Y=10|X)=? P(Y=0X)=?,P(Y=1X)=?,P(Y=10X)=?
找到概率值最高的,就是对应的数字。
对于以上手写数据集,我们设数字的类别为 C k C_k Ck C 0 C_0 C0表示数字0…。刚才数字判别公式可以修改为 P ( Y = C k ∣ X = x ) P(Y=C_k|X=x) P(Y=CkX=x)
按条件概率的公式,上式可以写为:
P ( Y = C k ∣ X = x ) = P ( X = x ∣ Y = C k ) P ( Y = C k ) P ( X = x ) P(Y=C_k|X=x)=\cfrac{P(X=x|Y=C_k)P(Y=C_k)}{P(X=x)} P(Y=CkX=x)=P(X=x)P(X=xY=Ck)P(Y=Ck)
分母 P ( X = x ) = ∑ k P ( X = x , Y = C k ) P(X=x)=\sum_k P(X=x,Y=C_k) P(X=x)=kP(X=x,Y=Ck),这里相等是因为右边是联合概率,表示二者都发生的情况,又有求和,还是等于左边,例如,天气不是下雨就是晴天,那么 P ( 出 门 ) = P ( 出 门 ∣ 下 雨 ) + P ( 出 门 ∣ 晴 天 ) P(出门)=P(出门|下雨)+P(出门|晴天) P()=P()+P(),再根据联合概率公式 P ( x , y ) = P ( x ∣ y ) P ( y ) P(x,y)=P(x|y)P(y) P(x,y)=P(xy)P(y)进一步将分母拆分为:
P ( X = x ) = ∑ k P ( X = x , Y = C k ) = ∑ k P ( X = x ∣ Y = C k ) P ( Y = C k ) P(X=x)=\sum_k P(X=x,Y=C_k)=\sum_k P(X=x|Y=C_k)P(Y=C_k) P(X=x)=kP(X=x,Y=Ck)=kP(X=xY=Ck)P(Y=Ck)
把上式代入条件概率公式,并把顺序调整一下:
P ( Y = C k ∣ X = x ) = P ( X = x ∣ Y = C k ) P ( Y = C k ) P ( X = x ) = P ( X = x ∣ Y = C k ) P ( Y = C k ) ∑ k P ( X = x ∣ Y = C k ) P ( Y = C k ) = P ( Y = C k ) P ( X = x ∣ Y = C k ) ∑ k P ( Y = C k ) P ( X = x ∣ Y = C k ) (1) P(Y=C_k|X=x)=\cfrac{P(X=x|Y=C_k)P(Y=C_k)}{P(X=x)}\\ =\cfrac{P(X=x|Y=C_k)P(Y=C_k)}{\sum_k P(X=x|Y=C_k)P(Y=C_k)}\\ =\cfrac{P(Y=C_k)P(X=x|Y=C_k)}{\sum_k P(Y=C_k)P(X=x|Y=C_k)}\tag1 P(Y=CkX=x)=P(X=x)P(X=xY=Ck)P(Y=Ck)=kP(X=xY=Ck)P(Y=Ck)P(X=xY=Ck)P(Y=Ck)=kP(Y=Ck)P(X=xY=Ck)P(Y=Ck)P(X=xY=Ck)(1)


假设a,b事件相互独立,则有:
P ( a , b ) = P ( a ) P ( b ) P ( a , b ∣ c ) = P ( a ∣ c ) P ( b ∣ c ) P(a,b)=P(a)P(b)\\ P(a,b|c)=P(a|c)P(b|c) P(a,b)=P(a)P(b)P(a,bc)=P(ac)P(bc)
上面式子中的 X = x X=x X=x这个实际上是缩写,因为每个图片是有 m × m m×m m×m个像素组成,如果我们也假设每个像素之间是相互独立的,那么 P ( X = x ∣ Y = C k ) P(X=x|Y=C_k) P(X=xY=Ck)可以写成
P ( X ( 1 ) = x ( 1 ) , X ( 2 ) = x ( 2 ) , ⋯   , X ( n ) = x ( n ) ∣ Y = C k ) = P ( X ( 1 ) = x ( 1 ) ∣ Y = C k ) P ( X ( 2 ) = x ( 2 ) ∣ Y = C k ) ⋯ P ( X ( n ) = x ( n ) ∣ Y = C k ) = ∏ n P ( X ( j ) = x ( j ) ∣ Y = C k ) (2) P(X^{(1)} = x^{(1)},X^{(2)} = x^{(2)},\cdots,X^{(n)} = x^{(n)}|Y=C_k)\\ =P(X^{(1)} = x^{(1)}|Y=C_k)P(X^{(2)} = x^{(2)}|Y=C_k)\cdots P(X^{(n)} = x^{(n)}|Y=C_k)\\ =\prod_nP(X^{(j)} = x^{(j)}|Y=C_k)\tag2 P(X(1)=x(1),X(2)=x(2),,X(n)=x(n)Y=Ck)=P(X(1)=x(1)Y=Ck)P(X(2)=x(2)Y=Ck)P(X(n)=x(n)Y=Ck)=nP(X(j)=x(j)Y=Ck)(2)
这个假设像素之间独立是没办法的选择,按不独立来进行计算,对于第一个像素:
P ( X ( 1 ) = x ( 1 ) ∣ X ( 2 ) = x ( 2 ) , ⋯   , X ( n ) = x ( n ) Y = C k ) P(X^{(1)} = x^{(1)}|X^{(2)} = x^{(2)},\cdots,X^{(n)} = x^{(n)}Y=C_k) P(X(1)=x(1)X(2)=x(2),,X(n)=x(n)Y=Ck)
每个像素都要根据其他所有像素的概率进行计算,量大无解。
把2代入1:
P ( Y = C k ∣ X = x ) = P ( Y = C k ) ∏ n P ( X ( j ) = x ( j ) ∣ Y = C k ) ∑ k P ( Y = C k ) ∏ n P ( X ( j ) = x ( j ) ∣ Y = C k ) (3) P(Y=C_k|X=x)=\cfrac{P(Y=C_k)\prod_nP(X^{(j)} = x^{(j)}|Y=C_k)}{\sum_k P(Y=C_k)\prod_nP(X^{(j)} = x^{(j)}|Y=C_k)}\tag3 P(Y=CkX=x)=kP(Y=Ck)nP(X(j)=x(j)Y=Ck)P(Y=Ck)nP(X(j)=x(j)Y=Ck)(3)
因此问题就是要找到使得 X = x X=x X=x最大的 C k C_k Ck
f ( x ) = arg max ⁡ C k P ( Y = C k ∣ X = x ) (4) f(x)=\underset{C_k}{\argmax}P(Y=C_k|X=x)\tag4 f(x)=CkargmaxP(Y=CkX=x)(4)
公式3中的分母可以写为:
∑ k P ( Y = C k ) ∏ n P ( X ( j ) = x ( j ) ∣ Y = C k ) = ∑ k ∏ n P ( X ( j ) = x ( j ) ∣ Y = C k ) P ( Y = C k ) = ∑ k ∏ n P ( X ( j ) = x ( j ) , Y = C k ) = ∏ n P ( X ( j ) = x ( j ) ) \sum_k P(Y=C_k)\prod_nP(X^{(j)} = x^{(j)}|Y=C_k)\\ =\sum_k \prod_nP(X^{(j)} = x^{(j)}|Y=C_k)P(Y=C_k)\\ =\sum_k \prod_n P(X^{(j)} = x^{(j)},Y=C_k)\\ = \prod_n P(X^{(j)} = x^{(j)}) kP(Y=Ck)nP(X(j)=x(j)Y=Ck)=knP(X(j)=x(j)Y=Ck)P(Y=Ck)=knP(X(j)=x(j),Y=Ck)=nP(X(j)=x(j))
可以看到,分母和 C k C_k Ck无关,是一个常数,因此在4中求最大值的时候不考虑,4变成:
f ( x ) = arg max ⁡ C k P ( Y = C k ∣ X = x ) = P ( Y = C k ) ∏ n P ( X ( j ) = x ( j ) ∣ Y = C k ) (5) f(x)=\underset{C_k}{\argmax}P(Y=C_k|X=x)\\=P(Y=C_k)\prod_nP(X^{(j)} = x^{(j)}|Y=C_k)\tag5 f(x)=CkargmaxP(Y=CkX=x)=P(Y=Ck)nP(X(j)=x(j)Y=Ck)(5)
公式5中的前面部分:
P ( Y = C k ) = ∑ i = 1 N I ( y i = C k ) N , k = 1 , 2 , ⋯   , K P(Y=C_k)=\cfrac{\sum_{i=1}^NI(y_i=C_k)}{N},k=1,2,\cdots,K P(Y=Ck)=Ni=1NI(yi=Ck),k=1,2,,K
就是数据集中 Y Y Y属于某个类别 C k C_k Ck的概率,例如数据集中有100个数字,10个0,20个1,70个2,那么 P ( Y = 0 ) = 10 % P(Y=0)=10\% P(Y=0)=10% P ( Y = 1 ) = 20 % P(Y=1)=20\% P(Y=1)=20% P ( Y = 2 ) = 20 % P(Y=2)=20\% P(Y=2)=20%
公式5中的后面部分中,假设第j个特征 x ( j ) x^{(j)} x(j)可能取值的集合为 { a j 1 , a j 2 , a j 3 , ⋯   , a j S j } \{a_{j1},a_{j2},a_{j3},\cdots,a_{jS_j}\} {aj1,aj2,aj3,,ajSj},因此可以写为:
P ( X ( j ) = x ( j ) ∣ Y = C k ) = P ( X ( j ) = a j l ∣ Y = C k ) P(X^{(j)} = x^{(j)}|Y=C_k)=P(X^{(j)} = a_{jl}|Y=C_k) P(X(j)=x(j)Y=Ck)=P(X(j)=ajlY=Ck)
按前半部分的套路,可以进一步写为:
P ( X ( j ) = a j l ∣ Y = C k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = C k ) ∑ i = 1 N I ( y i = C k ) P(X^{(j)} = a_{jl}|Y=C_k)=\cfrac{\sum_{i=1}^NI(x_i^{(j)}= a_{jl},y_i=C_k)}{\sum_{i=1}^NI(y_i=C_k)} P(X(j)=ajlY=Ck)=i=1NI(yi=Ck)i=1NI(xi(j)=ajl,yi=Ck)
意思是当类别为 C k C_k Ck时, x i ( j ) = a j l x_i^{(j)}= a_{jl} xi(j)=ajl出现的次数占类别为 C k C_k Ck的样本数目的比例。

朴素贝叶斯算法

参考原文算法4.1
输入:训练数据 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中 x i = ( x i ( 1 ) , x i ( 2 ) , x i ( 3 ) , ⋯   , x i ( n ) ) T x_i=\left(x_i^{(1)},x_i^{(2)},x_i^{(3)},\cdots,x_i^{(n)}\right)^T xi=(xi(1),xi(2),xi(3),,xi(n))T是第 i i i个样本的第 j j j个特征, x i ( j ) ∈ { a j 1 , a j 2 , a j 3 , ⋯   , a j S j } x_i^{(j)}\in \{a_{j1},a_{j2},a_{j3},\cdots,a_{jS_j}\} xi(j){aj1,aj2,aj3,,ajSj} a j l a_{jl} ajl是第 j j j个特征可能取的第 l l l个值, j = 1 , 2 , ⋯   , n ; l = 1 , 2 , ⋯   , S j ; y i ∈ { c 1 , c 2 , ⋯   , c K } j=1,2,\cdots,n;l=1,2,\cdots,S_j;y_i\in\{c_1,c_2,\cdots,c_K\} j=1,2,,n;l=1,2,,Sj;yi{c1,c2,,cK};样本 x x x
这里 j j j是维度, l l l是取值
输出:样本 x x x的分类
1.计算先验概率及条件概率
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , ⋯   , K P(Y=c_k)=\cfrac{\sum_{i=1}^NI(y_i=c_k)}{N},k=1,2,\cdots,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,,K
P ( X ( j ) = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = C k ) j = 1 , 2 , ⋯   , n ; l = 1 , 2 , ⋯   , S j ; k = 1 , 2 , ⋯   , K P(X^{(j)} = a_{jl}|Y=c_k)=\cfrac{\sum_{i=1}^NI(x_i^{(j)}= a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=C_k)}\\ j=1,2,\cdots,n;l=1,2,\cdots,S_j;k=1,2,\cdots,K P(X(j)=ajlY=ck)=i=1NI(yi=Ck)i=1NI(xi(j)=ajl,yi=ck)j=1,2,,n;l=1,2,,Sj;k=1,2,,K
2.对于给定的样本 x = ( x ( 1 ) , x ( 2 ) , x ( 3 ) , ⋯   , x ( n ) ) T x=\left(x^{(1)},x^{(2)},x^{(3)},\cdots,x^{(n)}\right)^T x=(x(1),x(2),x(3),,x(n))T
P ( Y = C k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) , k = 1 , 2 , ⋯   , K P(Y=C_k)\prod_{j=1}^nP(X^{(j)} = x^{(j)}|Y=c_k),k=1,2,\cdots,K P(Y=Ck)j=1nP(X(j)=x(j)Y=ck),k=1,2,,K
3.确定样本 x x x的分类
y = arg max ⁡ c k P ( Y = C k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) y=\underset{c_k}{\argmax}P(Y=C_k)\prod_{j=1}^nP(X^{(j)} = x^{(j)}|Y=c_k) y=ckargmaxP(Y=Ck)j=1nP(X(j)=x(j)Y=ck)

总结

1.条件概率公式表示在已发生事件B的情况下事件A发生的概率。
2.使用条件概率公式逐步导出到最后参数估计的步骤需牢记。(从条件概率公式逐步替换变复杂,最后因为分母是常数再简化)。
3.后续会遇到很多类似的推导过程,一般都是先各种替换变复杂最后简化(先膨胀再瘪下去)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值