所以我有这些巨大的矩阵 X 和 Y。X 和 Y 都有 1 亿行,X 有 10 列。我正在尝试用这些矩阵实现线性回归,我需要数量(X^T*X)^-1 * X^T * Y
。我怎样才能尽可能节省空间地计算它?
现在我有
X = readMatrix("fileX.txt")
Y = readMatrix("fileY.txt")
return (X.getT() * X).getI() * X.getT() * Y
这里有多少矩阵存储在内存中?是否同时存储两个以上的矩阵?有更好的方法吗?
我有大约 1.5 GB 的内存用于这个项目。如果我关闭所有其他程序,我可能可以将其拉伸到 2 或 2.5。理想情况下,该过程也会在很短的时间内运行,但内存限制更加严格。
我尝试过的另一种方法是将计算的中间步骤保存为文本文件,并在每一步后重新加载它们。但这很慢。