- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 sklearn 的 NMF 和 LDA 子模块来分析未标记的文本。我阅读了文档,但不确定这些模块(NMF 和 LDA)中的变换函数是否与 R 的主题模型中的后验函数相同(请参阅 Predicting LDA topics for new data)。基本上,我正在寻找一个函数,它可以让我使用在训练集数据上训练的模型来预测测试集中的主题。我预测了整个数据集的主题。然后我将数据分成训练集和测试集,在训练集上训练模型并使用该模型转换测试集。虽然预计我不会得到相同的结果,但比较这两个运行主题并不能向我保证转换函数与 R 的包具有相同的功能。非常感谢您的回复。
谢谢
最佳答案
在 LatentDirichletAllocation
模型上调用 transform
会返回一个未规范化的文档主题分布。要获得适当的概率,您可以简单地将结果归一化。这是一个例子:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import LatentDirichletAllocation
from sklearn.datasets import fetch_20newsgroups
import numpy as np
# grab a sample data set
dataset = fetch_20newsgroups(shuffle=True, remove=('headers', 'footers', 'quotes'))
train,test = dataset.data[:100], dataset.data[100:200]
# vectorizer the features
tf_vectorizer = TfidfVectorizer(max_features=25)
X_train = tf_vectorizer.fit_transform(train)
# train the model
lda = LatentDirichletAllocation(n_topics=5)
lda.fit(X_train)
# predict topics for test data
# unnormalized doc-topic distribution
X_test = tf_vectorizer.transform(test)
doc_topic_dist_unnormalized = np.matrix(lda.transform(X_test))
# normalize the distribution (only needed if you want to work with the probabilities)
doc_topic_dist = doc_topic_dist_unnormalized/doc_topic_dist_unnormalized.sum(axis=1)
要找到排名靠前的主题,您可以执行以下操作:
doc_topic_dist.argmax(axis=1)
关于python - sklearn Latent Dirichlet 分配变换 v. Fittransform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597075/
我需要一个 Dirichlet 分布并且我正在使用 numpy.random.dirichlet。当我根据 Dirichlet PDF 公式给出 alpha=[1,1,1,1] 时,它应该产生一个统一
我想知道是否有人知道一个Python包,它实现了MLE来估计狄利克雷分布的参数。 最佳答案 Eric Suh 有一个包裹 here 。 $ pip install git+https://github
我想设置 fipy 来求解具有正弦边界的一维扩散平流方程。 我最终得到了以下代码: from fipy import * import numpy as np import matplotlib.py
首先,为了以防万一,我将解释如何表示要运行 LDA 模型的文档。首先,我进行一些预处理,以获得每个人所有文档中最重要的术语,然后获得所有最重要单词的并集。 val text = groupedByP
我想用tensorflow实现LDA作为实践,我认为tensorflow版本可能有以下优点: 快。如果我可以使用内置的操作来表达采样过程。 易于并行化。许多操作已经通过并行化优化实现,因此这个 lda
我正在使用 LDA 算法将许多文档聚类到不同的主题中。 LDA算法需要一个输入参数:主题数量。我如何确定这一点? 我正在使用路透社语料库来对我的解决方案进行基准测试。路透社语料库已准备好主题编号。对路
我正在尝试计算积分 sin(x)/x , x = [0,inf] 我做了以下事情: import math from scipy.integrate import quad t = float("in
我有一个函数可以计算狄利克雷分布的条件(第 k 个 alpha)对数似然。我用 Cython 编写并编译了它,但我的代码调用了大约 12M 次,这似乎是瓶颈,所以我希望加快速度。 cimport nu
我在文档语料库上使用了 LDA,并找到了一些主题。我的代码的输出是两个包含概率的矩阵。一个文档主题概率和另一个词主题概率。但我实际上不知道如何使用这些结果来预测新文档的主题。我正在使用吉布斯采样。有谁
我正在努力实现 Dirichlet 变量的集中因子依赖于另一个变量的模型。 情况如下: 系统因组件故障而失败(共有三个组件,每次测试/观察只有一个组件失败)。 组件发生故障的概率取决于温度。 这是该情
关于 numpy page他们给出了例子 s = np.random.dirichlet((10, 5, 3), 20) 一切都很好,很棒;但是,如果您想从 alpha 的二维数组中生成随机样本怎么办
我在一组文档上使用 Gensim HDP 模块。 >>> hdp = models.HdpModel(corpusB, id2word=dictionaryB) >>> topics = hdp.pr
我正在使用 sklearn 的 NMF 和 LDA 子模块来分析未标记的文本。我阅读了文档,但不确定这些模块(NMF 和 LDA)中的变换函数是否与 R 的主题模型中的后验函数相同(请参阅 Predi
是否可以使用 LDA 在 gensim 中对给定的一组输入进行聚类?我该怎么做? 最佳答案 LDA 生成语料库中文档的低维表示。对于这种低 d 表示,您可以应用聚类算法,例如k-均值。由于每个轴对应一
我正在使用 gensim 训练我的 ldamodel,并使用像这样的测试语料库进行预测 ldamodel[doc_term_matrix_test],它工作得很好但是我不明白预测实际上是如何使用经过训
在 being unsuccessful in using decorators 之后为了定义“指数随机变量的对数”的随机对象,我决定使用 pymc.stochastic_from_dist 为这个新
我正在尝试为计算域的四个边求解具有 Dirichlet 边界条件的 Poison 方程。众所周知,我应该使用 FFTW_RODFT00 来满足条件。但是,结果不正确。你能帮帮我吗? #include
我现在正在通过 LDA(Latent Dirichlet Allocation)主题建模方法来帮助从一组文档中提取主题。据我从下面的链接中了解到,这是一种无监督学习方法,可以使用提取的主题对每个文档进
我正在寻找一个多变量 GMM 的 C++ 实现,它使用基于 Gibbs 采样的方法来拟合/分类(而不是通常的基于 EM),以便能够充分利用先验信息并添加在限制条件下。通常称为狄利克雷过程高斯混合模型或
我对“使用 Dirichlet 过程作为集群数量的先验分布的无限混合模型”的理解是,集群的数量由数据决定,因为它们会收敛到一定数量的集群。 此R 实现 https://github.com/jacob
我是一名优秀的程序员,十分优秀!