Искра Распределенная LAModel и LocalLDAModel
Я пытаюсь обучить тематическую модель для кластеризации и тематической связки документов. Мои обучающие коды показаны ниже, время итерации будет установлено как 20 по умолчанию. По умолчанию оптимизатором будет EM.
val ldaModel = new LDA().
setK(500).setOptimizer("em").run(corpus)))
затем я взял документ в своих учебных документах, чтобы проверить его темы, используя
val topicsA = ldaModel.topicDistributions.filter(x=>x._1 == 100)
во-вторых, я нахожу слова vec для этого документа и использую LocalLDAModel для прогнозирования его тем.
val topicsB = ldaModel.toLocal.topicDistribution(wordsVec)
но я получил 2 совершенно разных распределения тем по темам A и themesB..
Я как бы здесь потерялся, есть предложения?
И еще одна вещь, как выбрать оптимизатор между EM и Online? Похоже, если вам нужно добавить больше мини-пакетных данных позже, после того, как вы обучите свою модель, лучше ли будет Online и экономит ли память?
Спасибо!
1 ответ
Просто выбрасываю предположение, но возможно ли, что идентификаторы тем не сохраняются toLocal
? В DistributedLDAModel.topicsMatrix
это предупреждает
Нет никаких гарантий относительно порядка тем.
Так что, возможно, вы на самом деле получаете один и тот же дистрибутив в обоих направлениях, но он был изменен