我正在使用np.linalg.lstsq
来计算多元线性回归。我的数据集很大:有20,000个独立变量(X)和1个因变量(Y)。每个独立变量有10,000个数据。像这样:
X1 X2 X3.. X20,000 Y
data1 -> 10 1.8 1 1 3
data2 -> 20 2.3 200 206 5
.. .. .. .. ..
data10,000-> 300 2398 878 989 998
使用regression coefficient
计算np.linalg.lstsq
需要花费大量时间(20-30分钟)。任何人都可以根据计算时间告诉我一些更好的解决方案吗?
答案 0 :(得分:0)
花费的时间似乎遵循n**2.8
。您可以通过减少数据点数来提高速度。
如果您将数据下采样到只有一千行,则可以在几秒钟内完成计算。然后,您可以使用不同的随机样本重复分析。
为了合并结果,您有以下几种选择:
最佳选择取决于您需要多少准确度以及数据的性质。如果您只需要对中等噪声进行总估计,那么单个下采样应该可行。请记住,您已经非常认真,因此您的解决方案将会退化。
答案 1 :(得分:0)
使用PCA减少输入数据因子的数量。这很好,因为您可以指定要保留的差异的百分比。如果您能够摆脱90%以上的数据并保留大部分重要功能,我不会感到惊讶。
基本思路是将数据映射到轴的低维度集合,而不是20,000
对于现成的实施,请查看http://mdp-toolkit.sourceforge.net/。