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分解。我认为这很合理。