首页 > 其他分享 >NaiveBayes-参数求解

NaiveBayes-参数求解

时间:2022-10-11 15:35:55浏览次数:75  
标签:ck ... 1nP log 求解 NaiveBayes 参数 1K ajlck


knitr::opts_chunk$set(echo = TRUE)

  朴素贝叶斯直观上倒是很容易理解,无非就是求后验概率最大化,但是损失函数、参数求解都是一知半解。本文以离散型朴素贝叶斯为例,做一些简单的探讨。

前置知识

  主要是概率论的一些知识:

条件概率


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

全概率公式


P(B)=∑i=1nP(AiB)=∑i=1nP(Ai)P(B|Ai) P ( B ) = ∑ i = 1 n P ( A i B ) = ∑ i = 1 n P ( A i ) P ( B | A i )

贝叶斯公式


P(Ai|B)=P(AiB)P(B)=P(Ai)P(B|Ai)∑j=1nP(Aj)P(B|Ai) P ( A i | B ) = P ( A i B ) P ( B ) = P ( A i ) P ( B | A i ) ∑ j = 1 n P ( A j ) P ( B | A i )

基本方法

符号标记

X X 是nn维向量的集合,输出空间为类标记集合Y={c1,c2,...,ck} Y = { c 1 , c 2 , . . . , c k } 。
输入特征:x∈X x ∈ X
输出:y∈Y y ∈ Y ,y y 取值为c1,c2,...,cKc1,c2,...,cK
联合分布:P(X,Y) P ( X , Y )
训练集:T={(x1,y1),...,(xN,yN)} T = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } ,样本独立同分布
先验分布:P(Y=ck)=θk P ( Y = c k ) = θ k

条件独立性假设

  Naive Bayes中有一个很强且不太符合直觉的假设,类内独立性或者说条件独立性。具体如下:

P(X=x|Y=ck)=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)=∏j=1nP(X(j)=x(j)|Y=ck) P ( X = x | Y = c k ) = 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 ) = ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )

目标函数

P(Y=ck|X=x) P ( Y = c k | X = x ) 最大的类ck c k ,作为X X 的类标记,则:

P(Y=ck|X=x)=P(Y=ck,X=x)P(X=x)=P(Y=ck,X=x)∑k=1KP(Y=ck,X=x)=P(X=x|Y=ck)P(Y=ck)∑k=1KP(X=x|Y=ck)P(Y=ck)P(Y=ck|X=x)=P(Y=ck,X=x)P(X=x)=P(Y=ck,X=x)∑k=1KP(Y=ck,X=x)=P(X=x|Y=ck)P(Y=ck)∑k=1KP(X=x|Y=ck)P(Y=ck)


根据类内独立性:


P(Y=ck|X=x)=P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)∑k=1KP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck) P ( Y = c k | X = x ) = P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k ) ∑ k = 1 K P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )

因为分母对于所有的ck c k 都是相同的,所以有目标函数:


argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck) arg max c k P ( Y = c k ) ∏ j = 1 n P ( X ( j ) = x ( j ) | Y = c k )

损失函数

此处大谬,周末过来改一下~2018-04-12
  上节的想法是后验概率最大化,那么从损失函数怎么理解呢?
假设朴素贝叶斯的损失函数是0−1 0 − 1 损失函数:

L(Y,f(X))={1,Y≠f(x)0,Y=f(x) L ( Y , f ( X ) ) = { 1 , Y ≠ f ( x ) 0 , Y = f ( x )


其中

f(X) f ( X ) 是分类决策函数,此时期望风险函数为:


Rexp(f)=E[L(Y,f(X))]=∑k=1KL(Y,f(X))P(Y=ck,X=x)=∑k=1KL(Y,f(X))P(X=x|Y=ck)P(Y=ck) R exp ( f ) = E [ L ( Y , f ( X ) ) ] = ∑ k = 1 K L ( Y , f ( X ) ) P ( Y = c k , X = x ) = ∑ k = 1 K L ( Y , f ( X ) ) P ( X = x | Y = c k ) P ( Y = c k )


那么损失函数最小化即:


argminck∑k=1KL(Y,f(X))P(Y=ck|X=x)P(X=x)=argminck∑k=1KL(Y,f(X))P(Y=ck|X=x)=argminck∑k=1KP(Y≠ck|X=x)=argminck(1−P(Y=ck|X=x))=argmaxckP(Y=ck|X=x) arg m i n c k ⁡ ∑ k = 1 K L ( Y , f ( X ) ) P ( Y = c k | X = x ) P ( X = x ) = arg m i n c k ⁡ ∑ k = 1 K L ( Y , f ( X ) ) P ( Y = c k | X = x ) = arg m i n c k ⁡ ∑ k = 1 K P ( Y ≠ c k | X = x ) = arg m i n c k ⁡ ( 1 − P ( Y = c k | X = x ) ) = arg m a x c k ⁡ P ( Y = c k | X = x )

参数求解

P(X=x|Y=ck) P ( X = x | Y = c k ) 和P(Y=ck) P ( Y = c k ) ,参数求解利用极大似然估计,新增一下若干符号标记:
nk n k 是类ck c k 出现的次数
P(Y=ck)=θk P ( Y = c k ) = θ k 为先验分布
xj x j 为第j j 的特征,其取值为ajlajl,其中j=1,2,...J j = 1 , 2 , . . . J ,即特征共m m 维,l=1,2,...,Ll=1,2,...,L即第j j 维的特征共LL个取值
P(xj=ajl|y=ck) P ( x j = a j l | y = c k ) 用θajlck θ c k a j l 表示
nj,l,k n j , l , k 指第k k 类中第jj个特征取值为ajl a j l 的频数
1、似然函数

L=∏i=1nP(xi,yi)=∏i=1nP(yi)P(xi|yi)=∏k=1K(θk)nk∏i=1n∏j=1J∏l=1LP(xji=ajl|yi)njlk=∏k=1K(θk)nk∏i=1n∏j=1J∏l=1L(θajlck)njlk L = ∏ i = 1 n P ( x i , y i ) = ∏ i = 1 n P ( y i ) P ( x i | y i ) = ∏ k = 1 K ( θ k ) n k ∏ i = 1 n ∏ j = 1 J ∏ l = 1 L P ( x i j = a j l | y i ) n j l k = ∏ k = 1 K ( θ k ) n k ∏ i = 1 n ∏ j = 1 J ∏ l = 1 L ( θ c k a j l ) n j l k


取对数:


log(L)=∑k=1Knklogθk+∑i=1n∑j=1J∑l=1Lnjlklogθajlck log ⁡ ( L ) = ∑ k = 1 K n k log θ k + ∑ i = 1 n ∑ j = 1 J ∑ l = 1 L n j l k log θ c k a j l


分别记:


f1=∑k=1Knklogθkf2=∑i=1n∑j=1J∑l=1Lnjlklogθajlck f 1 = ∑ k = 1 K n k log θ k f 2 = ∑ i = 1 n ∑ j = 1 J ∑ l = 1 L n j l k log θ c k a j l


分别求

f1,f2 f 1 , f 2 的极值即可,对于 f1 f 1 ,使用拉格朗日乘子法求解:


L1=∑k=1Knklogθk+λ(∑k=1Kθk−1)⎧⎩⎨⎪⎪⎪⎪∂L1∂θk=nkθk−λ=0∂L2∂λ=∑k=1Kθk−1=0so:n1θ1=n2θ2=⋯=nKθK=λand:∑k=1Knk=N;∑k=1Kθk=1∴θk=nkN L 1 = ∑ k = 1 K n k log θ k + λ ( ∑ k = 1 K θ k − 1 ) { ∂ L 1 ∂ θ k = n k θ k − λ = 0 ∂ L 2 ∂ λ = ∑ k = 1 K θ k − 1 = 0 s o : n 1 θ 1 = n 2 θ 2 = ⋯ = n K θ K = λ a n d : ∑ k = 1 K n k = N ; ∑ k = 1 K θ k = 1 ∴ θ k = n k N


对于

f2 f 2 同样使用拉格朗日乘子法:


L2=∑i=1n∑j=1J∑l=1Lnjlklogθajlck+λ(∑k=1Kθk−1)⎧⎩⎨⎪⎪⎪⎪⎪⎪∂L1∂θajlck=njlkθajlck−λ=0∂L2∂λ=∑k=1Kθk−1=0so:P(xj=ajl|y=ck)=θajlck=njlknk=∑ni=1I(xji=ajl,yi=ck)∑ni=1I(yi=ck) L 2 = ∑ i = 1 n ∑ j = 1 J ∑ l = 1 L n j l k log θ c k a j l + λ ( ∑ k = 1 K θ k − 1 ) { ∂ L 1 ∂ θ c k a j l = n j l k θ c k a j l − λ = 0 ∂ L 2 ∂ λ = ∑ k = 1 K θ k − 1 = 0 s o : P ( x j = a j l | y = c k ) = θ c k a j l = n j l k n k = ∑ i = 1 n I ( x i j = a j l , y i = c k ) ∑ i = 1 n I ( y i = c k )

优缺点

1、优点
模型容易构造,参数估计无需任何迭代框架,适用于大数据集
容易解释
分类效果往往很好,非常稳健
2、缺点
条件独立性的假设太强
对输入数据的表达形式很敏感

Summary

引入的拉普拉斯平滑等内容暂且不提,相关内容见李航的《统计学习方法》。

Ref

[1] 李航《统计学习方法》
[2] ​​​https://zhuanlan.zhihu.com/p/25006836?refer=carefree0910-pyml​

                                        2018-03-15 与杭州


标签:ck,...,1nP,log,求解,NaiveBayes,参数,1K,ajlck
From: https://blog.51cto.com/u_15575753/5746429

相关文章