我正在R上使用this LDA package。具体来说,我正在尝试做supervised latent dirichlet allocation (slda)。在链接的程序包中,有一个slda.em
函数。但是,令我困惑的是它要求提供alpha,eta和方差参数。据我了解,我认为这些参数在模型中是未知的。所以我的问题是,软件包的作者是说这些是对这些参数的初步猜测吗?如果是,则似乎没有办法从运行slda.em
的结果访问它们。
除了对算法中的额外EM步骤进行编码之外,还有建议的方法来猜测这些参数的合理值吗?
最佳答案
由于您尝试生成监督模型,因此典型的方法是使用交叉验证来确定模型参数。因此,您保留一些数据作为测试集,在剩余数据上训练模型,并评估模型性能,重复k次。然后,您继续使用不同的模型参数重复进行操作,以确定哪种结果可获得最佳的模型性能。
在slda的特定情况下,我将运行demo(slda)
来查看作者的实现。运行演示时,您会看到他设置了alpha=1.0
,eta=0.1
和variance=0.25
。我建议以这些为起点,如果需要提高模型性能,请使用交叉验证来确定更好的参数。