为什么同一迭代的不同运行会产生不同的结果?

时间:2019-09-29 07:57:23

标签: python pandas loops gensim lda

我用Gensim LDA模型创建了具有文档主题概率的字典。字典上的每次迭代(即使使用相同的精确代码)也会产生稍有不同的值。为什么是这样? (请注意,将相同的代码复制并粘贴到另一个jupyter单元中)

for r in doc_topics[:2]:
    print(r)

第一次产生:

[(5, 0.46771166), (8, 0.09964698), (12, 0.08084056), (55, 0.16801219), (58, 0.07947531), (97, 0.04642806)]
[(8, 0.7273078), (69, 0.06939292), (78, 0.062151615), (101, 0.119957164)]

第二次运行产生:

[(5, 0.47463417), (8, 0.105600394), (12, 0.06531593), (55, 0.16066092), (58, 0.06662597), (97, 0.054465853)]
[(8, 0.7306167), (69, 0.054978732), (78, 0.06831972), (84, 0.025588958), (101, 0.10244013)]

第三:

[(5, 0.4771855), (8, 0.09988891), (12, 0.088423), (55, 0.15682992), (58, 0.058175407), (97, 0.053951494)]
[(8, 0.75193375), (69, 0.059308972), (78, 0.0622621), (84, 0.020040851), (101, 0.09659243)]

依此类推...

2 个答案:

答案 0 :(得分:0)

因为在几乎所有的ml算法中,位数训练和推理步骤中都存在一些随机性。

这个问题已经被问过了,所以下次您可以用谷歌搜索并快速找到答案(:

LDA model generates different topics everytime i train on the same corpus

答案 1 :(得分:0)

要实现可重复性,您需要为random_state构造函数指定LdaModel参数:

https://radimrehurek.com/gensim/models/ldamodel.html