我正在使用this LDA package代替R.特别是我正在尝试supervised latent dirichlet allocation (slda)。在链接包中,有一个mapply(function(x,y){
table(x[y])
},ee,dd)
函数。但令我困惑的是它要求alpha,eta和variance参数。据我了解,我认为这些参数在模型中是未知的。所以我的问题是,包的作者是否意味着这些是参数的初步猜测?如果是,那么似乎不是从运行slda.em
的结果中访问它们的方式。
除了编码算法中的额外EM步骤之外,是否有建议的方法来猜测这些参数的合理值?
答案 0 :(得分:4)
由于您正在尝试生成监督模型,因此典型的方法是使用交叉验证来确定模型参数。因此,您将一些数据作为测试集,在剩余数据上训练模型,并评估模型性能,重复k次。然后,您继续使用不同的模型参数重复,以确定哪种结果具有最佳模型性能。
在slda的特定情况下,我会运行demo(slda)
来查看作者的实现。运行演示时,您会看到他设置了alpha=1.0
,eta=0.1
和variance=0.25
。我建议使用这些作为起点,然后使用交叉验证来确定更好的参数,如果您需要提高模型性能。