储能电站收益优化
一、项目一开始我以为这是一个“预测问题”刚开始做这个项目时我的想法其实很简单只要把未来电价预测准收益自然就会高初版只用了最基础的时间特征hour、dayofweek、month、minute然后直接做最低连续8个点充电 最高连续8个点放电后来才逐渐意识到储能套利真正关心的是电价的最高点和最低点。也就是说排序比数值本身更重要。二、特征工程大量尝试之后真正留下来的其实很少后来我开始重点研究历史电价到底有没有规律。于是新增了add_lag_features()并开始尝试lag_1、lag_4、lag_8、lag_96、lag_192一开始我觉得lag_1和lag_4加入后效果很好因为训练误差确实下降了。但后来发现这些短周期 lag 很容易学习局部噪声跟着尖峰跑在测试集过拟合于是后来很多版本里lag_1和lag_4其实都被删掉了。真正稳定有效的反而是lag_96和lag_192也就是前两天同一时间的价格。这个特征的重要性非常稳定。在max_depth 4或max_depth 6情况下它的重要性都不低。后来我逐渐意识到电价真正最强的规律其实是“日周期”。除了 lag我还尝试过很多“理论上应该有效”的特征。比如rolling_mean_96我当时的想法是预测曲线太抖了能不能平滑一下于是加入了rolling_mean_96发现收益反而下降。因为 rolling 本质上会削弱尖峰但储能套利最依赖的恰恰是峰值价差。后来我又尝试了周期编码sin(hour) cos(hour)但最后效果依然不明显甚至有时候会轻微拉低收益。后来猜测lag_96和lag_192已经把周期信息学得差不多了。再额外加入的sin/cos反而增加了噪声。后面我也尝试了气象特征temperature、wind_speed、humidity、pressure并做了时间对齐、区域天气聚合等操作。这些特征并不是完全没用但相比与lag_96它们的重要性其实低很多。整个过程中我最大的感受是很多“看起来高级”的特征最后都没有最简单的 lag_96 有效。这里可能是我的气象特征没有正确使用三、模型与参数很多优化其实是在“减少过拟合”后来我发现模型最大的风险并不是预测不够复杂而是太容易学习局部噪声尤其是当树太深的时候。于是后面我开始频繁调整max_depth、learning_rate、n_estimators来降低过拟合因为深树特别容易记忆尖峰记忆异常点学习局部波动后面我也尝试使用HistGradientBoostingRegressor模型希望更稳定更快泛化更好四、策略部分这是我后期思考最多的地方做到后面时我逐渐发现当前最大的问题并不是收益太低而是预测曲线里有很多“错误尖峰”。这些错误尖峰会导致模型误以为这里是最高点然后错误放电。于是后面我开始不断尝试价格差阈值更低点充电更高点放电先平滑再决策过滤异常尖峰包括后期重新加回lag_4和lag_8来降低RMSE希望减少预测噪声。但后来我又发现RMSE 下降之后收益也总是随着下降。所以很多修改在最后其实又删掉了。整个过程中我最大的感受是储能问题本质上不是“预测问题”而是“带预测误差的决策问题”。真正重要的不是预测有多准而是你的策略能不能容忍预测错误。这也是整个项目里我学到最多的一点。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2596410.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!