em notes

K 类个数, M term个数, N doc个数。

 

 

 

qmkterm m在类k中出现的概率。

16.14式的左边含义就是在模型未知参数theta的情况下, k中包含文档d的概率

右边就是d内的所有term出现在类k中的概率连乘积, d内未出现的term的补(1-q)的连乘积

 

 

 

 

16.14式不同的是, wk了。

那么16.15左式的含义就是, 在该模型未知参数下, 文档d出现在该模型下的概率。

Alpha k是每个类的先验概率。

上式右边就是文档d出现在类k的概率, 然后加权求和

 

 

 

大化步, 重新评估模型参数qmk, alpha k

r(nk) 是文档dn 率属于 k的概率

 

I(tm, dn) 如果term m在文档dn中出现则为1 否则为0.

 

那么这里的qmk term m在类k中出现的概率, 实际上就是个加权值(加权的DF)。 分母是类k中所有文档的概率之和, 分子是类k中包含了term m的文档的概率之和。

 

 

alpha k是先验概率, 表示类k的大小。 那么就是 所有文档率属于类k的概率之和除以文档总数

 

 

 

 

期望步, 计算rnk的极大似然值

分子是文档dn在类k中的概率乘以类k的先验概率。 (式16.14

分母是文档dn在所有类中的概率乘以对应类的先验概率 得到的和。(式16.15

因此, 文档dn出现在类k中的概率理所当然就是两者之商。

 

 

 

EM算法对initial seeds的要求更严格。 一般使用k-means算法得到kcentroid,从而得到先验概率alpha k以及 qmk

 

EM算法是generalized k-means

K-means是硬的分类方法, 每个doc只能属于一个类; EM是软的分类方法, 每个doc在不同的类中都有一定的概率

 

 

 

 

具体算法见 weak, em http://blog.csdn.net/aalbertini/archive/2010/08/11/5804318.aspx

初始化

已知k个质心、以及每类中的样本数以及具体样本, 因此可以得到:

m_priors, k个先验概率, 表示每个类的先验大小

m_num_clusters, 类个数k 一般是输入。

m_model[K][M] 每个类中每个属性的概率, 就是上式中qmk的转置形式

m_weights[N][K] 每个文档在每个类中的概率, 就是16.14/16.15得到的矩阵。 初始值应该为硬分类的结果, 即其中每行只有11 其他都为0 就是上式中的rnk

 

M step

根据 m_priors, m_weights 重新计算m_model

 

E step

根据 m_priors, m_model 重新计算 m_weights 当达到退出条件时结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值