问题标签 [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 投票
2 回答
1387 浏览

matlab - MATLAB nnmf() - 大型术语文档矩阵 - 内存和速度问题

我有一个很大的术语文档矩阵,想使用 matlab 提供的非负矩阵分解函数。问题是在第 1 次迭代之后,内存使用率迅速上升并达到顶峰(我的系统有 6GB),另一方面,CPU 使用率水平变得非常低(大约 1%-5%)。整个系统的行为就像它已经崩溃一样,只有等待很长时间才能完成第二次迭代。(请注意,要获得好的结果需要更多的迭代)。

问题:

如果有人对此有任何经验,或者使用比我更大的矩阵运行 nnmf(),我真的很想知道他/她实际上是如何克服上述问题的。

另外:我用较小的矩阵(大约 7000x1800)完成了这个,没有问题。我使用稀疏矩阵是因为术语文档矩阵有很多零元素,这有助于减少需要存储的空间。例如,在我的情况下,术语文档矩阵具有14608 * 18828 = 275039424元素和sum(sum(spa~=0)) = 1312582非零元素:

0 投票
1 回答
4071 浏览

python - 是否有好的库可以快速进行非负矩阵分解(NMF)?

我有一个稀疏矩阵,其形状为570000*3000。我试过nima做 NMF(使用默认的 nmf 方法,并设置max_iter为 65)。但是,我发现 nimfa 非常慢。有没有人使用更快的库来做 NMF?

0 投票
2 回答
3044 浏览

scikit-learn - 如何正确使用 Pipleline 和 MinMaxScaler + NMF 来预测数据?

这是一个非常小的 sklearn 片段:

我会收到这个错误:

根据这个问题: Scaling test data to 0 and 1 using MinMaxScaler

我知道这是因为

这是因为我的测试数据中的最小值低于训练数据,其中 min max scaler 是合适的

但我想知道,这是一个错误吗?MinMaxScaler(所有缩放器)似乎应该在我进行预测之前应用,它不应该依赖于以前拟合的训练数据,对吗?

或者我怎样才能正确地使用带有管道的预处理缩放器?

谢谢。

0 投票
2 回答
229 浏览

python - 使用保存的 W 矩阵应用矩阵分解进行分类

我正在对 tf-idf 输入执行 NMF 分解以执行主题分析。

这将返回W,一个由主题到术语分配的模型定义和H,一个文档到主题分配矩阵

到目前为止一切顺利,我可以使用 H 根据它们通过词频与主题列表的关联对文档进行分类,而主题列表又基于它们与词频的关联。

我想将主题术语关联保存到磁盘,以便稍后重新应用它们 - 并采用此处描述的方法 [ https://stackoverflow.com/questions/8955448]来存储 W 的稀疏矩阵表示.

所以我现在想做的是执行相同的过程,只修复主题定义矩阵 W。

在文档中,我似乎可以在调用参数中设置 W 类似的内容:

我已经尝试过了,但它似乎不起作用。

我已经通过使用不同大小的词汇表编译 W 矩阵进行了测试,然后将其输入到applyModel函数中,结果矩阵的形状应该由 W 模型定义(或者我应该说,这就是我想要的),但事实并非如此。

这个问题的简短版本是:如何保存从矩阵分解生成的主题模型,以便我可以使用它来分类与最初生成它的文档集不同的文档集?

换句话说,如果V = WH ,那么在给定VW的情况下,我如何返回H

0 投票
3 回答
275 浏览

r - 如何在 R 中查看 NMF 算法的源代码?

我使用 R 很新,我必须编写一个新的 NMF 算法,以便在调用method函数时用作参数nmf()

作为一种开始,我想查看内置算法的源代码为 brunet、KL、lee,但我找不到它。有人能帮助我吗?

0 投票
2 回答
1511 浏览

r - R NMF 包:如何提取样本分类?

在 NMF R 包中,可以使用consensusmap() 来可视化输出。这些图显示了哪些样本属于“共识”轨道中的哪些集群。

我想提取这个样本分类,这样我得到一个这样的数据框:

在 ConsensusClusterPlus 包中,这很容易。您只需拉出 results$consensusClass。我找不到 NMF 包的类似解决方案。我试图查看原始绘图数据,但它太复杂而无法从中提取任何含义。

这里有一个问题的说明:我需要找出哪个“状态”在哪个“共识”之内。

在此处输入图像描述

0 投票
0 回答
409 浏览

probability - 在 Stan 或 PyMC3 中是否可以组合 2 个多项分布

我有 2 个不同的多项式分布,我想将它们相乘以得到一个矩阵。该矩阵与我观察到的数据相匹配。有没有办法使用 PyMC3 或 Stan 分解这些数据?有什么好的例子吗?这似乎类似于非负矩阵分解的贝叶斯版本。

0 投票
1 回答
510 浏览

python - IndexError:在 sklearn 中使用 NMF 越界

我正在尝试从数据集创建主题模型。该代码能够正确使用 NMF 从解析的数据中生成任务数量的主题,但是当语料库长度 = 20 时它会中断,如下所示

我仍然熟悉 sklearn 工具集,所以我接受这可能是我的一个简单的忽略,因为大部分代码都是从各种示例中录制的。

究竟是什么导致了这个索引错误,我该如何纠正它?

0 投票
1 回答
321 浏览

python - 如何在 Python 代码中使用 rpy2 将 R 函数作为参数传递

我正在尝试为出色的 NMF 包制作 Python 接口 - https://cran.r-project.org/web/packages/NMF/NMF.pdf(因为它比 Python 选项灵活得多)。到现在为止还挺好。

我想出了这样的事情:

它就像一个魅力。方法是我可以使用的可能算法的列表:

nmf算法()

[1] “深色” “KL” “李” “Frobenius” “偏移”

[6]“nsNMF”“ls-nmf”“pe-nmf”“siNMF”“snmf/r”

[11] "snmf/l"

其他可能性是使用自定义算法,如 NMF 文档中所述

我怎样才能重现这个使用rpy2

我试过类似的东西:

但它并没有创造魔法=(

NMF 算法 - 键“key=function (x, seed, scale.factor >= 1) 没有匹配条目

{

pca <- prcomp(t(x), retx = TRUE)

factorization.rank <- nbasis(种子)

猫(种子)

基础(种子)<- 绝对值(pca$rotation[, 1:factorization.rank])

coef(seed) <- t(abs(pca$x[, 1:factorization.rank]))/scale.factor

返回(种子)

}”在注册表中。

使用以下之一:'brunet'、'Frobenius'、'KL'、'lee'、'ls-nmf'、'.M#brunet'、'nsNMF'、'offset'、'pe-nmf'、'.R #brunet'、'.R#lee'、'.R#nsNMF'、'.R#offset'、'siNMF'、'.siNMF'、'snmf/l'、'snmf/r'。

警告.warn(x, RRuntimeWarning)

我想知道是否有人可以在这里帮助我?

0 投票
0 回答
247 浏览

r - 使用 R 中的库(NMF)在热图中重新排序树状图

我有一个像这样的数据框:

我可以使用以下方法从中生成树状图library(dendextend)

我想使用这个树状图clust对另一个数据框中的样本进行排序。此数据框具有相同的样本,如下所示:

test_df_extend我可以使用以下代码生成热图:

但是,当我尝试将树状图传递到热图clust中时,我在理解输出时遇到了问题。我可以获得重新排序的树状图,但不确定下面 1) 和 2) 之间的区别是什么意思。一个已Rowv指定,另一个已reorderfun随机指定w!?我想我不完全理解这些reorderfun论点,特别是 weight (w) 论点及其与Rowv. 谁能帮我解释一下?谢谢!

1)

2)