储能电站收益优化过程总结
·
项目背景
-
比赛任务:预测蒙西电网次日96个时间点(15分钟分辨率)的实时电价,并制定储能充放电策略最大化日收益
-
储能参数:容量8000,充放电功率±1000,每次连续8个时间点,初始SOC=0
技术方案
-
模型:LightGBM + sklearn GradientBoostingRegressor 融合
-
超参搜索:Optuna TPE 采样器,Walk-forward 3折交叉验证
-
后处理:动态振幅增强(围绕均值放大预测波动)
-
充放电策略:前缀和 O(n) 算法,每天选最优充电/放电时段
-
特征数量:108个(含气象、时间、滞后、交互、误差特征)
尝试过程
第一阶段:基础优化
| 序号 | 尝试内容 | 结果 | 结论 |
|---|---|---|---|
| 1 | 安装 Optuna(之前未安装,超参搜索未生效) | RMSE 0.592->0.592,收益提升 | 关键发现:之前所有调参都白费,Optuna根本没跑 |
| 2 | 添加 CDD/HDD 温度特征 | MAE 0.458->0.456,日收益 14896->15193 | 小幅提升 |
| 3 | 添加特征交互项(cdd_x_wind, netload_x_renew 等) | 日收益 15193->15327 | 小幅提升 |
第二阶段:模型融合
| 序号 | 尝试内容 | 结果 | 结论 |
|---|---|---|---|
| 4 | 添加 GBR 融合模型 + 权重自动搜索 | RMSE 0.563,日收益 17167 | 显著提升,GBR 权重=1.0,纯GBR优于LGB |
| 5 | n_estimators 1000->5000 | 本地RMSE更好,云端分数反而下降 | 过拟合,树太多不适合 |
第三阶段:振幅增强
| 序号 | 尝试内容 | 结果 | 结论 |
|---|---|---|---|
| 6 | 振幅范围 (1.0, 1.5) -> (1.0, 2.5) | 本地日收益 17167->28801 | 大幅提升 |
| 7 | 振幅范围扩大到 (1.0, 3.0) | 本地日收益 33361,但云端分数下降 | 过拟合,3.0 对云端测试集过大 |
| 8 | 各向同性回归校准(isotonic regression) | 日收益 28801->8946 | 失败,验证集和测试集分布不同 |
第四阶段:提交实验
| 序号 | 尝试内容 | 云端分数 | 结论 |
|---|---|---|---|
| 9 | 基线提交 | 4827.06 | 起点 |
| 10 | Optuna 随机种子 + amplitude 2.5(运气好) | 5176 | 最佳运气分 |
| 11 | seed=42 固定种子 x3 次 | 4953.60 x3 | 三次完全相同,确定性种子导致 Optuna 结果一致 |
| 12 | 去掉 Optuna 种子(随机探索) | 4953.60 | Optuna 40轮收敛到相似参数 |
第五阶段:深度调优
| 序号 | 尝试内容 | 结果 | 结论 |
|---|---|---|---|
| 13 | 5个种子对比(42/123/2024/777/888) | RMSE 完全相同,利润微小差异 | LGB 模型对种子不敏感,差异仅来自 GBR 随机性 |
| 14 | 删除误差特征(测试集恒为0) | RMSE 0.562->0.596,日收益 34735->32835 | 失败,误差特征虽测试集为0,但训练时学到了有用模式 |
| 15 | 振幅 2.5->3.5 | 日收益 34735->48629,云端 4953->5251 | 有效,振幅是最直接的提升手段 |
| 16 | 振幅 3.5->4.0 + 种子 42->888 | 日收益 55560,云端 5279 | 当前最佳 |
关键发现
-
振幅是最大杠杆:振幅从 2.5 -> 3.5 -> 4.0,云端分数持续上升(5176 -> 5251 -> 5279)
-
本地指标 != 云端分数:RMSE 变差但分数更高,说明预测的相对排序(谁高谁低)比绝对精度更重要
-
Optuna 随机性是主要变量:同一代码不同运行结果差异大,多跑几次是性价比最高的策略
-
GBR 是主力模型:融合权重始终选 GBR=100%,LGB=0%
-
误差特征有价值:虽测试集为0,但训练时学到的误差-价格关系能迁移到测试集
-
确定性种子=相同结果:seed=42 每次输出完全一样,需要换种子才能获得不同结果
当前最优配置
RANDOM_SEED = 888 amplitude search_range = (1.0, 4.0) Optuna n_trials = 40 LGB n_estimators = 1000(early stopping ~17轮) GBR n_estimators = 200(固定参数) 特征数量 = 108 融合权重 = 纯GBR(LGB=0, GBR=1)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)