安装

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

在 Pandas 上使用 StatsForecast

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

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

在 Ray 上执行

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

import ray
import logging
ray.init(logging_level=logging.ERROR)

series['unique_id'] = series['unique_id'].astype(str)
ctx = ray.data.context.DatasetContext.get_current()
ctx.use_streaming_executor = False
ray_series = ray.data.from_pandas(series).repartition(4)
sf.forecast(df=ray_series, h=horizon).take(5)