r语言 - 如何设置吉布斯采样的参数



我正在对从几个Twitter帐户收集的推文数据集进行LDA主题建模,该数据集由预处理后的9582个文档和4144个术语组成。为了运行 LDA 函数,我必须定义参数值,以控制在运行模型时进行多少 Gibbs 采样绘制。

fitted_many <- lapply(sequ, function(k) LDA(dtmTopicModeling, k = k,
method = "Gibbs",control = list(burnin = burnin, iter = iter, keep = keep) ))

如何为上述函数定义burniniterkeep的值?

这里不需要匿名函数来lapply,因为你所做的只是将k值传递给LDA。相反,您需要类似以下内容:

fitted_many <- lapply(sequ,
LDA,
x = dtmTopicModeling,
method = "Gibbs",
control = list(burnin = burnin_value,
iter = iter_value,
keep = keep_value))

正如 Oriol 所提到的,lapply中的...参数将被传递给引用的函数。通过在lapply中直接引用LDA,您只需要确保命名x参数,因为k值是LDA的第二个参数。

另一方面,如果每个k值需要不同的burniniterkeep值,则需要传递多个不同的参数。有几种方法可以做到这一点,尽管我认为purrr::pmap是最直接的。

lapply的签名是lapply(X, FUN, ...)。这三个点表示 FUN 的可选参数。因此,您应该能够在函数后提供用逗号分隔的参数。

最新更新