【发布时间】:2020-09-09 22:22:06
【问题描述】:
我有大量数据集(确切地说是 26,214,400 个)我想对其执行线性回归,即 26,214,400 个数据集中的每一个都由 n x 值和 n y 值组成,我想要找到y = m * x + b。对于任何一组点,我都可以使用sklearn 或numpy.linalg.lstsq,例如:
A = np.vstack([x, np.ones(len(x))]).T
m, b = np.linalg.lstsq(A, y, rcond=None)[0]
有没有办法设置矩阵,这样我就可以避免 python 循环遍历 26,214,400 个项目?还是我必须使用循环并且使用 Numba 之类的东西会更好?
【问题讨论】:
-
26,214,400个集合中的所有x值都一样吗?
-
@amazon-ex,不,很遗憾没有
-
如果内存限制不是问题,我想您可以将由 x 数据和 1 组成的矩阵堆叠成一个(巨大的)块对角矩阵,并将您的 y 数据堆叠成一个向量,然后求解得到的线性方程。现在用一些虚拟数据测试它,如果它有效,我会回来:)
标签: python numpy regression