You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用极限机器学习(Extreme Machine Learning)实现未来12个月时序预测

实现2023年12个月时间序列预测的解决方案

当前你的代码仅能对已有测试集做滑动窗口单步预测,要生成2023年未来12个月的预测,核心是递归式多步预测——用模型输出的预测值作为下一次预测的输入,循环迭代生成未来数据。具体步骤如下:

1. 准备初始预测窗口

首先用训练集的统计量对全量数据做标准化,再取最后m个点作为初始输入窗口:

# 用训练集的均值和标准差对全量数据做标准化
data_scaled = (data - mean_train) / sd_train
# 取最后m个标准化后的数据点作为初始窗口(确保格式与训练输入一致)
current_window = data_scaled[-m:].flatten()

2. 递归迭代生成12个月预测

循环12次,每次预测一个时间步的值,然后更新输入窗口(移除最旧的点,加入新预测的点):

# 存储标准化后的预测值
future_preds_scaled = []
# 循环预测12次
for _ in range(12):
    # 将窗口转为模型要求的输入形状(与训练时X_train的形状匹配:(1, m))
    X_future = current_window.reshape(1, -1)
    # 调用现有predict函数得到标准化的预测值
    pred_scaled = predict(X_future)[0][0]
    # 保存当前预测值
    future_preds_scaled.append(pred_scaled)
    # 更新窗口:移除第一个元素,添加新预测值
    current_window = np.append(current_window[1:], pred_scaled)

3. 反标准化得到真实预测值

将标准化的预测值转换为实际业务数值:

# 用训练集的均值和标准差反标准化
future_preds = np.array(future_preds_scaled) * sd_train + mean_train

注意事项

  • 输入形状匹配:确保X_future的形状与训练时X_train的形状一致(比如你的X_train是(n_samples, m),所以要转成(1, m))
  • 误差累积问题:递归预测会逐步累积误差,如果序列波动较大,后期预测误差可能会增大。若要优化,可考虑直接多步预测(训练模型一次性输出12步结果),但实现复杂度更高
  • 窗口含义确认:确认m=14代表的时间步长度(比如14天/14个月),确保初始窗口和迭代逻辑与数据频率匹配

内容的提问来源于stack exchange,提问作者NguyenNguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:02:34