在Scikit学习的LDA实现中,“困惑度”(或“分数”)应该上升还是下降?

时间:2018-08-07 20:35:37

标签: python scikit-learn statistics lda log-likelihood

我想知道Scikit学习的LDA实现中的困惑和得分意味着什么。这些功能是模糊的。

至少,我需要知道当模型更好时这些值是增加还是减少。我已经搜索过,但是还不清楚。我感到困惑应该降低,但是我想就这些值如何升高或降低给出明确的答案。

文档中的困惑: http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation.perplexity

文档得分: http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html#sklearn.decomposition.LatentDirichletAllocation.score

LDA的源代码及其方法: https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/decomposition/online_lda.py

1 个答案:

答案 0 :(得分:1)

困惑是衡量模型对样本的预测程度的指标。

根据Blei,Ng和Jordan的Latent Dirichlet Allocation

  

[W] e计算了一个保留测试集的困惑度,以评估模型。习惯上在语言建模中使用的困惑性使测试数据的可能性单调降低,并且在代数上等同于每字平均几何可能性的倒数。较低的困惑度得分表示更好的泛化性能。

这可以从纸上的下图看到:

enter image description here

从本质上讲,由于困惑度等同于几何平均值的倒数,因此更低的困惑度意味着数据更多的可能性。因此,随着主题数量的增加,模型的困惑应降低。