scikit-learn - 为什么Sklearn LDA主题模型总是建议(选择)主题最少的主题模型?

标签 scikit-learn python-3.7 lda topic-modeling gridsearchcv

我正在对文本数据(大约 4000 篇新闻文章)进行主题建模。为此,我使用 Sklearn LDA 模型。在执行此操作时,我使用 GridSearchCV 选择最佳模型。然而,在几乎所有情况下,GridSearchCV 都会建议最少的主题作为最佳模型。

例如1:

# Define Search Param
search_params = {'n_components': [5, 7, 10, 12, 15, 18, 20], 'learning_decay': [.5, .7, .9]}

# Init the Model
lda = LatentDirichletAllocation()

# Init Grid Search Class
model = GridSearchCV(lda, param_grid=search_params)

# Do the Grid Search
model.fit(data_vectorized)

建议的最佳模型:5

示例 2:

# Define Search Param
search_params = {'n_components': [3, 5, 7, 10, 12, 15, 18], 'learning_decay': [.5, .7, .9]}

# Init the Model
lda = LatentDirichletAllocation()

# Init Grid Search Class
model = GridSearchCV(lda, param_grid=search_params)

# Do the Grid Search
model.fit(data_vectorized)

建议的最佳模型:3

这是正常现象还是只发生在我身上?

可能的原因是什么?

完整代码很长,这就是为什么我不在这里给出它,但如果需要,我可以提供它。

提前致谢。

最佳答案

我想说的是,对于您的数据来说,三个主题比五个主题是更好的主题分布。您没有给模型机会来测试三个主题在第一组测试中是否有任何好处。所以你得到的答案是选项 [5, 7, 10, 12, 15, 18, 20],那么 5 是最好的。

关于scikit-learn - 为什么Sklearn LDA主题模型总是建议(选择)主题最少的主题模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60735315/

相关文章:

text-mining - gensim 的 get_document_topics 方法返回的概率不等于 1

scikit-learn - scikit-learn TSNE 中的 random_state 参数是什么?

python - 是否可以屏蔽 scikit 学习管道中的异常值?

django - mysqlclient在mac os上的python3中安装

python - 如何将简单的 png 图片添加到我的 Bokeh 网站?

python-3.x - 计算两个向量之间的相似度

python - 如何使用 sklearn(卡方或 ANOVA)去除冗余特征

python - 如何修复 OneClassSVM 和 GridSearchCV 的错误 "For multi-metric scoring"

python - 如何使用名为 `async` 的现有模块升级到 Python 3.7 ?

apache-spark - 在理解 MLlib 中的 LDA 主题模型时遇到麻烦