scikit-learn - 我应该用 TF 还是 TF-IDF 拟合模型?

数据挖掘 机器学习 Python 主题模型 低密度脂蛋白
2021-10-13 22:18:11

我试图找出在 sklearn(Python)上拟合不同概率模型(如潜在狄利克雷分配、非负矩阵分解等)的最佳方法。

查看 sklearn 文档中的示例,我想知道为什么 LDA 模型适合 TF 数组,而 NMF 模型适合 TF-IDF 数组。这种选择有确切的理由吗?

这是示例:http ://scikit-learn.org/stable/auto_examples/applications/topics_extraction_with_nmf_lda.html#sphx-glr-auto-examples-applications-topics-extraction-with-nmf-lda-py

此外,任何关于如何找到适合我的模型的最佳参数(迭代次数、主题数......)的提示都被广泛接受。

先感谢您。

3个回答

在 LDA 的单词采样步骤中,单词计数用作多项式分布的权重。通过其 IDF 重新加权 TF 将不成比例地增加稀有词被采样的机会,使它们在主题分配中具有更强的影响力。但是稀有词出现在所有文档和主题中的概率同样低,因此会拉平每个文档的主题分布。

这也是为什么建议在运行 LDA 之前删除停用词的原因。

对于主题建模,我测量了主题内余弦距离,并用它来优化派生主题的数量。对于每个主题,测量成对余弦距离——>取平均值。然后对于所有主题,取所有向量之间(在一个主题内)的成对余弦距离的相应平均值的平均值。这将是您的指标。在迭代不同数量的主题时测量此值,您应该注意到肘曲线,它准确地告诉您在哪里减少主题数量。

重要的是要知道您可以通过使用网格搜索交叉验证来获取您正在寻找的参数的值。查看Scikit Learn上的文档,了解如何找到拟合模型的最佳参数并确定它是否有用。