Python: pmdarima, autoarima 不适用于大数据

Python: pmdarima, autoarima does not work with large data

我有一个数据框,每 15 分钟进行一次大约 80.000 次观察。季节性参数 m 假定为 96,因为该模式每 24 小时重复一次。 当我将这些信息插入我的 auto_arima 算法时,需要很长时间(几个小时)才能发出以下错误消息:

MemoryError: Unable to allocate 5.50 GiB for an array with shape (99, 99, 75361) and data type float64

我使用的代码:

stepwise_fit = auto_arima(df['Hges'], seasonal=True, m=96, stepwise=True, 
                          stationary=True, trace=True)
print(stepwise_fit.summary())

我尝试将其重采样为每小时值,以将数据量和 m 因子减少到 24,但我的计算机仍然无法计算结果。

在处理大数据时如何找到auto_arima的权重因子?

我不记得我读到这篇文章的确切来源,但是 auto.arima 和 pmdarima 都没有真正针对缩放进行优化,这可能解释了您面临的问题。

但是关于您的问题还有一些更重要的事情需要注意:以 15 分钟为间隔的 80K 数据点,ARIMA 可能不是您用例的最佳模型类型:

  • 根据数据的频率和密度,很可能存在多个 cycles/seasonal 模式,而 ARIMA 只能处理一个季节性成分。所以至少你应该尝试一个可以处理多个季节性的模型,比如 STS or Prophet (TBATS in R 也可以处理多个季节性,但它可能会遇到与 auto.arima 相同的问题,因为它在同一个包)。
  • 在 80K 个点和 15 分钟的测量间隔下,我假设您最有可能处理“物理”时间序列,它是传感器或其他一些 metering/monitoring 设备(电力负载、网络流量)的输出, ETC...)。这些类型的时间序列通常是 LSTM 或其他基于深度学习的模型而不是 ARIMA 的非常好的用例。

pmdarima 缩放比例不佳。您应该尝试 statsforecastautoarima。它使用 numba 编译为高效机器代码。