machine-learning - scikit-learn 的潜在狄利克雷分配中文档主题分布的最小值
问题描述
从文档语料库中提取 45 个主题时,当调用 scikit-learn 的LatentDirichletAllocation.transform
方法时,我得到以下结果: adoc_topic_prior
为 0.1:
array([0.01333382, 0.01333628, 0.01333336, 0.01333731, 0.01333334,
0.0133361 , 0.01333334, 0.01333475, 0.01333334, 0.01333598,
0.01333431, 0.01333442, 0.01333334, 0.29496004, 0.01333456,
0.01333455, 0.01333603, 0.01333335, 0.01333393, 0.01333651,
0.01333511, 0.01333337, 0.01333518, 0.01333377, 0.01333434,
0.01333334, 0.01333354, 0.01333538, 0.13166403, 0.01333367,
0.01333333, 0.01333339, 0.01333356, 0.01333648, 0.01333397,
0.01333353, 0.01333342, 0.01333707, 0.01333337, 0.01333339,
0.01333451, 0.01333334, 0.01333352, 0.01333334, 0.01333338])
似乎在 doc-topic 分布上有一个人为的下限约为 0.01333。是否有fit
可以设置方法的参数来避免这个下限?我试过增加max_iter
&max_doc_update_iter
和降低mean_change_tol
,但没有任何效果。当我将 设置doc_topic_prior
为 0.3 时,我得到了类似的结果,但下限约为 0.018。
有没有办法避免或减少 doc-topic 分布的这个下限?
以下是上述结果的完整模型参数集:
{'batch_size': 128,
'doc_topic_prior': 0.1,
'evaluate_every': -1,
'learning_decay': 0.7,
'learning_method': 'batch',
'learning_offset': 10.0,
'max_doc_update_iter': 100,
'max_iter': 10,
'mean_change_tol': 0.001,
'n_components': 45,
'n_jobs': -1,
'n_topics': None,
'perp_tol': 0.1,
'random_state': None,
'topic_word_prior': 0.9,
'total_samples': 1000000.0,
'verbose': 0}
解决方案
推荐阅读
- c# - 如何将组成文件的原始位显示为位图图像?
- vb.net - 签出最新版本的存储库后,“/”应用程序中的 vb.net 服务器错误
- css - 如何使用 Grav 使部分导航出现
- mysql - MySQL - 如何确定按两列排序并允许平局的表的位置排名?
- gams-math - 我怎样才能制作这个套装?
- jquery - 捕获整个文档,包括动态文本区域值
- reactjs - 如何取消订阅 Firestore 中的集合更改
- unity3d - Unity Leap Motion 错误消息“输入轴未设置”
- r - 如何将单行文本写入Excel
- javascript - 来自浏览器源选项卡的 JavaScript 代码 - 美化