Как правильно оптимизировать количество тем в Python lda с учетом средств логарифмического правдоподобия - PullRequest
0 голосов
/ 05 июня 2019

Я использую эту реализацию на Python lda для моделирования с использованием скрытого распределения Дирихле. Я создал экземпляры модели k-1 для другого количества тем из 2 ... k. Я пытаюсь определить оптимальное количество тем на основе среднего для ряда логарифмических правдоподобий. Итак, мой код выглядит так:

def optimal(models):
    ll = [m.loglikelihoods_ for m in models]
    means=[mean(vals) for vals in ll]
    print(means)
    val, idx = min([(val, idx) for (idx, val) in enumerate(means)])
    print('\n*OPTIMAL:{} topics, likelihood:{}'.format(idx+2, val))
    return models[idx]

Результат:

[-116437.19151950255, -116432.23207017583, -117125.84739129762, -115787.39060737971, -116028.07281838865, -116343.8361756514, -116698.45128717832, -116924.95163260077, -117215.84926933098]

*OPTIMAL:10 topics, likelihood:-117215.84926933098

Это правильный подход, или я должен максимизировать, а не минимизировать? Таким образом, код сказал бы:

max([(val, idx) for (idx, val) in enumerate(means)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...