FugueBackend
源代码
FugueBackend
*用于分布式计算的 FugueBackend。源代码。
此类使用 Fugue 后端,能够在 Spark、Dask 和 Ray 上分发计算,无需任何重写。*
| 类型 | 默认值 | 详细信息 | |
|---|---|---|---|
| engine | 任意类型 | 无 | 选择 Spark, Dask 或 Ray。 | 
| conf | 任意类型 | 无 | 引擎配置。 | 
| transform_kwargs | 任意类型 | 
源代码
FugueBackend.forecast
*使用 FugueBackend 进行内存高效的 core.StatsForecast 预测。
此方法使用 Fugue 的 transform 函数,结合 core.StatsForecast 的 forecast 方法,高效地拟合 StatsForecast 模型列表。*
| 类型 | 详细信息 | |
|---|---|---|
| df | 任意DataFrame | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | 
| freq | 联合 | 数据的频率。必须是有效的 pandas 或 polars 偏移量别名,或一个整数。 | 
| models | 列表 | models.StatsForecast 实例化对象列表。 | 
| fallback_model | 可选 | 任意类型,可选 (默认=None) 如果模型失败时使用的模型。 仅适用于 forecast和cross_validation方法。 | 
| X_df | 可选 | 包含 ids、times 和未来 exogenous 的 DataFrame。 | 
| h | 整型 | 预测范围。 | 
| level | 可选 | 预测区间在 0 到 100 之间的置信水平。 | 
| fitted | 布尔型 | 存储样本内预测结果。 | 
| prediction_intervals | 可选 | 用于校准预测区间的配置 (一致性预测)。 | 
| id_col | 字符串 | 标识每个系列(时间序列)的列。 | 
| time_col | 字符串 | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | 字符串 | 包含目标值的列。 | 
| 返回值 | 任意类型 | 一个 DataFrame,其中包含 models列用于点预测,以及所有拟合模型的概率预测结果。 | 
源代码
FugueBackend.cross_validation
*使用 core.StatsForecast 和 FugueBackend 进行时间交叉验证。
此方法使用 Fugue 的 transform 函数,结合 core.StatsForecast 的 cross-validation 方法,通过多个训练窗口(链式或滚动方式)高效地拟合 StatsForecast 模型列表。
StatsForecast.models 的速度以及 Fugue 的分布式计算能力,使得克服这种评估技术的高计算成本成为可能。时间交叉验证通过增加测试长度和多样性,提供了更好的模型泛化能力度量。*
| 类型 | 详细信息 | |
|---|---|---|
| df | 任意DataFrame | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | 
| freq | 联合 | 数据的频率。必须是有效的 pandas 或 polars 偏移量别名,或一个整数。 | 
| models | 列表 | models.StatsForecast 实例化对象列表。 | 
| fallback_model | 可选 | 任意类型,可选 (默认=None) 如果模型失败时使用的模型。 仅适用于 forecast和cross_validation方法。 | 
| h | 整型 | 预测范围。 | 
| n_windows | 整型 | 用于交叉验证的窗口数量。 | 
| step_size | 整型 | 每个窗口之间的步长。 | 
| test_size | 整型 | 测试集大小的长度。如果传入此值,则设置 n_windows=None。 | 
| input_size | 整型 | 每个窗口的输入大小,如果非 None 则为滚动窗口。 | 
| level | 可选 | 预测区间在 0 到 100 之间的置信水平。 | 
| refit | 布尔型 | 是否为每个窗口重新拟合模型。 如果是整数,则每隔 refit个窗口训练模型。 | 
| fitted | 布尔型 | 存储样本内预测结果。 | 
| prediction_intervals | 可选 | 用于校准预测区间的配置 (一致性预测)。 | 
| id_col | 字符串 | 标识每个系列(时间序列)的列。 | 
| time_col | 字符串 | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | 字符串 | 包含目标值的列。 | 
| 返回值 | 任意类型 | 一个 DataFrame,其中包含 models列用于点预测,以及所有拟合模型的概率预测结果。 | 
Dask 分布式预测
此处我们提供一个示例,演示如何使用 Fugue 在 Dask 集群中执行代码,实现 StatsForecast 预测的分布式计算。
为此,我们使用 DaskExecutionEngine 实例化 FugueBackend 类。
我们只需像实例化通常的 StatsForecast 类一样创建该类。
分布式预测
为了实现极快的分布式预测,我们使用 FugueBackend 作为后端,其操作方式与原始的 StatsForecast.forecast 方法类似。
它接收一个 pandas.DataFrame 作为输入,包含 [unique_id,ds,y] 列以及外生变量;其中 ds(日期戳)列应为 Pandas 期望的格式。y 列必须是数字类型,表示我们希望预测的度量值。unique_id 在面板数据中唯一标识各个系列。
分布式交叉验证
为了实现极快的分布式时间交叉验证,我们使用 cross_validation 方法,其操作方式与原始的 StatsForecast.cross_validation 方法类似。

