【问题标题】:R Supervised Latent Dirichlet Allocation PackageR监督潜在狄利克雷分配包
【发布时间】:2016-05-08 05:29:39
【问题描述】:

我将this LDA package 用于R。具体来说,我正在尝试使用supervised latent dirichlet allocation (slda)。在链接包中,有一个slda.em 函数。然而让我感到困惑的是,它要求提供 alpha、eta 和方差参数。据我了解,我认为这些参数在模型中是未知数。所以我的问题是,包的作者的意思是说这些是对参数的初步猜测吗?如果是,似乎没有办法从运行slda.em 的结果中访问它们。

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

【问题讨论】:

    标签: r topic-modeling dirichlet latent-semantic-analysis


    【解决方案1】:

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

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

    【讨论】:

    • 你是说上面引用的 LDA 包没有有搜索 alpha、eta 和方差参数的选项(与链接论文中的 EM 算法不同) ?除非您对如何回收每个步骤的输出有建议,否则按照您的建议进行交叉验证会非常慢。我猜也许模型中的“初始”参数可能对此有所帮助?
    • 我对这个包不是很熟悉,但是我没有看到任何关于它为你找到参数的提及。这不是默认选项 - 您可以通过更改初始参数来查看演示结果 - 您最终会得到不同的结果。我不确定您所说的“回收每个步骤的输出”是什么意思,但是如果要搜索很多参数,CV 确实会很耗时。
    • @AlexR。你能提供一个数据样本,以及关于你的最终目标的更多细节吗?这将使提供示例代码解决方案变得更加容易。 R 中至少有两个包可用于执行 LDA。一个是 Bettina Grün 和 Kurt Hornik 开发的主题模型包,第二个是您提到使用的 Jonathan Chang 开发的 lda。
    猜你喜欢
    • 2012-11-13
    • 2011-09-08
    • 2020-07-21
    • 2017-08-12
    • 2017-04-01
    • 1970-01-01
    • 2015-10-07
    • 2016-09-10
    • 1970-01-01
    相关资源
    最近更新 更多