如何在 Python 中调整 gensim `LdaMulticore` 的参数

How to tune the parameters for gensim `LdaMulticore` in Python

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

  1. chunksize 每个训练块中要使用的文档数。
    ->是不是决定一次分析(训练)多少文档?
    改变 chunksize 数字会产生明显不同的结果吗?还是只对 运行 时间有影响?

2.alphaetadecay
->我一直在看解释,但完全看不懂这些。
有人可以给我一些直观的解释吗?about/when我需要调整这些吗?

3.iteration
推断语料库的主题分布时语料库的最大迭代次数。
->我设置成n的时候好像Python遍历了整个语料库的n次。所以数字越大,分析的数据越多,但需要的时间越长。

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

我想知道你是否看到 ? There I provide some explanation regarding chunksize and alpha. This blog post 有实用的技巧,也可以提供帮助。

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

alphaetadecay - 这些与 LDA 算法严格相关,没有“直观的解释”,除非您掌握了需要一些知识的算法了解贝叶斯方法,尤其是 Expectation Maximization

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

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

时很有用