问题标签 [nmf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31 浏览

octave - 八度音阶 nmf_bpas 错误:垂直尺寸不匹配(8x1 与 1x400)

我在八度音阶中遇到非负矩阵分解的问题。我试图从 Emg 数据中估计协同效应,但 octave 只能让我为两个或更多协同效应做这个,但不能为一个。我能够使用以下代码重现该问题。nmf_bpas 来自 octave-forge 的线性代数 pkg。

使用此输入,我收到以下错误:

当我如下定义 k>1 时,它可以工作

有了这个输入,它工作得很好,输出矩阵是 W2 (4x2) 和 H2 (2x20)。

同样的问题是,当我尝试使用 nnmf 的其他代码并为矩阵 (4x1) 和 (1x20) 指定输入数据 Winit 和 Hinit 时(例如:[W, H] = nmf_pg (V, Winit, Hinit, tol, timelimit ,最大))

在 matlab 中,它与 nnmf 函数一起使用。

我会很高兴得到帮助

0 投票
0 回答
44 浏览

python - sklearn NMF,每当我再次尝试时,推理权重值都会改变

每当我进行推理时 (nmf_model.transform(matrix)) 文档的每个主题的权重值都会更改。

我正在使用 NMF 进行主题建模。

我保存了这个模型并进行了推理。但是我试了两次,结果变了。

例如,

……

但是版本 2 与版本 1 的权重值不同,即使我在进行推理时也没有改变任何东西。

下面是我的推理代码

有谁知道它为什么会发生?我想修复它,以便在我再次尝试时可以获得相同的值。

0 投票
0 回答
126 浏览

python - 使用 NMF(非负矩阵分解)进行聚类

我正在研究交通数据以估计公共汽车的到达时间。我正在尝试使用 NMF 将路段(从第 I 站到下一站 I+1 的每个路段)聚类到 k 个集群中,其中每个集群具有基于交通拥堵和流量的相似旅行时间的路段。主矩阵 X 是 N M,其中 N 是路线中的段数,M 是白天的间隔次数,Xi,j 是链路 i 在间隔时间 j 的行程时间。我正在使用 Sklearn.decomposition.NMF 模型来查找 W H 矩阵,如下所示:

知道如何找到集群的数量以及与每个集群相关的段。

这是我得到的 X、W、H 矩阵:

0 投票
1 回答
50 浏览

python - 主题建模 - 我使用过 NMF 和 LDA,下一步是什么?

我在 Python 中使用 NMF 和 LDA 进行主题建模,我称之为 NMF 的良好结果和 LDA 的差结果。

我的数据是高度特定领域的,有很多独特/特定的词汇。

我正在尝试通过尝试其他一些方法来改善我的 NMF 输出。

任何人都可以推荐我应该研究/学习的东西吗?

谢谢

0 投票
0 回答
87 浏览

machine-learning - 我们可以用旧数据保存 lda 模型并将经过训练的模型用于新数据吗?

我在 Excel 表中有 100 个句子。我需要从这些句子中生成主题。为此我使用 LDA 模型。

我已经对模型进行了训练,对模型进行了拟合转换,并从 100 个句子中获得了最佳主题数量。

现在 wrt 最佳主题数量,我将模型保存(转储)在一个泡菜文件中。

保存模型的原因是当新句子到达时,我不需要再次重新训练模型。

示例:首先当训练 lda 模型时,我得到了 optimization_topic=5。我已经保存了模型 wrt optimization_topic。

现在,当我加载此模型并尝试将模型用于新句子(假设我有 50 个新句子)时,我无法这样做.. 我遇到了错误

有没有其他方法可以用旧数据训练模型,当新数据到达时,我可以使用旧的训练模型?

0 投票
0 回答
45 浏览

python - ValueError:数组不能包含 Python 中带有 NMF 和 TF-IDF 的 infs 或 NaN

我正在尝试通过NMF通过TF-IDF分解来估计主题。但是当我运行以下行时:

我收到了这个错误:

ValueError:数组不得包含 infs 或 NaNs

但是,当我在 Tf-IDF 中搜索 Nans 和 infs 时,找不到任何内容:

完整的代码是:

其中变量textos是一个没有任何空字符串的西班牙语文本数组。

这是完整的跟踪错误:

在此处输入图像描述

0 投票
0 回答
99 浏览

python-3.x - ValidationError: * 并非 doc_topic_dists 中的所有行(分布)在 NMF 中总和为 1

我正在处理 Reddit 数据并尝试使用 NMF 主题建模来查找主题。它工作正常并产生主题,但最后我尝试可视化模型时,它显示以下错误。

-------------------------------------------------- ------------------------- ValidationError Traceback(最近一次调用最后一次)在 6 个 warnings.filterwarnings('ignore') 7 get_ipython().run_line_magic( 'matplotlib', 'inline') ----> 8 panel = pyLDAvis.sklearn.prepare(nmf, doc_term_matrix, tfidf_vect, mds='mmds') 9 pyLDAvis.display(panel)

~/PycharmProjects/News/venv/lib/python3.7/site-packages/pyLDAvis/sklearn.py in prepare(lda_model, dtm, vectorizer, **kwargs) 93 """ 94 opts = fp.merge(_extract_data(lda_model , dtm, vectorizer), kwargs) ---> 95 return pyLDAvis.prepare(**opts)

~/PycharmProjects/News/venv/lib/python3.7/site-packages/pyLDAvis/_prepare.py in prepare(topic_term_dists, doc_topic_dists, doc_lengths, vocab, term_frequency, R, lambda_step, mds, n_jobs, plot_opts, sort_topics) 372 doc_lengths = _series_with_name(doc_lengths, 'doc_length') 373 vocab = _series_with_name(vocab, 'vocab') --> 374 _input_validate(topic_term_dists, doc_topic_dists, doc_lengths, vocab, term_frequency) 375 R = min(R, len(vocab)) 376

~/PycharmProjects/News/venv/lib/python3.7/site-packages/pyLDAvis/_prepare.py in _input_validate(*args) 63 res = _input_check(*args) 64 if res: ---> 65 raise ValidationError(' \n' + '\n'.join([' * ' + s for s in res])) 66 67

ValidationError: * 并非 doc_topic_dists 中的所有行(分布)总和为 1。

我的可视化代码是:

我在堆栈中寻找答案并找到了这个 [https://stackoverflow.com/questions/55712807/pyldavis-validation-error-on-trying-to-visualize-topics-with-btm] 并试图通过接受的答案来解决(简单地删除了几个单词的行[少于 3 个单词的行],但我无法解决错误。

谁能帮我解决这个问题?

提前致谢。

0 投票
0 回答
30 浏览

transform - 分解、NMF、TypeError:H 应该与 X 具有相同的 dtype。得到 H.dtype = float32

我尝试运行以下代码,但失败了。我该如何解决?顺便说一句,它在 Google Colab 上运行。我使用python 3.9。

错误如下

TypeError Traceback(最近一次通话最后)/var/folders/c_/xfclsffs46x_pr2y70z2qfsm0000gn/T/ipykernel_7259/2889088273.py in ----> 1 matrix1 = nmf.transform(damaged_faces) 2 matrix2 = nmf.components_ 3 show_faces(matrix1 @矩阵2)

/opt/homebrew/Caskroom/miniforge/base/envs/ps/lib/python3.9/site-packages/sklearn/decomposition/ nmf.py in transform(self, X) 1688 1689 with config_context(assume_finite=True): - > 1690 W,* = 自身。fit_transform(X, H=self.components , update_H=False) 1691 1692 返回 W

/opt/homebrew/Caskroom/miniforge/base/envs/ps/lib/python3.9/site-packages/sklearn/decomposition/_nmf.py in _fit_transform(self, X, y, W, H, update_H) 1595 1596
初始化或检查 W 和 H -> 1597 W, H = self._check_w_h(X, W, H, update_H) 1598 1599 # 缩放正则化项

/opt/homebrew/Caskroom/miniforge/base/envs/ps/lib/python3.9/site-packages/sklearn/decomposition/_nmf.py in _check_w_h(self, X, W, H, update_H) 1470
_check_init(H, (self._n_components, n_features), "NMF (input H)") 1471 if H.dtype != X.dtype: -> 1472 raise TypeError( 1473 "H 应该与 X 具有相同的 dtype。得到 H.dtype = { }.".format(1474 H.dtype

TypeError:H 应该与 X 具有相同的 dtype。得到 H.dtype = float32。

0 投票
0 回答
36 浏览

python - 使用 URD 对象进行 NMF 计算?

我正在使用我的 scRNA-seq 数据关注 URD 教程。(链接:https ://www.cell.com/cms/10.1016/j.neuron.2020.09.023/attachment/c0171ed1-7d01-4029-b0be-2dbba2aa5240/mmc2 )

在按照教程进行操作时,我发现我需要加载 NMF 结果,该结果是通过“将 urd_object@logupx.data 提供给用 Python 编写的外部 NMF 管道来计算的。我基本上想知道如何在 Python 中从我的 URD 对象计算 NMF用哪个包..

我需要帮助来搜索用于 NMF 计算的易于遵循的包。

先感谢您!

0 投票
0 回答
21 浏览

python - 如何使用 Packe LIBMF 做并行 NMF?

我最近发现了一个 Python 包libmf,它的信息可以在这里这里找到。这个包实现了 NMF 的并行算法,从而提高了 Sklearn 的速度。在给定潜在组件数量的情况下,我找不到我们从稀疏矩阵中获取W和获取的示例。我试过了HXn

ValueError: ('must be sparse array of shape (n, {0})', 3)但是该行有一个错误engine.fit(X)。Colab 笔记本在这里。你能对这个问题有所了解吗?