以前一直是按经验设置topic个数,数据量小就少点,数据量大就多点,大概50-500吧。最近有同学跟我讨论,才想起来该找找相关文献,学习一下如何科学的确定topic个数。
1.用perplexity-topic number曲线
LDA有一个自己的评价标准叫Perplexity(困惑度),可以理解为,对于一篇文档d,我们的模型对文档d属于哪个topic有多不确定,这个不确定程度就是Perplexity。其他条件固定的情况下,topic越多,则Perplexity越小,但是容易过拟合。
这里也提一下如何计算Perplexity:
测试文本集中有M篇文本,对词袋模型里的任意一个单词w,P(w)=∑z p(z|d)*p(w|z),即该词在所有主题分布值和该词所在文本的主题分布乘积。
模型的perplexity就是exp^{ - (∑log(p(w))) / (N) },∑log(p(w))是对所有单词取log(直接相乘一般都转化成指数和对数的计算形式),N的测试集的单词数量(不排重)
回到正题,知道了