Statistics 主题数未知的潜在Dirichlet分配

Statistics 主题数未知的潜在Dirichlet分配,statistics,machine-learning,artificial-intelligence,Statistics,Machine Learning,Artificial Intelligence,我正在寻找一种类似于LDA的技术,但不知道有多少种混合物是最佳的——有什么方法可以做到这一点吗?有两种方法可以做到这一点,一种是简单但简单的方法;另一个动机更好,但更复杂。从前者开始,我们可以简单地尝试一系列k个主题,并比较每个主题下观察到的数据的可能性。根据你的情况,你可能想惩罚更多的主题——或者你可以明确地将先验分布置于k之上,即以主观预期的集群数量为中心的正态分布。在任何情况下,您只需选择使可能性最大化的k 更具原则性的方法是使用贝叶斯非参数方法,尤其是在主题模型的情况下使用Dirichl

我正在寻找一种类似于LDA的技术,但不知道有多少种混合物是最佳的——有什么方法可以做到这一点吗?

有两种方法可以做到这一点,一种是简单但简单的方法;另一个动机更好,但更复杂。从前者开始,我们可以简单地尝试一系列k个主题,并比较每个主题下观察到的数据的可能性。根据你的情况,你可能想惩罚更多的主题——或者你可以明确地将先验分布置于k之上,即以主观预期的集群数量为中心的正态分布。在任何情况下,您只需选择使可能性最大化的k


更具原则性的方法是使用贝叶斯非参数方法,尤其是在主题模型的情况下使用Dirichlet过程。看一看。我相信有一个实现是可用的,尽管我没有对它做太多的研究。

正如拜伦所说,最简单的方法是比较k的不同值的可能性。然而,如果你仔细考虑一些保持数据的概率,也就是说不用于诱导模型,这自然会惩罚过度拟合,因此你不需要为K标准化。一种简单的方法是将您的培训数据拆分为一个培训集和一个开发集,并搜索一系列合理的k值,从培训集中归纳模型,然后根据归纳模型计算开发集概率

值得一提的是,精确计算LDA下的可能性是很难的,所以需要使用近似推理。深入讨论了这一点,但如果您使用标准的LDA包,我建议您使用mallet:他们应该已经有了这个功能

非参数版本确实是正确的方法,但非参数模型中的推理在计算上是昂贵的,因此我会犹豫是否继续,除非上述方法不起作用