gensim

LDA 主题模型效果度量

2017-05-08  本文已影响106人  风驰电掣一瓜牛

度量方法:

  1. 在测试集或训练集上计算困惑度
  2. 在具体应用中看效果,如分类

这里主要说说如何计算困惑度。

计算方法为:

  1. 计算每篇文档的概率p(d),
  2. 除以所有文档词的总数(不排重),乘以-1,求指数

难点在于计算每篇文档的概率 参考1 参考2, 在Blei原始论文中并没有详说。

一种方法是计算一篇文档所有词的概率和,即似然性,然后取log,这也是gensim和sklearn的做法。

一个词的概率:
p(w) = sigma p(z,w) = sigma p(z)p(w|z)

一篇文档概率
p(d) = log (p(w1)p(w2)...) = sigma log(p(w))

详细公式推导见参考3

具体实现可参考类 gensim.models.ldamodel.LdaModel的成员方法 log_perplexity(),结果只输出到日志中,但是调用成员方法bound()可以自己计算得到,该函数返回的是语料似然值,假设为L,则语料困惑度为exp(-L)

也可以参考类 sklearn.decomposition.LatentDirichletAllocation 的成员方法perplexity(), 该函数直接返回困惑度。

在实践中,困惑度主要用来观察模型收敛情况,可以在训练集上进行,也可以在held-out数据集上。

其他参考

  1. 困惑度wiki
  2. 知乎讨论
  3. sklearn
  4. gensim
上一篇 下一篇

猜你喜欢

热点阅读