您的位置:首页 > 其它

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

2017-05-30 16:59 661 查看

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

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

p(ck∣xi)=p(ck)p(xi∣ck)(1)

此时的ck即为该样本xi的分类,即:

h(xi)=argmaxckp(ck)p(xi∣ck)=argmaxckp(ck)⋅∏j=1Np(xij∣ck)(2)

假定各个类别与一个混合模型中的独立成分一一对应,混合模型的参数为Θ,则上式可以写为:

h(xi)=argmaxkp(θk)⋅∏j=1Np(xij∣θk)(3)

令Θk=p(θk),Θxij∣j,k=p(xij∣θk),xij∈Ajk(4)

其中Ajk表示第k类样本在属性j上所有可能的取值的集合,则:

h(xi)=argmaxkΘk⋅∏j=1NΘxij∣j,k(5)

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

Θ^kΘ^xij∣j,k=|lk|+|u∗k|+1|l|+|u∗|+|C|,=|lk,xij|+|u∗k,xij|+1|lk|+|u∗k|+|Ajk|(6)(7)

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

输入:有标记数据Dl和未标记数据Du;

只使用Dl,利用(6),(7)计算出朴素贝叶斯模型的初始参数Θ^(0)k,Θ^(0)xij∣j,k,并令u∗k=∅

循环,当Θ^(m)k,Θ^(m)xij∣j,k≠Θ^(m+1)k,Θ^(m+1)xij∣j,k时:

E-step: 将Θ^(m)k,Θ^(m)xij∣j,k带入式(5)获取所有样本xi∈Du的伪标记c∗i,并令D∗u={(xi,c∗i)}

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

输出:Θ^k,Θ^xij∣j,k,朴素贝叶斯分类器h(x),已完成分类的D∗u。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息