使用gensimLDA时出现负困惑度问题 -相关文档
在gensim LDA中,负困惑度可以表示为相对熵,即KL散度。如果模型未收敛,会导致困惑度(perplexity)计算出现负值。出现负困惑度的原因可能是训练次数不够或数据集规模太小。
为了解决这个问题,可以增加训练次数或者增加数据集规模。此外,可以尝试进行以下几种优化:
可以通过增加迭代次数来训练模型。这可以通过在LDA模型上调用train()方法来实现:
model = LdaModel(corpus, id2word=dictionary, num_topics=num_topics) model.train(corpus, total_examples=model.corpus_count, epochs=model.iter+10)
在LDA模型中,alpha是控制主题分布的参数。可以尝试调整alpha参数的值来优化模型的性能。默认情况下,alpha为1.0 / num_topics。可以通过传递alpha参数来调整它的值:
model = LdaModel(corpus, id2word=dictionary, num_topics=num_topics, alpha='auto')
LDA模型的训练方法有两种:Online Variational Bayes (VB)和Expectation-Maximization (EM)。可以尝试切换训练方法来优化模型的性能。默认情况下,gensim使用VB算法。可以通过传递参数指定使用EM算法:
model = LdaModel(corpus, id2word=dictionary, num_topics=num_topics, update_every=1, chunksize=10000, passes=1, alpha='auto', eta='auto', decay=0.5, offset=1.0, eval_every=10, iterations=50, gamma_threshold=0