机器学习-周志华-个人练习13.2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qilixuening/article/details/72810579

13.2 试基于朴素贝叶斯模型推导生成式半监督学习算法

回顾一下,朴素贝叶斯的假设是 xi=(xi1,,xin) 中的所有 xij 相互独立,结合贝叶斯公式可知,我们的目标是找到一个 ckC ,最大化下式:

p(ckxi)=p(ck)p(xick)(1)

此时的 ck 即为该样本 xi 的分类,即:
h(xi)=argmaxckp(ck)p(xick)=argmaxckp(ck)j=1Np(xijck)(2)

假定各个类别与一个混合模型中的独立成分一一对应,混合模型的参数为 Θ ,则上式可以写为:
h(xi)=argmaxkp(θk)j=1Np(xijθk)(3)

Θk=p(θk),Θxijj,k=p(xijθk),xijAjk(4)

其中 Ajk 表示第 k 类样本在属性 j 上所有可能的取值的集合,则:
h(xi)=argmaxkΘkj=1NΘxijj,k(5)

此时,将 Dl 中第 k 类样本的集合记为 lk Du 中用伪标记分类的第 k 类样本的集合记为 uk lk 中第 j 个属性取值为 xij 的集合记为 lk,xij uk 中第 j 个属性取值为 xij 的集合记为 uk,xij ,我们可以对 Θk,Θxijj,k 进行参数估计:

Θ^kΘ^xijj,k=|lk|+|uk|+1|l|+|u|+|C|,=|lk,xij|+|uk,xij|+1|lk|+|uk|+|Ajk|(6)(7)

基于上述参数估计方法,可构建如下算法:

  • 输入:有标记数据 Dl 和未标记数据 Du
  • 只使用 Dl ,利用 (6),(7) 计算出朴素贝叶斯模型的初始参数 Θ^(0)k,Θ^(0)xijj,k ,并令 uk=
  • 循环,当 Θ^(m)k,Θ^(m)xijj,kΘ^(m+1)k,Θ^(m+1)xijj,k 时:

    • E-step: Θ^(m)k,Θ^(m)xijj,k 带入式 (5) 获取所有样本 xiDu 的伪标记 ci ,并令 Du={(xi,ci)}

    • M-step: 利用更新后的 Du ,结合 Dl ,利用 (6),(7) 计算出朴素贝叶斯模型的参数 Θ^(m+1)k,Θ^(m+1)xijj,k

  • 输出: Θ^k,Θ^xijj,k ,朴素贝叶斯分类器 h(x) ,已完成分类的 Du

猜你喜欢

转载自blog.csdn.net/qilixuening/article/details/72810579