mcpField
A
algo-forecast-ensemble

algo-forecast-ensemble

github.com/asgard-ai-platform数据与数据库24338 次安装21 周前更新
代码仓库

关于 algo-forecast-ensemble

algo-forecast-ensemble 是组合多个模型预测结果的技能,侧重简单平均和验证。它适用于重视降低风险和提升稳健性的预测工作流。

主要功能

  1. 01对多样化预测进行简单平均
  2. 02按误差倒数加权
  3. 03使用元模型进行堆叠
  4. 04与单个模型结果对照验证
  5. 05报告各模型的贡献

适用场景

  1. 01组合不同类型模型的预测
  2. 02降低生产预测流程的风险
  3. 03比较集成预测与单模型误差

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/asgard-ai-platform/skills --skill algo-forecast-ensemble

安装后在 Claude Code 中输入/algo-forecast-ensemble确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
sample_scenario.md
references/
combination-survey.md
stacking.md

详细介绍

集成预测

概述

集成预测结合多个模型的预测结果,以降低方差并提高准确性。简单地对 3–5 个不同模型取平均,通常优于表现最好的单个模型。方法包括:等权平均、逆误差加权、使用元学习器进行堆叠。“预测组合难题”表明,简单平均很难被超越。

适用场景

触发条件:

  • 有多个表现相近的预测模型可用
  • 降低预测风险比追求最高准确性更重要
  • 构建能够稳健应对模型故障的生产流水线

不适用场景:

  • 某个模型明显优于其他所有模型时(直接使用该模型即可)
  • 计算预算只允许使用一个模型时

算法

IRON LAW: Simple Average Often Beats Complex Combination
The "forecast combination puzzle" (Stock & Watson, 2004): equal-weight
averaging of diverse models frequently outperforms sophisticated
weighting schemes. This is because weight estimation introduces noise
that offsets the theoretical gain. Start with simple average and only
move to weighted combination if you have abundant validation data.
阶段 1:输入验证

使用 3 个或更多不同的模型生成预测(例如,ARIMA、ETS、Prophet、基于 ML 的模型)。确保模型确实具有多样性(采用不同的假设和方法)。 **关卡:**至少有 3 个模型预测结果,且模型采用不同的方法。

阶段 2:核心算法

简单平均: ŷ_ensemble = (1/M) × Σ ŷ_m

逆误差加权: w_m = (1/MSE_m) / Σ(1/MSE_j),ŷ_ensemble = Σ w_m × ŷ_m

**堆叠:**训练元模型(线性回归),通过交叉验证的单个模型预测结果学习最优权重。

阶段 3:验证

在留出数据上比较集成模型与单个模型。集成模型应当:平均误差更低,且最大误差也更低(更加稳健)。 **关卡:**集成模型 RMSE ≤ 最佳单个模型 RMSE。

阶段 4:输出

返回集成预测结果及各组成模型的贡献。

输出格式

{
  "ensemble_forecast": [{"period": "2025-04", "forecast": 1200, "lower_95": 1050, "upper_95": 1350}],
  "model_forecasts": {"arima": 1180, "prophet": 1220, "ets": 1200},
  "weights": {"arima": 0.35, "prophet": 0.30, "ets": 0.35},
  "metadata": {"method": "inverse_error_weighted", "ensemble_rmse": 42, "best_individual_rmse": 48}
}

示例

输入/输出示例

**输入:**ARIMA 预测下个月销量为 1180,Prophet 为 1220,ETS 为 1200 **预期:**简单平均值 = 1200。如果 ARIMA 过去表现最佳(MSE 最低),加权平均值会向 1180 靠拢。

边界情况
输入预期原因
所有模型预测一致集成结果 = 单个模型预测达成共识,置信度高
模型预测差异很大集成结果 = 折中值,置信区间较宽不确定性高,标记以便审核
一个模型是异常值平均值会减弱异常值的影响体现集成模型的稳健性优势

注意事项

  • 多样性是关键:组合 5 个 ARIMA 变体作用不大。应结合截然不同的方法(统计方法 + ML + 主观判断)。
  • 权重不稳定性:根据过去数据估算的最优权重,未来未必仍然最优。简单平均可以避免这种不稳定性。
  • 误差之间的相关性:如果模型误差相关(这种情况很常见),集成带来的改进会有限。应寻找误差不相关的模型。
  • 置信区间:组合点预测很容易。要正确组合预测区间,则需要了解误差相关结构。
  • 过度设计风险:对于稳定且充分了解的序列,经过良好调优的单个模型可能优于集成模型。集成模型适用于不确定或波动较大的序列。

参考资料

  • 有关预测组合方法的综述,请参见 references/combination-survey.md
  • 有关堆叠元学习器的实现,请参见 references/stacking.md

评论

支持 Markdown