StatsForecast 通过 Fugue 在 Spark、Dask 和 Ray 之上工作。StatsForecast 将读取输入的 DataFrame 并使用相应的引擎。例如,如果输入是 Spark DataFrame,StatsForecast 将使用现有的 Spark 会话来运行预测。

安装

只要 Dask 已安装并配置好,StatsForecast 就能够使用它。如果在分布式 Dask 集群上执行,请确保所有 worker 都安装了 statsforecast 库。

StatsForecast 在 Pandas 上

在 Dask 上运行之前,建议先在较小的 Pandas 数据集上进行测试,以确保一切正常。此示例还有助于展示使用 Dask 时的微小差异。

from statsforecast.core import StatsForecast
from statsforecast.models import ( 
    AutoARIMA,
    AutoETS,
)
from statsforecast.utils import generate_series
n_series = 4
horizon = 7

series = generate_series(n_series)

sf = StatsForecast(
    models=[AutoETS(season_length=7)],
    freq='D',
)
sf.forecast(df=series, h=horizon).head()
unique_iddsAutoETS
002000-08-105.261609
102000-08-116.196357
202000-08-120.282309
302000-08-131.264195
402000-08-142.262453

在 Dask 上执行

要在 Dask 上分布式运行预测,只需传入一个 Dask DataFrame 即可。

import dask.dataframe as dd
series['unique_id'] = series['unique_id'].astype(str)
ddf = dd.from_pandas(series, npartitions=4)
sf.forecast(df=ddf, h=horizon).compute().head()
unique_iddsAutoETS
002000-08-10 00:00:005.261609
102000-08-11 00:00:006.196357
202000-08-12 00:00:000.282309
302000-08-13 00:00:001.264195
402000-08-14 00:00:002.262453