如何在seededlda的textmodel_lda中实现可复现结果?
解决seededlda包LDA模型结果无法复现的问题
seededlda包的随机数生成依赖C++底层实现,和R基础包的set.seed()不兼容,所以用后者设置种子无法控制模型的随机状态。要实现结果复现,需要使用包内置的专用种子设置函数:
- 使用
seededlda::set.seed_rng()函数设置随机种子,该函数专门控制包内C++随机数生成器的初始化状态。
修改后的示例代码:
library(seededlda) # 设置seededlda专用随机种子 set.seed_rng(42) lda_seq <- textmodel_lda(dfmt, k = 5, gamma = 0.5, batch_size = 0.01, auto_iter = TRUE, verbose = FALSE) terms(lda_seq)
每次运行前调用这个函数并传入相同的种子值,就能得到完全一致的模型结果。
内容的提问来源于stack exchange,提问作者DanD
相关产品推荐
相关产品推荐

