电价预测,10种深度学习模型+SHAP分析,TimeMixer效果碾压!

0 阅读7分钟

引言

电力市场价格受发电结构、负荷波动、天气条件等多重因素影响,呈现出强烈的非线性和周期性特征。准确预测电力价格对电力交易、调度优化和风险管理都具有重要意义。

本期以西班牙电力市场的真实数据为研究对象,横向对比了 10 种机器学习与深度学习模型的预测效果,并加入了SHAP可解释性分析。10种模型包括:

TimeMixer,PatchTST,iTransformer,ModernTCN,LSTM,GRU,CNN-LSTM,BiLSTM,Transformer,LightGBM


一、数据概况

项目使用公开数据集:

图片

该数据集包含西班牙 4 年的电力消耗、发电、价格和天气数据。用电和发电数据从 ENTSOE 获取,ENTSOE 是输电服务运营商(TSO)数据的公共门户。结算价格由西班牙 TSO 红色电气公司获得。

  • energy_dataset.csv:包含 2015—2018 年西班牙电力市场的小时级数据(约 35000 条),涵盖各类发电量(核电、燃气、水电、风电等)、负荷、日前价格预测及实际成交价格。

  • weather_features.csv:对应时段的气象数据,包括温度、气压、湿度、风速、降雨、云量等。

两份数据通过时间字段合并,最终得到一张融合了电力系统运行信息气象环境信息的宽表。


二、数据分析

在建模之前,小淘对数据进行了全面的探索性分析,输出了 20+ 张分析图,主要包括:

数据质量检查:绘制缺失值热力图,识别缺失模式,采用线性插值+前后填充的方式处理缺失值。

图片

价格分布与趋势:电力价格整体呈右偏分布,均值在 50 欧元/MWh 附近,存在少量极端高价和负价。从时间序列总览图可以观察到明显的年度趋势变化。

图片图片

周期性规律

  • 日内规律:价格在早高峰(8-10 时)和晚高峰(18-21 时)明显走高,凌晨 3-5 时最低。

  • 周规律:工作日价格显著高于周末,周一和周四通常是一周中价格最高的时段。

  • 季节规律:冬季(供暖需求)和夏季(制冷需求)价格偏高,春秋季相对平稳。图片

发电结构分析:核电提供稳定的基荷,燃气和燃煤发电随负荷波动调节,可再生能源(风电、光伏)的出力增加通常会压低电价。

相关性分析:与电价相关性最强的变量包括:日前价格预测、实际负荷、燃煤发电量、燃气发电量等;气象变量中温度和风速也有一定影响。

图片

时序分解:对价格序列进行 STL 分解,可以清晰地分离出趋势项、季节项和残差项。

图片图片


三、特征工程

基于上面数据分析的发现,小淘针对此数据构造了 37 维特征,大致分为四大类:

| 类别 | 特征示例 | 数量 | | --- | --- | --- | | 发电/负荷 | 各类型发电量、实际总负荷、日前预测值 | 15 | | 气象 | 温度、气压、湿度、风速、降雨、云量、天气类型 | 11 | | 时间 | 小时、星期几、日期、是否周末、周数 | 5 | | 滞后/滚动 | 价格滞后(t-12, t-72, t-168)、滚动均值、滚动极值、负荷预测偏差 | 6 |

其中滞后特征捕捉价格的自相关性(12 小时的日内模式、168 小时即一周的周模式),滚动特征(如 6 小时滚动均价)刻画近期价格趋势。

数据划分策略:2018 年 12 月之前的数据作为训练集,2018 年 12 月(744 小时)作为测试集,模拟真实场景中对未来一个月的滚动预测。


四、模型设计

我们实现了 1 个传统机器学习模型 + 9 个深度学习模型,覆盖了时间序列预测的主流方法:

传统机器学习:LightGBM

深度学习模型:统一采用滑动窗口方式,将过去 24 小时的数据构造为输入序列,预测下一小时的电价。

  • LSTM:经典长短期记忆网络,2 层堆叠,通过门控机制学习长期依赖。

  • GRU:门控循环单元,LSTM 的轻量化变体,参数更少但效果相当。

  • BiLSTM:双向 LSTM,同时利用过去和未来(窗口内)的上下文信息。

  • CNN-LSTM:先用两层 1D 卷积提取局部模式,再用 LSTM 捕捉时序依赖。

  • Transformer:标准 Transformer 编码器 + 位置编码,通过自注意力机制捕捉序列中任意位置之间的关系。

  • PatchTST:将时间序列切分为 patch(类似 ViT 对图像的处理),减少序列长度,提升计算效率。

  • iTransformer:反转 Transformer 的维度——对特征维度而非时间维度做注意力,让模型学习变量间的交互关系。

  • ModernTCN:现代化时序卷积网络,使用大核深度可分离卷积 + ConvFFN 结构。

  • TimeMixer:基于时序分解的 MLP 混合器。先将序列分解为趋势项季节项(通过移动平均),然后分别用独立的 MLP 在时间维度上进行混合,最后合并预测。结构简洁但非常有效。

训练策略

所有深度学习模型采用统一的训练框架:

  • 优化器:Adam(lr=1e-3)

  • 学习率调度:ReduceLROnPlateau

  • 早停机制:验证集 loss 连续 10 轮不下降则停止

  • 梯度裁剪:max_norm=1.0

  • 归一化:MinMaxScaler(仅在训练集上 fit)


五、实验结果

5.1 指标对比

| 排名 | 模型 | R² | RMSE | MAE | MAPE | | --- | --- | --- | --- | --- | --- | | 1 | TimeMixer | 0.9306 | 1.91 | 1.43 | 2.17% | | 2 | iTransformer | 0.9167 | 2.10 | 1.58 | 2.38% | | 3 | GRU | 0.9142 | 2.13 | 1.64 | 2.49% | | 4 | LightGBM | 0.9023 | 2.27 | 1.75 | 2.67% | | 5 | Transformer | 0.8948 | 2.36 | 1.85 | 2.80% | | 6 | LSTM | 0.8877 | 2.43 | 1.86 | 2.82% | | 7 | BiLSTM | 0.8700 | 2.62 | 2.05 | 3.09% | | 8 | ModernTCN | 0.8395 | 2.91 | 2.22 | 3.35% | | 9 | CNN-LSTM | 0.8274 | 3.02 | 2.35 | 3.54% | | 10 | PatchTST | 0.8143 | 3.13 | 2.43 | 3.65% |

5.2 结果分析

TimeMixer 以 R²=0.93、MAPE=2.17% 拿下第一,其"分解-分别混合-重组"的设计思路非常适合电力价格这种具有明显趋势和周期成分的时序数据。

iTransformer 和 GRU 紧随其后,分别从变量交互和时序记忆两个角度取得了不错的效果。值得注意的是,传统的 LightGBM 排在第四名,凭借精心的特征工程依然具有很强的竞争力。

标准 Transformer、LSTM 等模型表现中规中矩,而 CNN-LSTM 和 PatchTST 在本数据集上表现相对靠后。

所有模型的对比图:

图片图片图片

每个模型都有结果图生成(这里放5个模型的结果图展示)

图片图片图片图片图片


六、SHAP 可解释性分析

模型预测得准固然重要,但理解模型为什么这样预测同样关键。我们对表现最好的 TimeMixer 进行了 SHAP(SHapley Additive exPlanations)分析,揭示每个特征对预测结果的贡献。图片

图片

关键发现

Top 5 最重要特征:

  1. roll_price_6(6 小时滚动均价)—— 重要性远超其他特征,说明近期价格趋势是预测未来电价最关键的信号。

  2. **price(t-12)**(12 小时前价格)—— 捕捉日内价格的半天周期模式。

  3. hour(小时)—— 电价的日内模式非常显著,不同时段的定价逻辑差异很大。

  4. price day ahead(日前价格预测)—— 市场的日前预测本身就包含了大量信息。

  5. is_weekend(是否周末)—— 工作日和周末的电力需求模式截然不同。

从 SHAP Summary 图中可以看到:当 roll_price_6 取较高值(红色)时,SHAP 值为正,即推高价格预测;反之取较低值(蓝色)时,SHAP 值为负,拉低预测。


七、项目目录

图片

代码整理的简单明了,上手非常简单!


代码获取

mbd.pub/o/bread/YZW…

或者点击下方阅读原文获取此代码,

承诺以上所有实验结果均真实有效!