2012-06-22 87 views
30

我已阅读LDA,并了解在输入文档集合时如何生成主题的数学。LDA主题建模 - 培训和测试

参考文献说,LDA是一种算法,只要给出一个文档集合(不需要监督),就可以发现该集合中的文档所表达的“主题”。因此,通过使用LDA算法和吉布斯采样器(或变分贝叶斯),我可以输入一组文档和输出,我可以得到主题。每个主题都是一组具有分配概率的术语。

我不明白的是,如果上述说法属实,那么为什么很多主题建模教程都会谈论将数据集分为训练集和测试集?

任何人都可以向我解释LDA如何用于训练模型的步骤(基本概念),然后可以使用它来分析另一个测试数据集?

+1

一个很好的问题! – KillBill

回答

30

将数据分解为训练集和测试集是评估学习算法性能的常用步骤。对于监督式学习来说,这更为明确,在训练集上训练模型,然后看看它在测试集上的分类与真实类别标签相匹配的程度。对于无监督学习,这种评估有点棘手。在主题建模的情况下,性能的常见衡量标准是perplexity。您在训练集上训练模型(如LDA),然后您会看到模型在测试集上“困惑”的程度。更具体地说,您可以衡量测试文档的单词分布由主题表示的单词分布表示得如何。

困惑对于模型或参数设置之间的相对比较是有利的,但它的数值并没有多大意义。我更喜欢使用以下,有些手册,评价过程,评价的主题模型:

  1. 检查主题:看各主题中的最高的可能性的话。他们听起来像是形成了一个有凝聚力的“话题”,或者只是一些随机的单词?
  2. 检查主题分配:从培训中拿出一些随机文档,并查看LDA分配给他们的主题。手动检查指定主题中的文档和主题词。它看起来像话题真正描述了文件实际上在谈论什么?

我意识到这个过程并不像人们喜欢的那样好,也不像定量,但说实话,主题模型的应用也很少是定量的。我建议根据您应用的问题评估您的主题模型。

祝你好运!

+0

非常感谢gregamis的解释。对于你的点数2)。主题分配到文档,你如何去分配主题到文档中的单词?你是否顺序浏览文档中的单词并查找主题中的同一单词并将该主题分配给该单词?那么如果你这样做,当一个单词出现在一个以上的话题中的概率很高时会发生什么?说一个非常简单的例子,'河岸'和'银行账户'。 – tan

+1

@tan:主题应该分配给文档而不是单词。也不是手动的。 –

+0

@gregamis:感谢您发布此信息。那么,我们是否使用监督LDA /任何其他主题建模技术来评估主题模型? – user1930402