sklearn之各类朴素贝叶斯原理

sklearn之贝叶斯原理

  • 前言
  • 1 高斯朴素贝叶斯
    • 1.1 对连续变量的处理
    • 1.2 高斯朴素贝叶斯算法原理
  • 2 多项式朴素贝叶斯
    • 2.1 二项分布和多项分布
    • 2.2 详细原理
    • 2.3 如何判断是否符合多项式贝叶斯
  • 3 伯努利朴素贝叶斯
  • 4 类别贝叶斯
  • 4 补充朴素贝叶斯
    • 4.1 核心原理
    • 4.2 算法流程

前言

如果想看sklearn之贝叶斯应用可看:Sklearn之朴素贝叶斯应用
贝叶斯的原理可以看:贝叶斯分类器详解
根据这篇文章提到的原理,可知贝叶斯的核心公式是:
y = a r g m a x c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k )    ( 1 ) y=argmax_{c_{k}}P(Y=c_{k})\prod \limits_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k}) ~~(1) y=argmaxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)  (1)
”朴素贝叶斯“的多种变形算法的主要区别在于对条件概率的处理上,即: P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X^{(j)}=x^{(j)}|Y=c_{k}) P(X(j)=x(j)Y=ck),接下来围绕着这个公式对多种变形贝叶斯展开原理分析

1 高斯朴素贝叶斯

1.1 对连续变量的处理

例如:设汉堡的重量为特征 X i X_{i} Xi,令 X i = 100 X_{i}=100 Xi=100,则一个汉堡是100g的概率 P ( X i = 100 ∣ Y ) P(X_{i}=100|Y) P(Xi=100∣Y)是多少呢?由于重量是连续型数据,即重量有无数种情况,因此有:
P ( X i = 100 ∣ Y ) = lim ⁡ N → ∞ 1 N = 0 P(X_{i}=100|Y)=\lim_{N→\infty }\frac{1}{N}=0 P(Xi=100∣Y)=NlimN1=0
因此,考虑某点的概率没有任何意义,这种估算方法不可行
考虑换个角度:随机买一个汉堡,汉堡的重量在98g~102g之间的概率是多少?令特征 X i X_{i} Xi的取值为x,即所求概率为 P ( 98 < x < 102 ∣ Y ) P(98<x<102|Y) P(98<x<102∣Y),假设购买了100个汉堡,其中重量在98g-102g的汉堡有m个,则有:
P ( 98 < x < 102 ∣ Y ) = m 100 P(98<x<102|Y)=\frac{m}{100} P(98<x<102∣Y)=100m
基于100个汉堡绘制直方图,并规定每4g为一个区间,横坐标为汉堡的重量的分布,纵坐标为这个区间上汉堡的个数,如下图所示:
汉堡图
此时可以用面积来表示概率,即:
P ( 98 < x < 102 ∣ Y ) = m × 4 100 × 4 = 浅绿色区间面积 直方图所有区间的面积 P(98<x<102|Y)=\frac{m×4}{100×4}=\frac{浅绿色区间面积}{直方图所有区间的面积} P(98<x<102∣Y)=100×4m×4=直方图所有区间的面积浅绿色区间面积
如图购买10w个汉堡的直方图所示,其类似一条曲线,因此,当购买无数个汉堡的时候形成的曲线就叫做概率密度曲线(probability density function,PDF),此时整条曲线的面积表示为: ∫ − ∞ + ∞ f ( x ) d x \int_{-\infty}^{+\infty}f(x)dx +f(x)dx
此时对于连续特征X的取值x在区间 [ x i , x i + ϵ ] [x_{i},x_{i}+ϵ] [xi,xi+ϵ]的取值概率为:
P ( x i < x < x i + ϵ ∣ Y ) = ∫ x i x i + ϵ f ( x ) d x ≈ f ( x i ) × ϵ P(x_{i}<x<x_{i}+ϵ|Y)=\int_{x_{i}}^{x_{i}+ϵ}f(x)dx≈f(x_{i})×ϵ P(xi<x<xi+ϵY)=xixi+ϵf(x)dxf(xi)×ϵ
从贝叶斯分类器详解这篇文章可知公式:
y = f ( x ) = a r g m a x c k P ( Y = c k ∣ X = x ) = P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(x)=argmax_{c_{k}}P(Y=c_{k}|X=x) = \frac{P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})}{\sum_{k}P(Y=c_{k})\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_{k})} y=f(x)=argmaxckP(Y=ckX=x)=kP(Y=ck)jP(X(j)=x(j)Y=ck)P(Y=ck)jP(X(j)=x(j)Y=ck)
通过上述式子可知:ϵ可以相互抵消,则仅用 f ( x i ) f(x_{i}) f(xi)就可以估算 P ( x i ∣ Y ) P(x_{i}|Y) P(xiY)了,即将求解连续型变量下某个点取值的概率问题,转化成了求解一个函数 f ( x ) f(x) f(x)在点 x i x_{i} xi上的取值的问题。 f ( x ) f(x) f(x)服从高斯分布,用该 f ( x ) f(x) f(x)去估算条件概率 P ( x i ∣ Y ) P(x_{i}|Y) P(xiY),这就是高斯朴素贝叶斯

1.2 高斯朴素贝叶斯算法原理

(1)原理
根据上述结论有:高斯贝叶斯算法假定数据样本在各个类别下,每个特征变量的条件概率均服从高斯分布 f ( x ) f(x) f(x),即:
f ( x i ) = p ( x i ∣ y c ) = 1 2 π σ c i 2 e x p ( − ( x i − μ c i ) 2 2 σ c i 2 ) f(x_{i})=p(x_{i}|y_{c})=\frac{1}{\sqrt{2\pi\sigma_{ci}^{2}}}exp(-\frac{(x_{i}-\mu_{ci})^{2}}{2\sigma_{ci}^{2}}) f(xi)=p(xiyc)=2πσci2 1exp(2σci2(xiμci)2)

  • 其中表示第 i i i个特征维度, σ c i \sigma_{ci} σci μ c i \mu_{ci} μci分别表示在类别 y = c y=c y=c下特征 x i x_{i} xi对应的标准差与期望。注意:这和1.1里面所讲的 x i x_{i} xi不是一个意思

由前言可知,之后进行极大化后验概率,为了防止下溢(结果小于所能表示的最小值的情况),因此取对数(以e为底),可得:
y = a r g m a x y c l o g ( P ( y c ) ∏ i = 0 n P ( x i ∣ y c ) ) = a r g m a x y c l o g ( P ( y c ) ∏ i = 0 n 1 2 π σ c i 2 e x p ( − ( x i − μ c i ) 2 2 σ c i 2 ) ) = a r g m a x y c [ l o g P ( y c ) + ∑ i = 0 n l o g ( 1 2 π σ c i 2 e x p ( − ( x i − μ c i ) 2 2 σ c i 2 ) ) ] = a r g m a x y c ( l o g P ( y c ) − 1 2 ∑ i = 0 n l o g 2 π σ c i 2 − 1 2 ∑ i = 0 n ( x i − μ c i ) 2 σ c i 2 ) \begin {aligned} {} y &=argmax_{y_{c}}log(P(y_{c})\prod\limits_{i=0}^{n}P(x_{i}|y_{c})) \\ &=argmax_{y_{c}}log(P(y_{c})\prod\limits_{i=0}^{n}\frac{1}{\sqrt{2\pi\sigma_{ci}^{2}}}exp(-\frac{(x_{i}-\mu_{ci})^{2}}{2\sigma_{ci}^{2}}))\\ & =argmax_{y_{c}}\begin{bmatrix} logP(y_{c})+\sum\limits_{i=0}^{n}log(\frac{1}{\sqrt{2\pi\sigma_{ci}^{2}}}exp(-\frac{(x_{i}-\mu_{ci})^{2}}{2\sigma_{ci}^{2}})) \end{bmatrix}\\ &=argmax_{y_{c}}(logP(y_{c})-\frac{1}{2}\sum\limits_{i=0}^{n}log2π\sigma_{ci}^{2}-\frac{1}{2}\sum\limits_{i=0}^{n}\frac{(x_{i}-\mu_{ci})^{2}}{\sigma_{ci}^{2}}) \end {aligned} y=argmaxyclog(P(yc)i=0nP(xiyc))=argmaxyclog(P(yc)i=0n2πσci2 1exp(2σci2(xiμci)2))=argmaxyc[logP(yc)+i=0nlog(2πσci2 1exp(2σci2(xiμci)2))]=argmaxyc(logP(yc)21i=0nlog2πσci221i=0nσci2(xiμci)2)
(2)示例
假设有如下连续型数据,一共有两个特征 x 0 x_{0} x0 x 1 x_{1} x1,如下表所示,预测x=[0.15,0.25]所属的类别,对数以底数e为底

样本 x 0 x_{0} x0 x 1 x_{1} x1所属类别
00.30.50
10.40.60
20.70.91
30.60.71

第一步:求先验概率
P ( y = 0 ) = l o g 1 2 ≈ − 0.693 P(y=0)=log\frac{1}{2}≈-0.693 P(y=0)=log210.693
P ( y = 1 ) = l o g 1 2 ≈ − 0.693 P(y=1)=log\frac{1}{2}≈-0.693 P(y=1)=log210.693
第二步:求方差和期望
y = 0 和 x 0 y=0和x_{0} y=0x0时,对应的期望和方差分别为:
μ 00 = 0.3 + 0.4 2 = 0.35 \mu_{00}=\frac{0.3+0.4}{2}=0.35 μ00=20.3+0.4=0.35
σ 00 2 = ( 0.3 − 0.35 ) 2 + ( 0.4 − 0.35 ) 2 2 = 0.0025 \sigma_{00}^{2}=\frac{(0.3-0.35)^{2}+(0.4-0.35)^2}{2}=0.0025 σ002=2(0.30.35)2+(0.40.35)2=0.0025
同理,最终可得期望矩阵和方差矩阵
μ = [ 0.35 0.55 0.65 0.8 ] \mu=\begin{bmatrix} 0.35&0.55 \\ 0.65& 0.8 \end{bmatrix} μ=[0.350.650.550.8]
σ 2 = [ 0.0025 0.0024 0.0025 0.01 ] \sigma^{2}=\begin{bmatrix} 0.0025& 0.0024\\ 0.0025 & 0.01 \end{bmatrix} σ2=[0.00250.00250.00240.01]
第三步:求条件概率
对于x=[0.15,0.25],当 y = 0 y=0 y=0时,有:
P ( x ∣ y = 0 ) = − 1 2 ∑ i = 0 n l o g 2 π σ 0 i 2 − 1 2 ∑ i = 0 n ( x i − μ 0 i ) 2 σ 0 i 2 = − 1 2 [ l o g ( 2 π × 0.0025 ) + l o g ( 2 π × 0.0024 ) ] − 1 2 [ ( 0.15 − 0.35 ) 2 0.0025 + ( 0.25 − 0.55 ) 2 0.0024 ] ≈ − 22.576 \begin {aligned} {} P(x|y=0)& =-\frac{1}{2}\sum\limits_{i=0}^{n}log2π\sigma_{0i}^{2}-\frac{1}{2}\sum\limits_{i=0}^{n}\frac{(x_{i}-\mu_{0i})^{2}}{\sigma_{0i}^{2}} \\&=-\frac{1}{2} [log(2π×0.0025)+log(2π×0.0024)]-\frac{1}{2}[\frac{(0.15-0.35)^{2}}{0.0025}+\frac{(0.25-0.55)^{2}}{0.0024}] \\ &≈-22.576 \end {aligned} P(xy=0)=21i=0nlog2πσ0i221i=0nσ0i2(xiμ0i)2=21[log(2π×0.0025)+log(2π×0.0024)]21[0.0025(0.150.35)2+0.0024(0.250.55)2]22.576
同理可得:
P ( x ∣ y = 1 ) ≈ − 61.665 P(x|y=1)≈-61.665 P(xy=1)61.665
第四步:求结果
对于x=[0.15,0.25],当 y = 0 y=0 y=0时,有:
P ( y = 0 ∣ x ) = P ( y = 0 ) + P ( x ∣ y = 0 ) = − 0.693 − 22.576 = − 23.269 P(y=0|x)=P(y=0)+P(x|y=0)=-0.693-22.576=-23.269 P(y=0∣x)=P(y=0)+P(xy=0)=0.69322.576=23.269
对于x=[0.15,0.25],当 y = 1 y=1 y=1时,有:
P ( y = 1 ∣ x ) = P ( y = 1 ) + P ( x ∣ y = 1 ) = − 0.693 − 61.665 = − 62.358 P(y=1|x)=P(y=1)+P(x|y=1)=-0.693-61.665=-62.358 P(y=1∣x)=P(y=1)+P(xy=1)=0.69361.665=62.358
综上,x属于y=0的概率最大,故x属于y=0这个类别

2 多项式朴素贝叶斯

2.1 二项分布和多项分布

(1)二项分布
二项分布
(2)多项分布
多项分布

2.2 详细原理

(1)原理
多项式朴素贝叶斯处理词袋模型时,则是将每个维度的词频在总词频中的占比来作为条件概率进行建模(一般使用词频法和TF-IDF表示法来配合多项式朴素贝叶斯的使用,这里讲的是词频法,详情见词袋模型)

​多项式朴素贝叶斯中,在一种标签类别 Y = c Y=c Y=c下,将条件概率分布的分布参数化为 θ c = ( θ c 1 , θ c 2 , ⋯   , θ c n ) \theta_{c}=(\theta_{c1},\theta_{c2},\cdots,\theta_{cn}) θc=(θc1,θc2,,θcn)

  • n表示训练集中的特征维度
  • θ c i \theta_{ci} θci是类别c下特征i的条件概率 P ( x i ∣ Y = c ) P(x_{i}|Y=c) P(xiY=c),表示当 Y = c Y=c Y=c条件固定时,一组样本在 x i x_{i} xi特征上的取值被取到的概率

参数通过极大似然估计可得:
θ c i = N c i N c \theta_{ci}=\frac{N_{ci}}{N_{c}} θci=NcNci

  • 其中 N c i N_{ci} Nci表示在训练集T中样本属于 Y = c Y=c Y=c类别下特征为 i i i的出现的频次,即 N c i = ∑ x ∈ T x i N_{ci}=\sum_{x \in T }x_{i} Nci=xTxi
  • N c N_{c} Nc表示在训练集T中样本属于 Y = c Y=c Y=c类别下所有特征的总频次,即 N c = ∑ i = 1 n N c i N_{c}=\sum\limits_{i=1}^{n}N_{ci} Nc=i=1nNci

令α>0来防止训练数据中出现0概率,以避免让参数θ为0的情况,可得如下式子:
θ c i = N c i + α N c + α n \theta_{ci}=\frac{N_{ci}+\alpha }{N_{c}+\alpha n} θci=Nc+αnNci+α

  • 将α设置为1,则这个平滑叫做拉普拉斯平滑
  • 如果α小于1,则把它叫做利德斯通平滑
  • 两种平滑都属于自然语言处理中比较常用的用来平滑分类数据的统计手段

由前言可知,之后进行极大化后验概率,为了防止下溢(结果小于所能表示的最小值的情况),因此取对数,可得:
y = a r g m a x c k l o g ( P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) ) y=argmax_{c_{k}}log(P(Y=c_{k})\prod \limits_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_{k})) y=argmaxcklog(P(Y=ck)j=1nP(X(j)=x(j)Y=ck))
由对数性质可知:
y = a r g m a x c k [ l o g ( P ( Y = c k ) ) + ∑ j = 1 n l o g ( P ( X ( j ) = x ( j ) ∣ Y = c k ) ) ] y=argmax_{c_{k}}[log(P(Y=c_{k}))+\sum\limits_{j=1}^{n}log(P(X^{(j)}=x^{(j)}|Y=c_{k}))] y=argmaxck[log(P(Y=ck))+j=1nlog(P(X(j)=x(j)Y=ck))]
条件概率计算的是训练集中特征维度的词频在总词频中的占比,而某个特征(即词语)可能出现多次,因此会出现连乘,在取对数的情况下,变成了加和(例如词语文本aab,特征a出现了两次),因此需要同时考虑到每个维度的词频:
y = a r g m a x c k [ l o g ( P ( Y = c k ) ) + ∑ j = 1 n f i l o g ( P ( X ( j ) = x ( j ) ∣ Y = c k ) ) ] y=argmax_{c_{k}}[log(P(Y=c_{k}))+\sum\limits_{j=1}^{n}f_{i}log(P(X^{(j)}=x^{(j)}|Y=c_{k}))] y=argmaxck[log(P(Y=ck))+j=1nfilog(P(X(j)=x(j)Y=ck))]

  • 其中 f i f_{i} fi表示特征维度i的词频

(2)例子
下述例子对数都以10为底
例子1
在词袋模型这篇文章中,中,由词频法的例子并假设都在类别Y=c中,可得:

BeijingChineseJapanMacaoShanghaiTokyoY
Chinese Beijing Chinese120000c
Chinese Chinese Shanghai020010c
Chinese Macao010100c
Tokyo Japan Chinese011001c

如上表格就是一个特征矩阵,行代表样本,列代表特征维度
仅以BeiJing特征作为例子,取α=1,求条件概率得:
θ = P ( B e i J i n g ∣ Y = c ) = 1 + 1 11 + 6 = 2 17 \theta=P(BeiJing|Y=c)=\frac{1+1}{11+6}=\frac{2}{17} θ=P(BeiJingY=c)=11+61+1=172
例子2
对类别和特征进行修改,为了方便,这里不再做平滑处理,如下所示:

BeijingShanghaiY
Beijing Beijing Beijing Shanghai310
Beijing Shanghai Shanghai121

现预测x=[25,2]所属的类别,取α=1

第一步:算各个类别的先验概率
P ( Y = 0 ) = l o g ( 1 2 ) ≈ − 0.30 P ( Y = 1 ) = l o g ( 1 2 ) ≈ − 0.30 P(Y=0)=log(\frac{1}{2})\approx -0.30 \\ \enspace \\ P(Y=1)=log(\frac{1}{2})\approx -0.30 P(Y=0)=log(21)0.30P(Y=1)=log(21)0.30
第二步:算条件概率
在类别Y=0的情况下有:
P ( B e i j i n g ∣ Y = 0 ) = l o g ( 3 3 + 1 ) ≈ − 0.12 P ( S h a n g h a i ∣ Y = 0 ) = l o g ( 1 3 + 1 ) ≈ − 0.60 P(Beijing|Y=0)=log(\frac{3}{3+1})\approx -0.12 \\ \enspace \\ P(Shanghai|Y=0)=log(\frac{1}{3+1})\approx -0.60 P(BeijingY=0)=log(3+13)0.12P(ShanghaiY=0)=log(3+11)0.60
在类别Y=1的情况下有:
P ( B e i j i n g ∣ Y = 1 ) = l o g ( 1 1 + 2 ) ≈ − 0.48 P ( S h a n g h a i ∣ Y = 1 ) = l o g ( 2 1 + 2 ) ≈ − 0.18 P(Beijing|Y=1)=log(\frac{1}{1+2})\approx -0.48 \\ \enspace \\ P(Shanghai|Y=1)=log(\frac{2}{1+2})\approx -0.18 P(BeijingY=1)=log(1+21)0.48P(ShanghaiY=1)=log(1+22)0.18
第三步:求后验概率
P ( Y = 0 ∣ x ) = P ( Y = 0 ) + 25 × P ( B e i j i n g ∣ Y = 0 ) + 2 × P ( S h a n g h a i ∣ Y = 0 ) = − 0.30 + 25 × − 0.12 + 2 × − 0.60 = − 4.5 P ( Y = 1 ∣ x ) = P ( Y = 1 ) + 25 × P ( B e i j i n g ∣ Y = 1 ) + 2 × P ( S h a n g h a i ∣ Y = 1 ) = − 0.30 + 25 × − 0.48 + 2 × − 0.18 = − 12.66 \begin {aligned} {} P(Y=0|x) & =P(Y=0)+25 \times P(Beijing|Y=0) +2\times P(Shanghai|Y=0) \\ & =-0.30+25\times -0.12+2\times-0.60\\ & =-4.5 \end {aligned}\\ \enspace \\ \begin {aligned} {} P(Y=1|x) & =P(Y=1)+25 \times P(Beijing|Y=1) +2\times P(Shanghai|Y=1) \\ & =-0.30+25\times -0.48+2\times-0.18\\ & =-12.66 \end {aligned} P(Y=0∣x)=P(Y=0)+25×P(BeijingY=0)+2×P(ShanghaiY=0)=0.30+25×0.12+2×0.60=4.5P(Y=1∣x)=P(Y=1)+25×P(BeijingY=1)+2×P(ShanghaiY=1)=0.30+25×0.48+2×0.18=12.66
显然在类别为0时概率更大,综上所述,x属于类0

2.3 如何判断是否符合多项式贝叶斯

根据多项分布的概念,以词袋模型为例,在文本分类中有如下假设:

  • 不考虑文本中单词之间的次序,即认为这两个文本‘ Love and Peace’和‘ Peace and Love’最后建模出来对应于同一个特征向量。不考虑文本单词之间的次序,会导致文本语义丢失。
  • 在类别为Y=c的文本中,每个单词的出现是相互独立。即在类别为Y=c的文本中,每次随机试验为随机从词表中抽取一个单词,进行n次独立重复试验

第2个假设只有满足了才保证了文本的特征随机向量 X X X满足多项式分布,即给定类别Y=c的文本,满足:
X ∼ M u l t i N o r m i a l ( n , θ c 1 , θ c 2 , ⋯   , θ c n ) X\sim MultiNormial(n,\theta_{c1},\theta_{c2},\cdots,\theta_{cn}) XMultiNormial(n,θc1,θc2,,θcn)
即满足了上述要求,可用多项式朴素贝叶斯推导过程里的方法求条件概率

3 伯努利朴素贝叶斯

(1)原理
BernoulliNB实现了按多元伯努利分布的数据的朴素贝叶斯训练和分类算法,即可能有多个特征,但每个特征都被假定为一个二元值(Bernoulli,boole)变量。因此,该类要求样本被表示为二值化的特征向量
伯努利朴素贝叶斯计算 P ( x i ∣ y ) P(x_{i}|y) P(xiy)仍然用到多项式朴素贝叶斯的方法:
θ c i = N c i + α N c + α n \theta_{ci}=\frac{N_{ci}+\alpha }{N_{c}+\alpha n} θci=Nc+αnNci+α
但伯努利朴素贝叶斯对条件概率新增处理是:
P ( x i ∣ y ) = P ( i ∣ y ) x i + ( 1 − P ( i ∣ y ) ( 1 − x i ) P(x_{i}|y)=P(i|y)x_{i}+(1-P(i|y)(1-x_{i}) P(xiy)=P(iy)xi+(1P(iy)(1xi)

  • 与多项式朴素贝叶斯的区别是,明确惩罚特征i的不出现,而多项式朴素贝叶斯会忽略未出现的特征

(2)例子

上述原理会觉得很难理解,给定具体例子就很好理解了,使用词袋模型这篇文章中所提到的独热法,得到下述数据:

BeijingShanghaiY
Beijing Beijing100
Shanghai Shanghai011
Shanghai Beijing112

为了方便,这里不再取对数且不做平滑处理,假设有一文本x为:Beijing,那它应该属于哪个类别?
第一步:算各个类别的先验概率
P ( Y = 0 ) = 1 3 P ( Y = 1 ) = 1 3 P ( Y = 2 ) = 1 3 P(Y=0)=\frac{1}{3} \\ \enspace \\ P(Y=1 )=\frac{1}{3} \\ \enspace \\ P(Y=2 )=\frac{1}{3} P(Y=0)=31P(Y=1)=31P(Y=2)=31
第二步:算条件概率
在类别Y=0的情况下有:
P ( B e i j i n g ∣ Y = 0 ) = 1 1 + 0 ) = 1 P ( S h a n g h a i ∣ Y = 0 ) = 0 1 + 0 = 0 P(Beijing|Y=0)=\frac{1}{1+0})=1 \\ \enspace \\ P(Shanghai|Y=0)=\frac{0}{1+0}=0 P(BeijingY=0)=1+01)=1P(ShanghaiY=0)=1+00=0
在类别Y=1的情况下有:
P ( B e i j i n g ∣ Y = 1 ) = 0 1 + 0 = 0 P ( S h a n g h a i ∣ Y = 1 ) = 1 1 + 0 = 1 P(Beijing|Y=1)=\frac{0}{1+0}=0 \\ \enspace \\ P(Shanghai|Y=1)=\frac{1}{1+0}=1 P(BeijingY=1)=1+00=0P(ShanghaiY=1)=1+01=1
在类别Y=2的情况下有:
P ( B e i j i n g ∣ Y = 2 ) = 1 1 + 1 = 0.5 P ( S h a n g h a i ∣ Y = 2 ) = 1 1 + 1 = 0.5 P(Beijing|Y=2)=\frac{1}{1+1}=0.5 \\ \enspace \\ P(Shanghai|Y=2)=\frac{1}{1+1}=0.5 P(BeijingY=2)=1+11=0.5P(ShanghaiY=2)=1+11=0.5
第三步:求后验概率
P ( Y = 0 ∣ x ) = P ( Y = 0 ) × P ( B e i j i n g ∣ Y = 0 ) × (1-P(Shanghai|Y=0)) = 1 3 P ( Y = 1 ∣ x ) = P ( Y = 1 ) × P ( B e i j i n g ∣ Y = 1 ) × (1-P(Shanghai|Y=1)) = 0 P ( Y = 2 ∣ x ) = P ( Y = 2 ) × P ( B e i j i n g ∣ Y = 2 ) × (1-P(Shanghai|Y=2)) = 1 12 P(Y=0|x) =P(Y=0)×P(Beijing|Y=0)× \textbf{(1-P(Shanghai|Y=0))} =\frac{1}{3} \\ \enspace \\ P(Y=1|x) =P(Y=1)×P(Beijing|Y=1)× \textbf{(1-P(Shanghai|Y=1))} =0 \\ \enspace \\ P(Y=2|x) =P(Y=2)×P(Beijing|Y=2)× \textbf{(1-P(Shanghai|Y=2))} =\frac{1}{12} P(Y=0∣x)=P(Y=0)×P(BeijingY=0)×(1-P(Shanghai|Y=0))=31P(Y=1∣x)=P(Y=1)×P(BeijingY=1)×(1-P(Shanghai|Y=1))=0P(Y=2∣x)=P(Y=2)×P(BeijingY=2)×(1-P(Shanghai|Y=2))=121
因此属于类0,上述加粗算式就是伯努利朴素贝叶斯的改进地方。对于某一个文本,若不存在该单词,若某类该单词概率越高,通过上述加粗算式的操作,使得该文本出现在该类的概率越低,这就是惩罚,而多项式朴素贝叶斯没有这种操作。

4 类别贝叶斯

(1)原理
这篇文章:贝叶斯分类器详解中所说的算法实际上就是朴素贝叶斯(可以直接看这篇文章即可),对条件概率的处理是:
P ( x i = t ∣ y = c ) = N t i c + α N c + α n i P(x_{i}=t|y=c)=\frac{N_{tic}+α}{N_{c}+αn_{i}} P(xi=ty=c)=Nc+αniNtic+α

  • N t i c N_{tic} Ntic是样本特征 x i x_{i} xi中出现类 t t t的次数,这些样本属于类别c; N c N_{c} Nc属于c类的样本数, n i n_{i} ni是特征i的可用类别数
  • 将α设置为1,则这个平滑叫做拉普拉斯平滑
  • 如果α小于1,则把它叫做利德斯通平滑
  • 两种平滑都属于自然语言处理中比较常用的用来平滑分类数据的统计手段

(2)例子
例子题目
对先验概率也做了一定的处理,可以忽略,重在看懂条件概率的处理过程
例子计算过程

4 补充朴素贝叶斯

4.1 核心原理

(1)多项式朴素贝叶斯公式改写
前面已经说过,多项式朴素贝叶斯的核心公式是:
θ c i = N c i + α N c + α n \theta_{ci}=\frac{N_{ci}+\alpha }{N_{c}+\alpha n} θci=Nc+αnNci+α
现假设在标签类别下 Y = c Y=c Y=c下,结构为(m,n)的特征矩阵如下:
X y = [ x 11 x 12 x 13 ⋯ x 1 n x 21 x 22 x 23 ⋯ x 2 n x 31 x 32 x 33 ⋯ x 3 n ⋯ x m 1 x m 2 x m 3 ⋯ x m n ] X_{y}=\begin{bmatrix} x_{11} & x_{12} &x_{13} & \cdots & x_{1n} \\ x_{21} & x_{22} & x_{23} &\cdots & x_{2n} \\ x_{31} & x_{32} & x_{33} &\cdots & x_{3n} \\ & & \cdots & & \\ x_{m1} & x_{m2} & x_{m3} &\cdots & x_{mn} \end{bmatrix} Xy= x11x21x31xm1x12x22x32xm2x13x23x33xm3x1nx2nx3nxmn

  • x j i x_{ji} xji表示样本 j j j的特征 i i i发生的次数,样本数为行,特征为列

根据该特征矩阵,可以对多项式朴素贝叶斯核心公式进行改写,如下:
θ c i = ∑ y i = c x j i + α ∑ i = 1 n ∑ y i = c x j i + α n \theta_{ci}=\frac{\sum_{y_{i}=c}x_{ji} +\alpha }{\sum_{i=1}^{n}\sum_{y_{i}=c}x_{ji}+\alpha n} θci=i=1nyi=cxji+αnyi=cxji+α
(2)补充朴素贝叶斯原理
其使用来自每个标签类别的补集的概率,并以此来计算每个特征的权重,如下:
θ i , y ≠ c = α i + ∑ y i ≠ c x i j α + ∑ i , y ≠ c ∑ i = 1 n x i j \theta_{i,y≠c}=\frac {\alpha_{i} + \sum_{y_{i}≠c}x_{ij} } {\alpha + \sum_{i,y≠c}\sum_{i=1}^{n}x_{ij}} θi,y=c=α+i,y=ci=1nxijαi+yi=cxij

  • x i j x_{ij} xij表示样本 j j j上对于特征 i i i下的取值,特征为行,样本为列
  • ∑ y i ≠ c x i j \sum_{y_{i}≠c}x_{ij} yi=cxij指特征 i i i下,所有标签类别不为 c c c的样本的特征取值之和
  • ∑ i , y ≠ c ∑ i = 1 n x i j \sum_{i,y≠c}\sum_{i=1}^{n}x_{ij} i,y=ci=1nxij指所有特征下,所有标签类别不为 c c c的样本的特征取值之和
  • α = ∑ i α i \alpha=\sum_{i}\alpha_{i } α=iαi

从上述公式可以看出:这就是多项式朴素贝叶斯的逆向思路
为了防止下溢,对其取对数,有:
w c i = l o g θ i , y ≠ c w_{ci}=log\theta_{i,y≠c} wci=logθi,y=c
还可以选择除以它的L2范式,以解决了在多项式分布中,特征取值比较多的样本(比如说比较长的文档)支配参数估计的情况。如下:
w c i = l o g θ i , y ≠ c ∑ j ∣ l o g θ i , y ≠ c ∣ w_{ci}=\frac {log\theta_{i,y≠c}} {\sum_{j}|log\theta_{i,y≠c}|} wci=jlogθi,y=clogθi,y=c
例如,样本1在参数估计中权重显然更大:

样本1样本2
x 1 x_{1} x150
x 2 x_{2} x211

基于 w c i w_{ci} wci,对于一个样本 X X X x i x_{i} xi是样本 X X X的特征,补充朴素贝叶斯的一个样本预测规则为:
P ( Y ≠ c ∣ X ) = a r g m i n c ∑ i x i w c i P(Y≠c|X)=argmin_{c}\sum\limits_{i}x_{i}w_{ci} P(Y=cX)=argmincixiwci

即我们求解出的最小补集概率所对应的标签就是样本的标签,因为 Y ≠ c Y≠c Y=c的概率越小,则 Y = c Y=c Y=c概率越大,因此属于类 c c c

4.2 算法流程

补充朴素贝叶斯的算法流程
X = { x 1 , ⋯   , x n } X=\{x_{1},\cdots,x_{n}\} X={x1,,xn}是一组数据集, x i j x_{ij} xij j j j文本中单词 i i i的计数
Y = { y 1 , ⋯   , y n } Y=\{y_{1},\cdots,y_{n}\} Y={y1,,yn}是该组数据集的标签
输入X和Y:

  1. x i j = l o g ( x i j + 1 ) \large{x_{ij}=log(x_{ij}+1)} xij=log(xij+1)
  2. x i j = x i j l o g ∑ k 1 ∑ k δ i k \large{x_{ij}=x_{ij}log\frac{\sum_{k}1}{\sum_{k}δ_{ik}}} xij=xijlogkδikk1
  3. x i j = x i j ∑ k ( x k j ) 2 \large{x_{ij}=\frac{x_{ij}}{\sqrt{\sum_{k}(x_{kj})^{2}}}} xij=k(xkj)2 xij
  4. θ i , y ≠ c = α i + ∑ y i ≠ c x i j α + ∑ i , y ≠ c ∑ i = 1 n x i j \large{\theta_{i,y≠c}=\frac{\alpha_{i} + \sum_{y_{i}≠c}x_{ij} }{\alpha + \sum_{i,y≠c}\sum_{i=1}^{n}x_{ij}}} θi,y=c=α+i,y=ci=1nxijαi+yi=cxij
  5. w c i = l o g θ i , y ≠ c \large{w_{ci}=log\theta_{i,y≠c}} wci=logθi,y=c
  6. w c i = w c i ∑ i w c i \large{w_{ci}=\frac{w_{ci}}{\sum_{i}w_{ci}}} wci=iwciwci
  7. t = { t 1 , ⋯   , t n } t=\{t_{1},\cdots,t_{n}\} t={t1,,tn}是测试文本, t i t_{i} ti是单词 i i i的计数
  8. 最后基于预测规则求出所属类别: l ( t ) = a r g m i n c ∑ i t i w c i l(t)=argmin_{c}\sum\limits_{i}t_{i}w_{ci} l(t)=argmincitiwci

这里对一些细节进行说明:

  1. x i j = l o g ( x i j + 1 ) \large{x_{ij}=log(x_{ij}+1)} xij=log(xij+1)可以更真实地处理文本,同时具备多项式朴素贝叶斯的优势
  2. x i j = x i j l o g ∑ k 1 ∑ k δ i k \large{x_{ij}=x_{ij}log\frac{\sum_{k}1}{\sum_{k}δ_{ik}}} xij=xijlogkδikk1对于 δ i k δ_{ik} δik,若单词 i i i出现在文本 k k k上,则 δ i k = 1 δ_{ik}=1 δik=1,否则为0。这个方法是为了对那些在每篇文档都出现的字进行处理,这些字不太重要,具体可看词袋模型的TF-IDF方法
  3. x i j = x i j ∑ k ( x k j ) 2 \large{x_{ij}=\frac{x_{ij}}{\sqrt{\sum_{k}(x_{kj})^{2}}}} xij=k(xkj)2 xij文本中词的相互依赖性很强,一个词首次出现在文本中后,就更有可能再一次出现。由于朴素贝叶斯假定发生独立,冗长的文本会对参数估计产生负面影响。因此标准化文本单词数避免这个问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/725701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python | Leetcode Python题解之第160题相交链表

题目&#xff1a; 题解&#xff1a; class Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:A, B headA, headBwhile A ! B:A A.next if A else headBB B.next if B else headAreturn A

吴恩达机器学习 第三课 week1 无监督学习算法(上)

目录 01 学习目标 02 无监督学习 03 K-means聚类算法 3.1 K-means聚类算法原理 3.2 k-means算法实现 3.3 利用k-means算法压缩图片 04 总结 01 学习目标 &#xff08;1&#xff09;了解无监督学习算法 &#xff08;2&#xff09;掌握K-means聚类算法实现步骤 &#xff…

it职业生涯规划系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;职业介绍管理&#xff0c;答题管理&#xff0c;试题管理&#xff0c;基础数据管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;在线答题&#xff0…

基于SSM+Jsp的书店仓库管理系统

摘要&#xff1a;仓库作为储存货物的核心功能之一&#xff0c;在整个仓储中具有非常重要的作用&#xff0c;是社会物质生产的必要条件。良好的仓库布局环境能够对货物进入下一个环节前的质量起保证作用&#xff0c;能够为货物进入市场作好准备&#xff0c;在设计中我们根据书店…

基于matlab的RRT算法路径规划(附带案例源码)

文章中的所有案例均为博主手动复现&#xff0c;用于记录博主学习路径规划的过程&#xff0c;如有不妥&#xff0c;欢迎在评论区交流 目录 1 标准RRT1.1 算法原理1.2 演示 2 GBRRT2.1 算法原理2.2 算法演示 3 RRT-STAR3.1 算法原理3.2 算法演示 4 RRT-CONNECT4.1 算法原理4.2 算…

实现农业现代化与乡村振兴战略的融合发展方案

政策背景 “一号文件”精神贯彻 数字乡村试点精神全面实施 工业化思维谋划农业发展 数字乡村建设纳入县级“十四五”发展规划 乡村振兴实施目标 2020年&#xff1a;乡村振兴取得重要进展 2035年&#xff1a;乡村振兴取得决定性进展&#xff0c;农业农村现代化基本实现 205…

在 Ubuntu 18.04.4 LTS上安装 netmap

文章目录 步骤运行配置文件编译安装使用netmap 步骤 sudo su sudo apt-get update sudo apt install build-essential sudo apt-get install -y git sudo apt-get install -y linux-headers-$(uname -r)rootVM-20-6-ubuntu:/home/ubuntu/netmap/LINUX# git clone https://gith…

反激开关电源EMI电路选型及计算

EMI &#xff1a;开关电源对电网或者其他电子产品的干扰 EMI &#xff1a;传导与辐射 共模电感的滤波电路&#xff0c;La和Lb就是共模电感线圈。这两个线圈绕在同一铁芯上&#xff0c;匝数和相位都相 同(绕制反向)。 这样&#xff0c;当电路中的正常电流&#xff08;差模&…

回归算法详解

回归算法详解 回归分析是一类重要的机器学习方法&#xff0c;主要用于预测连续变量。本文将详细讲解几种常见的回归算法&#xff0c;包括线性回归、岭回归、Lasso 回归、弹性网络回归、决策树回归和支持向量回归&#xff08;SVR&#xff09;&#xff0c;并展示它们的特点、应用…

Ubuntu-基础工具配置

基础工具配置 点击左下角 在弹出界面中点击 以下命令都是在上面这个界面执行&#xff08;请大家注意空格&#xff09; 命令输入完后&#xff0c;回车键就是执行,系统会提示输入密码&#xff08;就是你登录的密码&#xff09; 1.安装net工具 &#xff1a;&#xff08;ifconfi…

uniapp 微信小程序自定义分享图片

场景&#xff1a;微信小程序用户&#xff0c;点击小程序里商品的分享按钮时&#xff0c;想要不同的商品展示不用的分享内容&#xff0c;比如分享图片上展示商品的图片、价格等信息。分享的UI图如下&#xff1a; 实现方法&#xff1a; 1. 分享按钮&#xff1a;<button open-…

Mysten Labs宣布推出Walrus:一种去中心化存储和数据可用性协议

Walrus是为区块链应用和自主代理提供的创新去中心化存储网络。Walrus存储系统今天以开发者预览版的形式发布&#xff0c;面向Sui开发者征求反馈意见&#xff0c;并预计很快会向其他Web3社区广泛推广。 通过采用纠删编码创新技术&#xff0c;Walrus能够快速且稳健地将非结构化数…

Day10—Spark SQL基础

Spark SQL介绍 ​ Spark SQL是一个用于结构化数据处理的Spark组件。所谓结构化数据&#xff0c;是指具有Schema信息的数据&#xff0c;例如JSON、Parquet、Avro、CSV格式的数据。与基础的Spark RDD API不同&#xff0c;Spark SQL提供了对结构化数据的查询和计算接口。 Spark …

人工智能指数报告

2024人工智能指数报告&#xff08;一&#xff09;&#xff1a;研发 前言 全面分析人工智能的发展现状。 从2017年开始&#xff0c;斯坦福大学人工智能研究所&#xff08;HAI&#xff09;每年都会发布一份人工智能的研究报告&#xff0c;人工智能指数报告&#xff08;AII&…

网络安全:入侵检测系统的原理与应用

文章目录 网络安全&#xff1a;入侵检测系统的原理与应用引言入侵检测系统简介IDS的工作原理IDS的重要性结语 网络安全&#xff1a;入侵检测系统的原理与应用 引言 在我们的网络安全系列文章中&#xff0c;我们已经涵盖了从SQL注入到端点保护的多个主题。本篇文章将探讨入侵检…

Apple - Authorization Services Programming Guide

本文翻译整理自&#xff1a;Authorization Services Programming Guide&#xff08;更新日期&#xff1a;2011-10-19 https://developer.apple.com/library/archive/documentation/Security/Conceptual/authorization_concepts/01introduction/introduction.html#//apple_ref/d…

探究布局模型:从LayoutLM到LayoutLMv2与LayoutXLM

LAYOUT LM 联合建模文档的layout信息和text信息&#xff0c; 预训练 文档理解模型。 模型架构 使用BERT作为backbone&#xff0c; 加入2-D绝对位置信息&#xff0c;图像信息 &#xff0c;分别捕获token在文档中的相对位置以及字体、文字方向、颜色等视觉信息。 2D位置嵌入 …

天地图 uniapp使用笔记

官网地址&#xff1a;天地图API 效果&#xff1a; <template><view><!-- 显示地图的DOM节点 --><view id"container" class"content"></view><!-- END --><!-- 数据显示 --><h3>城市名称(IP属地)&#x…

rollup学习笔记

一直使用的webpack,最近突然想了解下rollup,就花点时间学习下. 一,什么是rollup? rollup 是一个 JavaScript 模块打包器&#xff0c;可以将小块代码编译成大块复杂的代码,比如我们的es6模块化代码,它就可以进行tree shaking,将无用代码进行清除,打包出精简可运行的代码包. 业…

[Linux] 系统管理

全局配置文件 用户个性化配置 配置文件的种类 alias命令和unalias命令 进程管理 进程表