Python基于机器学习模型LightGBM进行水电站流量入库预测项目源码+数据集+模型,含项目报告

1.前言
该文档主要是介绍通过机器学习模型LightGBM进行水电站流量入库预测。 对于水电站来说,发电是主要经济效益来源,而水就是生产的原料。对进入水电站水库的入库流量进行精准预测,能够帮助水电站对防洪、发电计划调度工作进行合理安排,实现避免洪涝灾害和提升发电经济效益的目的。
在这里插入图片描述

2.目标
基于历史数据和当前观测信息,对电站未来7日入库流量进行预测(每3小时一个预测值,共56个待预测值)。
3.数据解析
竞赛主办方共提供了4类数据,包括历史入库流量数据、环境数据、降雨预报数据以及遥测站降雨观测数据。数据均为时序数据。
其中入库流量数据包含时间和流量两个字段。环境数据提供了温度、风速、方向三个字段。天气预报包含了未来五天的降雨情况。遥测站数据则包括了39个点的降雨量。
初赛提供:2013年-2018年的历史数据
决赛提供:2019年数据
数据维度:3小时为一个粒度点
数据缺失:初赛数据在14年缺少部分数据,决赛未提供18年数据
综上述,经过对数据的了解和分析,影响模型预测主要归纳为一下四个方面:
历史数据存在样本缺失
使用何种模型进行预测,NN还是回归
如何选取、构造特征,使用特征
数据的准确性
4.赛题分析与模型选择
从数据表现来看,是一个完完全全的时序题,针对时序题的做法有很多,找周期拟合、使用NN模型,本人尝试过LSTM、GRU、RNN、CNN等,通过线下拟合,自划分样本进行测试,可以观测到拟合效果非常好
(如图4-1),但是反馈则是,只是存在部分段分数很高,部分分段很低,导致结果评分为BR,模型稳定性差。
遂转换思路,将问题转换成线性拟合问题,将时序数据看成一个单独的点,构造特征将时序保留,进行回归预测,重新构造测试数据,预测的输出作为下一次预测的输入,进行预测。最终选择竞赛界比较通用的LightGBM模型进行线性拟合。得到的表现却是各段分数平平如其,虽然分数较低,但是每一段的偏差相差不大,模型表现较为稳定。相对NN鲁棒性更强,这也是为什么在决赛选择LightGBM的原因。各个特征的重要程度表现如图4-2所示。
在这里插入图片描述

图4-1 cnn-gru拟合
在这里插入图片描述

图4-2 特征重要度
5.方法
数据预处理
将初赛、复赛数据读入,相同类别数据进行concat合并。如历史入库数据。并将时间转换成datetime格式。其他三类数据类似处理。
在这里插入图片描述

特征工程、训练集、测试集构造
1.遥测站数据处理和特征工程
(1)39个遥测站数据直接求和,而且发现遥测站的数据更像是一个类别数据,和QI也存在一定的相关性。
(2)将原始的天数据转换成入库流量一直的时序数据3H粒度数据,方便关联
2.天气预报数据
(1)这里使用的前期预报不是未来五天,而是前三天的一个天气预报作为特征输入。
在这里插入图片描述

3.环境数据
(1)环境数据使用当天数据,考虑到风向数据分布不一致的问题,将其剔除,只是用温度和风速作为特征输入。
4.入流流量数据
(1)历史8个点的时刻数据作为特征输入Q1-Q8
5.保留时序特征
(1)构造年、月、小时、小时IDX特征(保留时序,作为也可以理解为相近数据的权重)
在这里插入图片描述

6.数据构造
按照待预测的时间段进行测试集构造。
在这里插入图片描述

模型构建
这里使用的是五折的交叉验证,对最终结果也是5折之后的平均结果。
在这里插入图片描述

结果预测
对5段结果进行分别预测。每一次的输出作为下一次的输入,进行构造Q1-Q8的特征更新。五段预测方式一致。
在这里插入图片描述
结果提交
将5段结果数据进行拼接,保存至csv进行提交。
在这里插入图片描述

6.总结
从模型表现来看,最终结果五段结果均为负数,但是整体偏差不大,鲁棒性比较强,最终五段的平均在-75左右,其他朋友的模型肯定都比这个模型更加精致,从表现来看,他们在其他几段预测的结果表现都很不错,比这个模型更强,但是在第四段出现了意外,但这也是数据中不可计算的意外。他们的方案更加值得学习,共同进步,共同学习。

完整代码下载地址:水电站入库流量预测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/209593.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CRM商机管理系统对企业来说意味着什么?

您是否面临或曾出现这几个情况:1、正在开发的潜在客户让竞对捷足先登;2、为追踪商机的进展而烦恼;3、缺乏提高销售业绩的工具和方法。如果答案是肯定的,那么您可能需要一个CRM商机管理系统。下面我们就说说,CRM商机管理…

【AI读论文】AutoML的8年回顾:分类、综述与趋势

论文标题:Eight years of AutoML: categorisation, review and trends 论文链接:https://link.springer.com/article/10.1007/s10115-023-01935-1 本文主要围绕自动机器学习(AutoML)展开了系统性的文献综述,总结了该领…

张弛声音变现课,如何为偶像剧配音?

在为偶像剧进行配音工作时,配音员应当捕捉剧中角色的年轻活力、浪漫的爱情故事以及轻快的生活节奏。偶像剧主要讲述的是青春的爱恋、友谊和梦想追求,因此配音需要传递出剧中的真诚和活泼。为偶像剧配音可以考虑以下几点建议: 鲜明活泼的声音 …

Python中列表和字符串常用的数据去重方法你还记得几个?

Python中列表和字符串常用的数据去重方法你还记得几个? 1 关于数据去重2 字符串去重2.1 for方法2.2 while方法2.3 列表方法2.4 直接删除法2.5 fromkeys方法 3 列表去重3.1 for方法3.2 set方法13.3 set方法23.4 count方法3.5 转字典法 4 完整代码 1 关于数据去重 关…

Linux之进程替换

创建子进程的目的 创建子进程的第一个目的是让子进程执行父进程对应的磁盘代码中的一部分, 第二个目的是让子进程想办法加载磁盘上指定的程序,让子进程执行新的代码和程序 一是让子进程执行父进程代码的一部分, 比如&#xff1a; 1 #include<stdio.h> 2 #include<…

笔记本只使用Linux是什么体验?

笔记本只使用Linux是什么体验&#xff1f; 之后安了Windows双系统之后也不怎么想再进Windows了。 开发环境就不用说了&#xff0c;Linux下配各种开发环境都方便的多&#xff0c;当然你要用 vs 那还是乖乖回 Windows 吧。 最近很多小伙伴找我&#xff0c;说想要一些Linux的资…

德迅云安全-德迅卫士:保障您的主机安全

主机安全是指保证主机在数据存储和处理的保密性、完整性、可用性&#xff0c;包括硬件、固件、系统软件的自身安全&#xff0c;以及一系列附加的安全技术和安全管理措施。 为什么要主机安全&#xff1f; 服务器一旦被黑客入侵&#xff0c;个人和企业面临以下安全风险&#xff…

shell 脚本 批量 修改 文件名

shell 脚本 批量 修改 文件名 原始文件 你可以使用以下的shell脚本来批量修改文件名&#xff1a; #!/bin/bashinput_dir$1if [ -z "$input_dir" ]; thenecho "Usage: ./rename.sh input_directory"exit 1 ficd "$input_dir" || exitfor file in…

python命令行 引导用户填写ssh登录信息

字多不看&#xff0c;直接体验&#xff1a; 待补充 演示代码 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/23 9:20 file: 引导用户填写ssh接口信息.py desc: xxxxxx """# region 引入必要的依赖 impor…

《YOLOv8创新改进》专栏指导书册 手把手创新教程

&#x1f680;&#x1f680;&#x1f680;YOLOv8改进专栏&#xff1a;http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8&#xff0c;从入门到创新&#xff0c;轻轻松松搞定科研&#xff1b; 本专栏为订阅者提供答疑服务&#xff0c;每一篇提供源代码和详细的每一个步骤改进地方。…

TikTok青年领袖:短视频如何塑造新一代

在数字时代的潮流中&#xff0c;短视频平台TikTok崭露头角&#xff0c;成为年轻一代最喜爱的社交媒体之一。这个平台不仅改变了用户的娱乐方式&#xff0c;更在其中催生了一批富有创造力和影响力的青年领袖。 本文将深入探讨TikTok如何通过短视频内容塑造新一代的青年领袖&…

可编程交流回馈式负载箱在电源设备中的应用

可编程交流回馈式负载箱可以用于测试电源设备的输出能力&#xff0c;通过在负载箱中设置不同的负载条件&#xff0c;可以模拟不同的工作负载情况&#xff0c;从而测试电源设备在不同负载下的输出能力和稳定性。这对于电源设备的设计和生产非常重要&#xff0c;可以帮助制造商评…