我想计算一个巨大矩阵的Moore-Penrose 伪逆。理想情况下,我想在具有 2300 万行和 1000 列的矩阵上执行此操作,但如有必要,我可以通过仅在实验的一部分上运行将行数减少到 400 万。
显然,将矩阵加载到内存中并在其上运行 SVD 是行不通的。 维基百科指向Krylov 子空间方法并提到Arnoldi、Lanczos、共轭梯度、GMRES(广义最小残差)、BiCGSTAB(双共轭梯度稳定)、QMR(准最小残差)、TFQMR(无转置 QMR)和 MINRES(最小残差) ) 方法是最好的 Krylov 子空间方法之一。但我不知道从这里去哪里。计算如此庞大的矩阵的伪逆是否可行?如果是这样,使用哪些算法或软件库?我有一个可用的大型计算集群,因此欢迎使用并行方法。
这个答案指向 R 包biglm。那行得通吗?有人用过吗?我通常使用 Python 工作,但不介意使用其他语言和工具来完成这项特定任务。