gpt4 book ai didi

python - 在 Python 中对稀疏矩阵执行分解

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:40 25 4
gpt4 key购买 nike

我正在尝试使用 sklearn 库在 Python 中的大型稀疏矩阵中分解码件中的信号(矩阵分解)。

我使用 scipy 的 scipy.sparse.csc_matrix 来构建我的数据矩阵。但是我无法执行任何分析,例如因子分析或独立成分分析。我唯一能做的就是使用 truncatedSVD 或 scipy 的 scipy.sparse.linalg.svds 并执行 PCA。

有谁知道在 python 中对稀疏矩阵执行 ICA 或 FA 的任何变通方法?任何帮助将非常感激!谢谢。

最佳答案

给定:

M = UΣV^t

SVD 的缺点是矩阵 U 和 V^t 是稠密矩阵。输入矩阵是稀疏的并不重要,U 和 T 将是密集的。此外,SVD 的计算复杂度为 O(n^2*m) 或 O(m^2*n),其中 n 是行数,m 是输入矩阵 M 中的列数。这取决于哪个最大.

值得一提的是,SVD 将为您提供最优解,如果您可以忍受较小的损失,则由 frobenius norm 计算得出。 ,您可能需要考虑使用 CUR algorithm .它将扩展到具有 O(n*m) 的更大数据集。

U = CUR^t

其中 C 和 R 现在是稀疏矩阵。

如果您想查看 python 实现,请查看 pymf .但是要小心那个确切的实现,因为在这个时间点,似乎有一个 open issue。与实现。

关于python - 在 Python 中对稀疏矩阵执行分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29930160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com