我用np.linalg.lstsq
来计算多元线性回归。我的数据集很大:有20000个自变量(X)和1个因变量(Y)。每个自变量有10000个数据。像这样:
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
使用np.linalg.lstsq
计算regression coefficient
需要花费大量时间(20-30分钟)。有谁能根据计算时间告诉我一些更好的解决办法吗?在
使用PCA来减少输入数据因子的数量。这是很好的,因为您可以指定要保留的方差百分比。如果你能摆脱90%以上的数据并保留大部分重要功能,我不会感到惊讶。在
基本思想是将数据映射到低于20000维的轴上
对于现成的实现,请查看http://mdp-toolkit.sourceforge.net/。在
花费的时间似乎是
n**2.8
。可以通过减少数据点的数量来提高速度。在如果您将数据的采样减少到1000行,您可以在几秒钟内完成计算。然后可以用不同的随机样本重复分析。在
为了合并结果,您有几个选项:
最好的选择取决于您需要多大的准确性,以及数据的性质。如果你只需要一个中等噪声的粗略估计,一次下采样就可以了。请记住,你已经严重缺乏决心,所以你的解决方案将退化。在
相关问题 更多 >
编程相关推荐