Почему разные прогоны одной итерации дают разные результаты? - PullRequest
0 голосов
/ 29 сентября 2019

Я создал словарь с вероятностями по теме документа из модели LDA Gensim.Каждая итерация по словарю (даже с одним и тем же точным кодом) дает несколько разные значения.Почему это?(Обратите внимание, когда тот же код копируется и вставляется в другую ячейку Jupyter)

for r in doc_topics[:2]:
    print(r)

Первый раз производит:

[(5, 0.46771166), (8, 0.09964698), (12, 0.08084056), (55, 0.16801219), (58, 0.07947531), (97, 0.04642806)]
[(8, 0.7273078), (69, 0.06939292), (78, 0.062151615), (101, 0.119957164)]

Второй запуск производит:

[(5, 0.47463417), (8, 0.105600394), (12, 0.06531593), (55, 0.16066092), (58, 0.06662597), (97, 0.054465853)]
[(8, 0.7306167), (69, 0.054978732), (78, 0.06831972), (84, 0.025588958), (101, 0.10244013)]

Третий:

[(5, 0.4771855), (8, 0.09988891), (12, 0.088423), (55, 0.15682992), (58, 0.058175407), (97, 0.053951494)]
[(8, 0.75193375), (69, 0.059308972), (78, 0.0622621), (84, 0.020040851), (101, 0.09659243)]

И так далее ...

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Для достижения воспроизводимости необходимо указать аргумент random_state для конструктора LdaModel:

https://radimrehurek.com/gensim/models/ldamodel.html

0 голосов
/ 29 сентября 2019

Поскольку почти в каждом алгоритме ml есть небольшая случайность на этапах обучения и вывода.

Этот вопрос уже задавался ранее, поэтому в следующий раз вы сможете найти его в Google и быстро найти ответ (:

Модель LDA генерирует разные темы каждый раз, когда я тренируюсь в одном корпусе

...