bin / mallet训练主题在每个实例中获得不同的结果

时间:2013-08-05 05:06:29

标签: machine-learning mallet

当我运行命令时 bin \ mallet train-topics --input input.tutorial.mallet --num-topics 40 --num-iterations 100 --optimize-interval 50 --optimize-burn-in 200 --output-state input.gz - output-topic-keys inputkeys.txt --output-doc-topics input-proportion.txt

我在运行命令的每个实例都得到不同的结果。

输出:

0 AJAY_DASARI 19 0.062051649928263994 39 0.03263988522238164 35 0.03263988522238164 33 0.03263988522238164 32 0.03263988522238164 23 0.03263988522238164 ............... 1 BALVINDERSINGH 21 0.06297779395704405 36 0.04805242082271569 22 0.04805242082271569 35 0.03312704768838733 32 0.03312704768838733 31 0.03312704768838733 30 0.03312704768838733 26 0.03312704768838733 24 0.03312704768838733 15 0.03312704768838733 13 ................

每次使用命令时如何获得相同的结果

3 个答案:

答案 0 :(得分:2)

训练模型时,使用选项--random-seed INTEGER(不同于0,否则使用时钟)来修复随机种子。它应该在多次运行中为您提供一致的结果。

此功能存在错误,在开发版本中为now fixed 请参阅MALLET's download page以构建最新版本。

答案 1 :(得分:0)

这是一种基于采样的概率/统计方法,因此每次运行命令时,您不应期望每行具有相同的分数和相同的单词...我也相信迭代次数有点小。尝试将其设置为1000。

希望它有所帮助。

答案 2 :(得分:0)

每次获得相同答案的唯一方法是相同地播种随机数生成器。

MALLET使用Gibbs的采样来推断主题模型的属性:这是马尔可夫链蒙特卡罗方法,该方法使用随机数生成器基于所有其他参数的当前值迭代地重新采样模型中的一些参数。在某些情况下,您可以在不同迭代中平均感兴趣的数量,以使其更稳定:但是,由于名称​​可识别性,主题本身无法在迭代中进行平均。请参阅the following Griffiths and Steyvers论文,特别是p5230上的脚注。