在稀疏矩阵上的快速nmf 我正在寻找用于稀疏矩阵的快速NMF实现。 R NMF软件包由多种算法组成,在计算时间方面,没有一个算法给人留下深刻的印象。 nnlm :: nnmf()似乎是st ...

问题描述 投票:0回答:1
软件包由多种算法组成,在计算时间方面都没有给人留下深刻印象。

NNLM::nnmf()

目前在R中的最新技术似乎是在R中的最小二乘求解的最小二乘。但是,这种方法在非常大,非常稀疏的矩阵上很慢。

功能非常快,但这是由于以下事实:
method = "scd"

中只有正值用于wise和

loss = "mse"

的行计算。
有任何合理的实施方法可以在稀疏矩阵上求解NMF?
在r中等同于
rsparse::WRMF
?请参阅
这个问题

有各种工人功能,例如在r中

A

W
,没有一个超过
H
(用fortran编写)。我无法将这些功能中的任何一个编码为更快的NMF框架。
    
forgot我什至发布了这个问题,但是一年后...

i在rcppeigen中写了一个非常快速的NMF实现,请参见Cran上的

scikit-learn

r软件包。

fnnls
它的数量级至少要比tsnnls

nnls::nnls

的,并且为了进行比较,
RcppML
匹配
install.packages("RcppML") # for the development version devtools::install_github("zdebruine/RcppML") ?RcppML::nmf
SVD的运行时(尽管它是一个完全不同的算法)。
我已经成功地将我的实施应用于130万个单细胞,其中包含26000个基因的稀疏基质中,即1分钟内排名100分解。我认为这很合理。
    

r nmf
1个回答
8
投票

© www.soinside.com 2019 - 2025. All rights reserved.