【问题标题】:How to tune the parameters for gensim `LdaMulticore` in Python如何在 Python 中调整 gensim `LdaMulticore` 的参数
【发布时间】:2021-03-08 21:23:48
【问题描述】:

我正在运行 gensim LdaMulticore 包,用于使用 Python 进行主题建模。 我试图理解LdaMulticore 中参数的含义,并找到了对参数的使用提供一些解释的网站。作为一个非专家,我很难直观地理解这些。我还参考了网站上的一些其他材料,但我想这个页面对每个参数都有相对完整的解释。
This page

  1. chunksize 每个训练块中使用的文档数。
    ->这是否意味着它决定了一次要分析(训练)多少个文档?
    更改chunksize 号码会产生明显不同的结果吗?还是只影响运行时间?

2.alpha, eta, decay
->我一直在阅读解释,但根本无法理解。
谁能给我一些直观的解释,说明这些是关于什么的/我什么时候需要调整这些?

3.迭代
在推断语料库的主题分布时,通过语料库的最大迭代次数。
->当我将它设置为 n 时,Python 似乎超过了整个语料库的 n 次。所以数字越大,分析的数据越多,但需要的时间越长。

4.随机状态
randomState 对象或生成对象的种子。对重现性有用。
->我见过人们通过放置一个随机数来设置它。但是什么是随机状态呢?

【问题讨论】:

    标签: python python-3.x nlp gensim lda


    【解决方案1】:

    我想知道你有没有看到this answer?在那里我提供了一些关于chunksizealpha 的解释。 This blog post 有实用技巧,也可以提供帮助。

    简而言之: chunksize - 在更新模型之前计算“预期”步骤时将多少文档加载到内存中。 Expectation Maximization 算法的每个“期望”步骤都会同时考虑此文档数量,并且仅在完成对“块”的计算后才更新矩阵。块的大小决定了进程的性能——一次内存中的文档越多——越好。过小的块也会影响数值准确性,尤其是对于大量文档。

    alphaetadecay - 这些都与 LDA 算法密切相关,除非你掌握了需要对贝叶斯方法有所了解的算法,否则没有“直观的解释”,Expectation Maximization特别是。

    iteration - 你不正确。数字越大,算法遍历整个文档集的次数就越多。所以没有“更多数据”。它只是您提供的语料库,只会迭代更多次。

    random_state - 这用作种子(如果您想完全重复训练过程,将种子设置为相同的值就足够了,并且您将在相同的数据上收到相同的模型 + 其他参数)。这在您关心reproducibility 时很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-29
      • 2021-04-24
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 2020-04-08
      • 2020-08-07
      • 2019-05-01
      相关资源
      最近更新 更多