崩壊したGibbsサンプリングを使用してLDAトピックモデルを最適化しようとしています。私は、トピックkの数を最適化するために、Rでldatuning
パッケージを使用している:Gibbsサンプリングとburnin + thinオプションを使用したLDAトピックモデルのPython実装?
controls_tm <- list(
burnin = 1000,
iter = 4000,
thin = 500,
nstart = 5,
seed = 0:4,
best = TRUE
)
num_cores <- max(parallel::detectCores() - 1, 1)
result <- FindTopicsNumber(my_dfm, topics = seq(40, 100, by = 5), metrics = c("Griffiths2004", "CaoJuan2009", "Arun2010", "Deveaud2014"), mc.cores = num_cores, control = controls_tm, verbose = TRUE)
これは、すべての罰金です。今では、同じ制御で与えられたkについてRでtopicmodels
を実行できますが、27コアのHPCクラスターであっても、モデルごとに実行するには8時間かかります。私はPerlxityを比較するために複数のモデルを実行する必要があるため、同じコントロールで実行できるLDAトピックモデルのPython実装を探しています。これはldatuning
を最適化するために使用したものと一致します。
Pythonでライブラリを見てきました.Gibbsを使用しており、モデルあたり1時間で<が必要です。しかし、私が知る限り、私はそれを燃え尽き、または薄いパラメータに渡すことはできません。
私もsklearn.decomposition.LatentDirichletAllocation
見てきましたが、それは代わりにギブスの変分ベイズを使用し、それがとにかくバーンインや薄い受け入れるように、それはまた見えません。同じことがgensim
(私はそれに精通していないと思う)に行く。
これはPythonには存在しませんか?あるいは、私はPythonでGibbsのサンプリングと必要なパラメータを使ってモデルを実行できるように回避策がありますか?ありがとう!
Pythonで 'method =" Gibss "'のようなパラメータがないことは確かですか? –
@HenryNavarro私はそうは思わないけど、Pythonでメソッドを選択できないのが奇妙だと分かっています。私は何かが足りないと思った。 http://scikit-learn.org/dev/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html – leslieh