先导说明
- 我们经常用MLE最大似然来构造模型的目标函数,最大似然的目的是让观测到的数据概率最大,所以最大化的就是训练数据的概率。
- 而MAP后验是在观测数据之上又加上了先验概率,要让模型符合先验概率。当数据足够多的时候,MAP趋近于MLE。
- 求极值最容易想到的方法是求导置零。
- 贝叶斯定理:
也就是联合概率P(A,B)=P(B,A)=P(A|B)*P(B)=P(B|A)*P(A) - 朴素贝叶斯是生成模型,建模的就是联合概率
- 朴素贝叶斯的假设就是各个特征相互独立
朴素贝叶斯推导
以垃圾邮件分类为例: x i , y i x_i,y_i xi,yi表示第i个样本及标签,一个文本又有m个词组成,包括 x i 1 , x i 2 , , , x i m x_i^1,x_i^2,,,x_i^m xi1,xi2,,,xim
目标函数
第(4)布中间表示这是一个生成模型
联合概率的展开用到贝叶斯定理
从第(5)道第(6)是比较关键的一步,用道朴素贝叶斯的基本假设:各个特征相互独立,所以能得到(6)
然后两边取log:
(7)-》(8)是将按照第i个文本的单词,写成了对于整个词典中的单词,每一个再第i个文本中出现了几次,两者是等价的
n
i
j
n_{ij}
nij表示wj在xi中出现的次数。
(9)是将log里的连乘转化为求和
(10)是将(9)按照类别拆开,同属于k类的放到一起,然后再对所有类别求和,在一个类别里,只计算属于这个类别的数据
(11)只是换了变量方便表示,
θ
k
j
\theta_{kj}
θkj表示wj在类k中出现的概率 ,
π
k
\pi_k
πk表示在所有文本中,属于第k类的概率,
n
k
n_k
nk即有多少个k类的
这样就得到了目标函数,接下来就是求解极值的问题
求解最大值
上面这个目标函数是有限制条件的,
(13)表示属于所有类别的概率和为1
(14)表示属于第k类的所有单词出现的概率和为1
为了考虑进去,用拉格朗日惩罚考虑进来,合成一个目标函数,为:
这样开始求导
对
π
k
\pi_k
πk求导,无关项不用考虑,求和展开也知道只有一个与具体的k有关
这里还有一个参数
λ
\lambda
λ,根据限制条件(15),从(19)表示出
π
k
\pi_k
πk,求和为1,可以得到:
再带回到(19)中,可以求得
π
k
\pi_k
πk
接下来求
θ
k
j
\theta_{kj}
θkj,方法一样:
再用第二个限制条件,同样的方法求
λ
k
\lambda_k
λk,
代入可得
θ
k
j
\theta_{kj}
θkj