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



我正在对文本数据(大约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是最好的。

问题是您的数据集可能太小,因此模型无法深入了解其下主题。

最新更新