R监督潜在Dirichlet分配包

R监督潜在Dirichlet分配包,r,topic-modeling,dirichlet,latent-semantic-analysis,R,Topic Modeling,Dirichlet,Latent Semantic Analysis,我用的是R,特别是我想做的。在链接的包中,有一个slda.em函数。然而,让我困惑的是,它要求alpha、eta和方差参数。据我所知,我认为这些参数在模型中是未知的。所以我的问题是,这个包的作者是不是想说这些是对参数的初步猜测?如果是,则似乎没有办法从运行slda.em的结果中访问它们 除了在算法中编码额外的EM步骤外,是否有一种建议的方法来猜测这些参数的合理值?因为您试图生成一个监督模型,典型的方法是使用交叉验证来确定模型参数。因此,您将一些数据作为测试集,根据剩余的数据训练模型,并评估模型性

我用的是R,特别是我想做的。在链接的包中,有一个
slda.em
函数。然而,让我困惑的是,它要求alpha、eta和方差参数。据我所知,我认为这些参数在模型中是未知的。所以我的问题是,这个包的作者是不是想说这些是对参数的初步猜测?如果是,则似乎没有办法从运行
slda.em
的结果中访问它们


除了在算法中编码额外的EM步骤外,是否有一种建议的方法来猜测这些参数的合理值?

因为您试图生成一个监督模型,典型的方法是使用交叉验证来确定模型参数。因此,您将一些数据作为测试集,根据剩余的数据训练模型,并评估模型性能,重复k次。然后,继续使用不同的模型参数重复此操作,以确定哪种结果可以获得最佳的模型性能


在slda的特定情况下,我将运行
demo(slda)
,查看作者对它的实现。运行演示时,您将看到他设置了
alpha=1.0
eta=0.1
,以及
variance=0.25
。我建议将这些作为您的起点,然后使用交叉验证来确定更好的参数,如果您需要改进模型性能。

您是说上面引用的LDA包没有搜索alpha、eta和方差参数的选项(与链接文章中的EM算法不同)?按照您的建议进行交叉验证将非常缓慢,除非您对如何回收每个步骤的输出有建议。我猜模型中的“初始”参数可能会有所帮助?我对这个包不是很熟悉,但我没有看到任何关于为您查找参数的内容。这不是默认选项-您可以通过更改初始参数查看演示的结果看到-您最终会得到不同的结果。我不知道你所说的“回收每个步骤的输出”是什么意思,但如果有很多参数需要搜索,CV确实会很耗时。@AlexR。你能提供一个数据样本,以及关于你最终目标的更多细节吗?这将使提供示例代码解决方案变得更容易。R中至少有两个包可用于执行LDA。一个是由Bettina Grün和Kurt Hornik开发的主题模型包,另一个是由Jonathan Chang开发的lda,您提到过使用它。