gensim の models.ldamodel の再現性に関するメモ
gensim の ldamodel を使ってモデル化、推定するとどうにも毎回異なる結果になってしまう。
アルゴリズムにランダム性があるかなのかよくわからないが、素人なので調べようもない。
で、公式を見ていたらそれっぽいオプショナルパラメタがあり、そいつを設定したらとりあえず再現性を担保できるようになった(何回やっても同じ結果が得られるようになった)ので、方法として有用なのかどうかわからないがメモしておく。
random_state ({np.random.RandomState, int}, optional) – Either a randomState object or a seed to generate one. Useful for reproducibility.
[日本語訳 Google 翻訳]
random_state({np.random.RandomState、int}、オプション)–randomStateオブジェクトまたはシードを生成します。 再現性に役立ちます。
LdaModel(corpus=corpus, num_topics=NUM_TOPICS, id2word=dictionary, random_state=1)
とりあえず random_state を指定することで再現性は担保されたが、じゃあこれいくつなら良いの?ということになる。
つづく