我正在尝试运行一个大型(120k X 600k)和稀疏(非空值的0.1%)矩阵M的完整SVD。由于内存限制,我之前所有的尝试都失败了(使用SVDLIBC、Octave和R),我(几乎)放弃了探索其他方法来解决我的问题(LSA)。然而,目前,我只对对角矩阵S的特征值感兴趣,而对左/右奇异向量(矩阵U和V)不感兴趣。
有没有一种方法可以在不存储密集矩阵M和/或奇异向量矩阵U和V<em
给出了mxn矩阵A的左奇异向量与mxm A@A.T的关系的线性代数赋值。通过插入A = U S VT,我们可以证明A@A.T = U S**2 U.T,这意味着A@A.T的左奇异向量与A的奇异向量相同。但是,我不能用“蒙皮”来验证它。这是我的代码for _ in range(10):
A = np.random.randint(0, 100, (
我有一个巨大的稀疏矩阵,它的维数是3e5x3e5。我想计算它的奇异值,我需要所有的奇异值。scipy.sparse.linalg.svds的实现将不起作用,因为它需要分配与稀疏矩阵具有相同维度的完整矩阵。有没有一种方法可以有效地做到这一点?如果不是,我想按顺序获取奇异值,例如:
#A is the sparse matrix. l is how many singular values are calculated