根據gensim3.8.3的原始碼,log_perplexity()
輸出的是perwordbound
,perwordbound
計算步驟如下:
先呼叫bound()
,通過乙個chunk的語料w
⃗\vec
w計算整個語料庫的對數似然值log
p(w⃗
)logp(\vec)
logp(w
)的下界,即eq[
logp
(w⃗)
]−eq
[log
q(w⃗
)]eq[logp(\vec)]-eq[logq(\vec)]
eq[log
p(w)
]−eq
[log
q(w)
] 。然後用log
p(w⃗
)logp(\vec)
logp(w
)的bound除以整個語料庫的大小n
,得出perwordbound
,作為log_perplexity()的返回值。
呼叫函式期間還會將2−p
erwo
rdbo
und2^
2−perw
ordb
ound
作為perplexity列印輸出,這個perplexity以2為底數,與:
d. blei, a. ng, and m. jordan. latent dirichlet allocation. journal of machine learning research,3:993–1022, january 2003
hoffman, blei, bach: online learning for latent dirichlet allocation, nips 2010.
這兩篇**定義的以e為底數的perplexity有所差別,但思想基本一致。
這裡的問答也有類似說明:
首先,log_perplexity()這個函式沒有對主題數目做歸一化,因此不同的topic數目不能直接比較:
傳送門:
其次,gensim包的作者radim現身回答說perplexity不是乙個好的評價topic質量的指標:
傳送門:
LDA主題模型評估方法 Perplexity
原文出處 在lda主題模型之後,需要對模型的好壞進行評估,以此依據,判斷改進的引數或者演算法的建模能力。blei先生在 latent dirichlet allocation 實驗中用的是perplexity值作為評判標準。一 perplexity定義 源於wiki perplexity是一種資訊理...
LDA主題模型評估方法 Perplexity
在lda主題模型之後,需要對模型的好壞進行評估,以此依據,判斷改進的引數或者 演算法的建模能力。blei先生在 latent dirichlet allocation 實驗中用的是perplexity值作為評判標準。一 perplexity定義 源於wiki perplexity是一種資訊理論的測量...
語言模型的評估與困惑度
提取碼 ekzm 訓練好乙個語言模型後,怎樣評估語言模型的好壞呢?可以使用困惑度 perplexity 困惑度越小,則語言模型越優。形式一 p p w p w1w 2.wn 1n pp w p w 1w 2.w n pp w p w1 w2 w n n1 上面的式子中w ww為一句話,w1w 2.w...