首页 > 解决方案 > 为什么同一迭代的不同运行会产生不同的结果?

问题描述

我用 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)]

等等...

标签: pythonpandasloopsgensimlda

解决方案


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

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


推荐阅读