2

我正在研究 R 中的 LDA,并试图评估我的模型对不同主题 k 值的困惑度,以了解困惑度的良好价值是什么。但是,我注意到随着 k 值的增加,困惑度似乎会上升(我相信它不应该)。我能够使用 AssociatedPress {topicmodels} 数据集重新创建此问题。这是代码:

data("AssociatedPress")
splitter_AP <- sample(1:nrow(AssociatedPress), (nrow(AssociatedPress))*0.25)
train_set_AP <- AssociatedPress[-splitter_AP, ]
valid_set_AP <- AssociatedPress[splitter_AP, ]

#Set parameters for Gibbs sampling
burnin <- 1000
iter <- 2000
seed <-list(2003,5,63,100001,765)
nstart <- 5
best <- TRUE
verbose <- 100

# Run LDA (I repeated the next step using values 10, 20 and 30 for k in this example)
ldaOut_AP10 <-LDA(train_set_AP,10, method="Gibbs", control=list(nstart=nstart, 
                                                                seed = seed, 
                                                                best = best, 
                                                                burnin = burnin, 
                                                                iter = iter, 
                                                               verbose=verbose))

perplexity(ldaOut_AP10, newdata=valid_set_AP, estimate_theta=FALSE) # returned 5544.164
perplexity(ldaOut_AP20, newdata=valid_set_AP, estimate_theta=FALSE) # returned 5755.367
perplexity(ldaOut_AP30, newdata=valid_set_AP, estimate_theta=FALSE) # returned 5808.529

这篇文章很好地表明了困惑应该下降而不是上升。我只是看不出我哪里错了。非常感谢任何帮助!

4

0 回答 0