При извлечении 45 тем из совокупности документов я получаю следующий результат при вызове метода LatentDirichletAllocation.transform
в scikit-learn с doc_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])
Похоже, что существует некий искусственный нижний предел около 0,01333 при распространении документации.Есть ли параметр для метода fit
, который можно установить, чтобы избежать этого нижнего предела?Я пытался увеличить max_iter
& max_doc_update_iter
и понизить mean_change_tol
, но ни один из них не дал никакого эффекта.Когда я устанавливаю doc_topic_prior
равным 0,3, я получаю аналогичные результаты, но с нижним пределом около 0,018.
Есть ли способ избежать или уменьшить этот нижний предел при распространении в формате документа?
Вот полный набор параметров модели для приведенных выше результатов:
{'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}