我正在对文本数据(大约 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/