【问题标题】:Memory issue while running ARIMA model运行 ARIMA 模型时出现内存问题
【发布时间】:2022-01-16 02:01:11
【问题描述】:

我正在尝试运行我的 ARIMA 模型并收到以下错误:-

MemoryError: Unable to allocate 52.4 GiB for an array with shape (83873, 83873) and data type 
float64

我的 python/anaconda 安装在 C 驱动器中,并且有大约 110GB 的可用空间,但仍然出现此错误。我该如何解决这个问题?

下面是我的代码:-

from statsmodels.tsa.arima_model import ARIMA
model=ARIMA(df['Sales'],order=(1,0,1))
model_fit=model.fit()

我尝试将数据框分割为仅 1 年的值,但仍然存在问题。

Anaconda 版本是 3.8- 64 位。

我的数据框看起来像这样-

它有大约 83,873 行。

【问题讨论】:

  • 您正在尝试将 52gb 分配到内存中,而不是您的硬盘中...您可以分享 DataFrame 的示例吗?
  • 我假设您将一列添加为一行,因此您现在的列数与行数一样多,这使您的数据框太大。请在训练模型之前分享您的数据样本。
  • 我已经提供了数据框的快照。
  • @ArneDecker 你是在建议我在不同年份有不同的专栏吗? (年份范围为 1964-1969)
  • "array with shape (83873, 83873)" 表示你有 83873 行和 83873 列。您的数据应该只有一列,不知何故它有大约 84k,这可能是 ARIMA 在训练期间需要这么多内存的原因。当您错误地将列添加为行时,可能会发生这种情况。这就是为什么我想知道您如何预处理/转换您的数据。

标签: python memory time-series arima


【解决方案1】:

我进行了枢轴转换,它解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-22
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多