0
点赞
收藏
分享

微信扫一扫

统计学习方法——朴素贝叶斯

潇湘落木life 2022-01-07 阅读 31

文章目录

引言

朴素贝叶斯多用于分类问题,实现简单,并且学习和预测的效率都很高。而贝叶斯作为朴素贝叶斯的基础这里就不过多介绍了。

P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)={\frac{P(B|A)P(A)}{P(B)}} P(AB)=P(B)P(BA)P(A)

朴素贝叶斯

给定训练集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),..,(x_N,y_N)} T=(x1,y1),(x2,y2),..,(xN,yN),设类别可选数目为K,即 c 1 , c 2 , . . . , c K c_1,c_2,...,c_K c1,c2,...,cK,特征维度为m,即 x i = ( x i 1 , x i 2 , . . . x i m ) x_i=(x_i^1,x_i^2,...x_i^m) xi=(xi1,xi2,...xim),第j维的特征可取值数目为 S j S_j Sj,分别为 a j 1 , a j 2 , . . . , a j S j a_j^1,a_j^2,...,a_j^{S_j} aj1,aj2,...,ajSj

这里的描述比较抽象,我用一个简单的例子来表示:

在这里插入图片描述
这里是统计学习方法p50页的例题,这里我不解答,而是针对里面的内容来简单的表示上面的描述。

  • 可选数目K就是题目中的Y的类别数也就是2, c 1 , c 2 , . . . , c K c_1,c_2,...,c_K c1,c2,...,cK可以具体表示为-1和1。

  • 特征维度m对应题目就是 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T,此处m=2有两个维度,对应了表格中的 X ( 1 ) X^{(1)} X(1) X ( 2 ) X^{(2)} X(2)

  • 特征可取值数目 S j S_j Sj 就是具体每个特征可能的取值,题目中 X ( 1 ) X^{(1)} X(1)就三个取值1,2,3,因此 S 1 S_1 S1就为3。

a j 1 , a j 2 , . . . , a j S j a_j^1,a_j^2,...,a_j^{S_j} aj1,aj2,...,ajSj对应了每个取值,此处 a 1 1 = 1 , a 1 2 = 2 , a 1 3 = 3 a_1^1=1,a_1^2=2,a_1^3=3 a11=1,a12=2,a13=3。对于 X ( 2 ) X^{(2)} X(2)来说 a 1 1 = S , a 1 2 = M , a 1 3 = L a_1^1=S,a_1^2=M,a_1^3=L a11=S,a12=M,a13=L

而我们的目标就是知道x的数据,将x分到正确的类别中


在有了上面的描述后,我们可以得到以下的先验概率和条件概率:

先验概率为:
P ( Y = c k ) , k = 1 , 2 , . . . , K P(Y=c_k),k=1,2,...,K P(Y=ck),k=1,2,...,K
条件概率为:
P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , X 2 = x 2 , . . . , X m = x m ∣ Y = c k ) , k = 1 , 2 , . . . , K P(X=x|Y=c_k)=P(X^1=x^1,X^2=x^2,...,X^m=x^m|Y=c_k),k=1,2,...,K P(X=xY=ck)=P(X1=x1,X2=x2,...,Xm=xmY=ck),k=1,2,...,K
因此也就得到了联合概率:
p ( X = x , Y = c k ) = P ( Y = c k ) P ( X = x ∣ Y = c k ) p(X=x,Y=c_k)=P(Y=c_k)P(X=x|Y=c_k) p(X=x,Y=ck)=P(Y=ck)P(X=xY=ck)
为了降低模型的复杂度,朴素贝叶斯作了条件独立性的假设:
P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , X 2 = x 2 , . . . , X m = x m ∣ Y = c k ) = ∏ j = 1 m P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,X^2=x^2,...,X^m=x^m|Y=c_k) \\=\prod_{j=1}^mP(X^j=x^j|Y=c_k) P(X=xY=ck)=P(X1=x1,X2=x2,...,Xm=xmY=ck)=j=1mP(Xj=xjY=ck)
因为这是一个强假设,朴素贝叶斯由此得名

对于后验概率 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 ( X = x ) = P ( Y = c k ) P ( X = x ∣ Y = c k ) P ( X = x ) = P ( Y = c k ) ∏ j = 1 m P ( X j = x j ∣ Y = c k ) P ( X = x ) P(Y=c_k|X=x)=\frac{p(X=x,Y=c_k)}{P(X=x)} \\=\frac{P(Y=c_k)P(X=x|Y=c_k)}{P(X=x)} \\=\frac{P(Y=c_k)\prod_{j=1}^mP(X^j=x^j|Y=c_k)}{P(X=x)} P(Y=ckX=x)=P(X=x)p(X=x,Y=ck)=P(X=x)P(Y=ck)P(X=xY=ck)=P(X=x)P(Y=ck)j=1mP(Xj=xjY=ck)
而我们的目标就是选取使得 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x)概率最大的 c k c_k ck类别,因此分母 P ( X = x ) P(X=x) P(X=x)并没有太多用处,不影响 c k c_k ck的取值。

因为我的目标就变成了如下的式子:
y = arg ⁡ max ⁡ c k P ( Y = c k ) ∏ j = 1 m P ( X j = x j ∣ Y = c k ) y=\arg \max_{c_k}P(Y=c_k)\prod_{j=1}^mP(X^j=x^j|Y=c_k) y=argckmaxP(Y=ck)j=1mP(Xj=xjY=ck)
找到一个合适的 c k c_k ck使 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x)概率最大。

朴素贝叶斯的参数估计

极大似然估计

对于目标公式中的先验概率 P ( Y = c k ) P(Y=c_k) P(Y=ck)
P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N , k = 1 , 2 , . . . , K P(Y=c_k)=\frac{\sum_{i=1}^{N}I(y_i=c_k)}{N},k=1,2,...,K P(Y=ck)=Ni=1NI(yi=ck),k=1,2,...,K
其中 I ( y i = c k ) I(y_i=c_k) I(yi=ck)为信号函数,成立的时候返回1,不成立返回0

对与目标公式中的条件概率 P ( X j = x j ∣ Y = c k ) P(X^j=x^j|Y=c_k) P(Xj=xjY=ck),设第 j j j 个特征 x j x^j xj可能的取值集合为 a j 1 , a j 2 , a j 3 . . . , a j S j a_j^1,a_j^2,a_j^3...,a_j^{S_j} aj1,aj2,aj3...,ajSj,可以得到:
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 ) , l = 1 , 2 , . . . , S j P(X^{j}=a_j^l|Y=c_k)=\frac{\sum_{i=1}^{N}I(x_i^j=a_j^l,y_i=c_k)}{\sum_{i=1}^{N}I(y_i=c_k)},l=1,2,...,S_j P(Xj=ajlY=ck)=i=1NI(yi=ck)i=1NI(xij=ajl,yi=ck),l=1,2,...,Sj
这个举个例子来简单说明下,假设有两个类别(1 , 2),3个特征(a, b , c),每个特征都有4个可能的取值,上面那个公式说明的就是在给定具体类别的前提下(1或者2),每个特征(a\b\c)中每一个可能取值的概率(4个可能取值),如 P ( a = a 1 ∣ Y = 1 ) P(a=a_1|Y=1) P(a=a1Y=1)表示的就是在给定类别1的前提下,特征a的第一个可能取值的概率。因为我们这里用了信号函数,所以可以通过统计数据集直接得到概率。

在得到先验概率和条件概率后,对于给定的数据 x = ( x i 1 , x i 2 , . . . x i m ) x=(x_i^1,x_i^2,...x_i^m) x=(xi1,xi2,...xim)就可以得到:
P ( Y = c k ) ∏ j = 1 m P ( X j = x j ∣ Y = c k ) , k = 1 , 2 , 3 , . . . . K P(Y=c_k)\prod_{j=1}^mP(X^j=x^j|Y=c_k), k=1,2,3,....K P(Y=ck)j=1mP(Xj=xjY=ck),k=1,2,3,....K
最后在找到使上面式子最大的 c k c_k ck,就是最后的结果:
y = arg ⁡ max ⁡ c k P ( Y = c k ) ∏ j = 1 m P ( X j = x j ∣ Y = c k ) y=\arg \max_{c_k}P(Y=c_k)\prod_{j=1}^mP(X^j=x^j|Y=c_k) y=argckmaxP(Y=ck)j=1mP(Xj=xjY=ck)
配合例子肯定更好理解,例子在统计学习方法P50页有,也就是我上面提到的例子,这里附上完整版的。
在这里插入图片描述

举报

相关推荐

朴素贝叶斯

0 条评论