Минимальное значение распределения темы документа в распределении скрытого дирихле scikit-learn - PullRequest
0 голосов
/ 04 декабря 2018

При извлечении 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}

...