Python statsmodels:内存

2024-10-02 10:19:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做向量自回归。时间序列有526个例子(天),972196列(矩阵中的每个条目都是一个浮点值)。在

我在使用Python的VAR模块时遇到内存错误:

user:~/path/autoregression$ python Mar12_autoregression.py
/user/pkgs/anaconda2/lib/python2.7/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.
  from pandas.core import datetools
/user/pkgs/anaconda2/lib/python2.7/site-packages/statsmodels/tsa/vector_ar/var_model.py:461: FutureWarning: `rcond` parameter will change to the default of machine precision times ``max(M, N)`` where M and N are the input matrix dimensions.
To use the future default and silence this warning we advise to pass `rcond=None`, to keep using the old, explicitly pass `rcond=-1`. 
  params = np.linalg.lstsq(z, y_sample)[0]
Traceback (most recent call last):
  File "Mar12_autoregression.py", line 124, in <module>
    var_autoregression(adj_orig, num_nodes)
  File "Mar12_autoregression.py", line 95, in var_autoregression
    lag_7_results = model.fit(7)
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/statsmodels/tsa/vector_ar/var_model.py", line 438, in fit
    return self._estimate_var(lags, trend=trend)
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/statsmodels/tsa/vector_ar/var_model.py", line 461, in _estimate_var
    params = np.linalg.lstsq(z, y_sample)[0]
  File "/user/pkgs/anaconda2/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 2004, in lstsq
    bstar = zeros((ldb, n_rhs), t)
MemoryError 

我的代码是:

^{pr2}$

关于如何在大数据上实现向量自回归有什么建议吗?在

编辑(回复评论):

972196的每一行都是一个平坦的邻接矩阵。这不是图像,而是图形。我在跟踪邻接矩阵是如何随时间变化的。在

小例子:假设图中有3个人,他们在526天内交换信息。对于每一天,如果人i和人j之间有通信,我在第i行j列的邻接矩阵中记录一个“1”

如果在第一天,人员0向人员1发送消息,而人员2向人员1发送消息,并且没有其他消息发送,则邻接矩阵如下所示:

0 1 0
0 0 0
0 1 0

如果在第二天,用户1向用户0发送消息,而用户1向用户2发送消息,则相邻矩阵如下所示:

0 0 0
1 0 1
0 0 0 

以此类推,持续526天。我要做的是将每个邻接矩阵展平为一个向量,以便能够将其输入到一个自回归例程中。也就是说,第一天应该是这样的:

0, 1, 0, 0, 0, 0, 0, 1, 0

第二天是这样的:

0, 0, 0, 1, 0, 1, 0, 0, 0

然后我以一种特殊的方式对这些二进制向量进行预处理,使值浮动而不是整数。为了争论,假设第1天变成:

0, 0.1111, 0, 0, 0, 0, 0, 0.1111, 0

第二天变成:

0, 0, 0, 0.2222, 0, 0.2222, 0, 0, 0

我尝试使用邻接矩阵的过去实例(经过预处理的扁平化向量)来预测下一个实例。在


Tags: theinpy消息varlibpackagesline

热门问题