当前位置: 首页 > news >正文

短期光伏发电量短期预测(Python代码,先对异常值处理,再基于XGBoost模型预测)

一.代码流程(运行效果:短期光伏发电量短期预测(Python代码,先对异常值处理,再基于XGBoost模型预测)_哔哩哔哩_bilibili

模型流程:

  1. 导入所需的库,包括NumPy、Pandas、Matplotlib、Seaborn等。

  2. 读取发电数据和天气传感器数据,将它们存储在df_plt1_gendf_plt1_weather中。

  3. 数据预处理:

    • 对发电数据进行了一些处理,包括删除不需要的列、将日期时间列转换为日期时间类型,并根据逆变器创建了新的逆变器列。
    • 天气数据也被处理,删除了不需要的列,将日期时间列转换为日期时间类型。
  4. 确保数据完整性:

    • 创建了一个完整的日期时间序列,以确保数据中没有缺失值。
    • 初始化一个空列表,用于存储处理后的发电数据。
  5. 遍历每个逆变器:

    • 选择特定逆变器的数据。
    • 使用完整的日期时间序列合并数据,以确保没有缺失值。
    • 添加逆变器列并将数据附加到列表中。
  6. 合并所有逆变器的数据,创建了一个完整的数据集df

  7. 提取并映射日期时间特征,计算特征之间的相关性,并检查是否有负值。

  8. 创建一个新的数据集df_eda,用于探索性数据分析(EDA)。

  9. 处理异常值:

    • 创建用于统计异常值的数据集,包括低异常值、高异常值和标准差范围内的数据点。
    • 绘制散点图可视化数据点。
  10. 统计低异常值的数量,包括低异常值且AC功率为0的数量。

  11. 绘制逆变器异常值计数的条形图,包括AC功率为0的部分。

  12. 定义一个函数outliers用于处理异常值,并绘制散点图可视化处理后的数据。

  13. 处理DAILY_YIELD特征的异常值,包括将夜间时间段的发电功率设为0。

  14. 插补缺失值:

    • 使用KNNImputer插补缺失值。
    • 使用时间插值、线性插值和多项式插值方法插补缺失值。
  15. 计算每天的总发电量,并将目标变量向后移动一天,以便进行预测。

  16. 使用季节性分解方法对目标变量进行分解,以查看趋势和季节性成分。

  17. 创建基准模型,计算基准模型的RMSE(均方根误差)。

  18. 准备数据用于机器学习模型和深度学习模型的训练和测试。

  19. 使用XGBoost模型进行训练和测试,评估模型的性能,并绘制预测结果。

  20. 最后,绘制了模型的特征重要性图表。

二.数据集(68779条数据)

这些数据是在印度的两个太阳能发电厂收集的,时间跨度为34天。每对文件包含一个电力发电数据集和一个传感器读数数据集。电力发电数据集是在逆变器级别收集的,每个逆变器都连接着多行太阳能电池板。传感器数据是在发电厂级别收集的,是单个传感器阵列在发电厂中的最佳放置。

  • DATE_TIME: 表示日期和时间的时间戳,记录数据采集的具体时间点。
  • PLANT_ID: 发电厂的唯一标识符,用于区分不同的太阳能发电厂。
  • SOURCE_KEY: 太阳能发电设备的唯一标识符,用于区分不同的发电设备。
  • DC_POWER: 直流功率的测量值,表示从太阳能电池板产生的直流电功率。
  • AC_POWER: 交流功率的测量值,表示从逆变器转换后的交流电功率。
  • DAILY_YIELD: 每天的发电量,表示在给定日期内生成的总电量。
  • TOTAL_YIELD: 总发电量,表示从安装以来生成的总电量。

这些列提供了关于太阳能发电厂的重要信息,包括发电设备的功率输出、每天的发电量以及总发电量。通过这些数据,可以进行发电量的分析、设备性能的评估以及故障检测等任务。

开始时间

DATE_TIMEPLANT_IDSOURCE_KEYDC_POWERAC_POWERDAILY_YIELDTOTAL_YIELD
15-05-2020 00:0041350011BY6WEcLGh8j5v70006259559
15-05-2020 00:0041350011IF53ai7Xc0U56Y0006183645
15-05-2020 00:0041350013PZuoBAID5Wc2HD0006987759
15-05-2020 00:0041350017JYdWkrLSPkdwr40007602960
15-05-2020 00:004135001McdE0feGgRqW7Ca0007158964
15-05-2020 00:004135001VHMLBKoKgIrUVDU0007206408
15-05-2020 00:004135001WRmjgnKYAwPKWDb0007028673
15-05-2020 00:004135001ZnxXDlPa8U1GXgE0006522172
15-05-2020 00:004135001ZoEaEvLYb1n2sOq0007098099
15-05-2020 00:004135001adLQvlD726eNBSB0006271355
15-05-2020 00:004135001bvBOhCH3iADSZry0006316803
15-05-2020 00:004135001iCRJl6heRkivqQ30007177992
15-05-2020 00:004135001ih0vzX44oOqAx2f0006185184
15-05-2020 00:004135001pkci93gMrogZuBj0007169102
15-05-2020 00:004135001rGa61gmuvPhdLxV0007111493
15-05-2020 00:004135001sjndEbLyjtCKgGv0007016832
15-05-2020 00:004135001uHbuxQJl8lW7ozc0007038681
15-05-2020 00:004135001wCURE6d3bPkepu20006782598
15-05-2020 00:004135001z9Y9gH1T5YWrNuG0007007866
15-05-2020 00:004135001zBIq5rxdHJRwDNY0006339380
15-05-2020 00:004135001zVJPv84UY57bAof0007116151
15-05-2020 00:1541350011BY6WEcLGh8j5v70006259559
15-05-2020 00:1541350011IF53ai7Xc0U56Y0006183645
15-05-2020 00:1541350013PZuoBAID5Wc2HD0006987759
15-05-2020 00:1541350017JYdWkrLSPkdwr40007602960
15-05-2020 00:154135001McdE0feGgRqW7Ca0007158964
15-05-2020 00:154135001VHMLBKoKgIrUVDU0007206408
15-05-2020 00:154135001WRmjgnKYAwPKWDb0007028673
15-05-2020 00:154135001ZnxXDlPa8U1GXgE0006522172

中期时间段数据展示

20-05-2020 06:454135001uHbuxQJl8lW7ozc947.87592.087540.257071238.25
20-05-2020 06:454135001wCURE6d3bPkepu2944.2591.72541.256815390.25
20-05-2020 06:454135001z9Y9gH1T5YWrNuG953.87592.662540.3757040505.375
20-05-2020 06:454135001zBIq5rxdHJRwDNY936.759139.6256372010.625
20-05-2020 06:454135001zVJPv84UY57bAof933.62590.67540.1257148377.125
20-05-2020 07:0041350011BY6WEcLGh8j5v71564.714286152.9571429686290165
20-05-2020 07:0041350011IF53ai7Xc0U56Y1790.375175.237576.6256216506.625
20-05-2020 07:0041350013PZuoBAID5Wc2HD1728.714286169.157142973.714285717020585.714
20-05-2020 07:0041350017JYdWkrLSPkdwr41690.571429165.428571474.857142867635282.857
20-05-2020 07:004135001McdE0feGgRqW7Ca1628.714286159.257142971.428571437192169.429
20-05-2020 07:004135001VHMLBKoKgIrUVDU1727.428571169.042857176.571428577239618.571
20-05-2020 07:004135001WRmjgnKYAwPKWDb1700166.357142972.571428577061004.571
20-05-2020 07:004135001YxYtjZvoooNbGkE1593.857143155.7857143707212546
20-05-2020 07:004135001ZnxXDlPa8U1GXgE1638.428571160.185714359.571428576555195.571
20-05-2020 07:004135001ZoEaEvLYb1n2sOq1567153.185714369.571428577130401.571
20-05-2020 07:004135001adLQvlD726eNBSB1818.12517879.1256304592.125
20-05-2020 07:004135001bvBOhCH3iADSZry1535.71428615066.857142866346973.857
20-05-2020 07:004135001iCRJl6heRkivqQ31568.857143153.285714369.857142867210787.857
20-05-2020 07:004135001ih0vzX44oOqAx2f1584.142857154.8571429696217346
20-05-2020 07:004135001pkci93gMrogZuBj1550.571429151.568.571428577201417.571
20-05-2020 07:004135001rGa61gmuvPhdLxV1542150.671428668.571428577143880.571
20-05-2020 07:004135001sjndEbLyjtCKgGv1587.714286155.242857169.571428577049353.571
20-05-2020 07:004135001uHbuxQJl8lW7ozc1588.571429155.369.714285717071267.714
20-05-2020 07:004135001wCURE6d3bPkepu21578.571429154.3706815419

截止时间的数据展示

17-06-2020 23:304135001wCURE6d3bPkepu20058837028601
17-06-2020 23:304135001z9Y9gH1T5YWrNuG0058197251204
17-06-2020 23:304135001zBIq5rxdHJRwDNY0058176583369
17-06-2020 23:304135001zVJPv84UY57bAof0059107363272
17-06-2020 23:4541350011BY6WEcLGh8j5v70055216485319
17-06-2020 23:4541350011IF53ai7Xc0U56Y0060346433566
17-06-2020 23:4541350013PZuoBAID5Wc2HD0060527237425
17-06-2020 23:4541350017JYdWkrLSPkdwr40058567846821
17-06-2020 23:454135001McdE0feGgRqW7Ca0059927408587
17-06-2020 23:454135001VHMLBKoKgIrUVDU0060077456208
17-06-2020 23:454135001WRmjgnKYAwPKWDb0059537273532
17-06-2020 23:454135001YxYtjZvoooNbGkE0058867425442
17-06-2020 23:454135001ZnxXDlPa8U1GXgE0059296770737
17-06-2020 23:454135001ZoEaEvLYb1n2sOq0058717341753
17-06-2020 23:454135001adLQvlD726eNBSB005237.1428576524508
17-06-2020 23:454135001bvBOhCH3iADSZry0054606539009
17-06-2020 23:454135001iCRJl6heRkivqQ30059577426263
17-06-2020 23:454135001ih0vzX44oOqAx2f0057586426129
17-06-2020 23:454135001pkci93gMrogZuBj0059527415430
17-06-2020 23:454135001rGa61gmuvPhdLxV0059507356897
17-06-2020 23:454135001sjndEbLyjtCKgGv0058877261681
17-06-2020 23:454135001uHbuxQJl8lW7ozc0059677287002
17-06-2020 23:454135001wCURE6d3bPkepu2005147.6257028601
17-06-2020 23:454135001z9Y9gH1T5YWrNuG0058197251204
17-06-2020 23:454135001zBIq5rxdHJRwDNY0058176583369
17-06-2020 23:454135001zVJPv84UY57bAof0059107363272

 三.效果图

对项目感兴趣的,可以关注中间一行

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid')
import warnings
import datetime as dt
import matplotlib.dates as mdates
#代码和数据集的压缩包:https://mbd.pub/o/bread/mbd-ZJ6Zmphv
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid')
import warnings
import datetime as dt
import matplotlib.dates as mdates

相关文章:

短期光伏发电量短期预测(Python代码,先对异常值处理,再基于XGBoost模型预测)

一.代码流程(运行效果:短期光伏发电量短期预测(Python代码,先对异常值处理,再基于XGBoost模型预测)_哔哩哔哩_bilibili 模型流程: 导入所需的库,包括NumPy、Pandas、Matplotlib、Sea…...

SpringCloud Gateway--Predicate/断言(详细介绍)中

😀前言 本篇博文是关于SpringCloud Gateway–Predicate/断言(详细介绍)中,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以…...

Linux内核启动流程-第一阶段汇编流程简介

一. Linux启动流程 看完 Linux 内核的顶层 Makefile 以后再来看 Linux 内核的大致启动流程, Linux 内核的启 动流程要比 uboot 复杂的多,涉及到的内容也更多。 本文中,我们就大致的了解一下 Linux 内 核的启动流程。 要分析 Li…...

SpringBoot-Druid

目录 1.什么是Druid 2.主要优点和原因 3.误区 4.Part代码 0.pom 1.Spring.datasource.type: com.alibaba.druid.pool.DruidDataSource 2.Druid用Jasypt加密任意内容 EnableEncryptableProperties开启加密注解 3.Druid监控平台 1.什么是Druid Druid 是一个开源的数据库…...

PAT甲级真题1006:签到与签出

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...

【架构篇】Supabase架构和功能介绍

Supabase是什么 Supabase将自己定位为Firebase的开源替代品,提供了一套工具来帮助开发者构建web或移动应用程序。Supabase是建立在Postgres之上的,Postgres是一个免费的开源数据库,被认为是世界上最稳定、最先进的数据库之一。Supabase对标F…...

Github主页无法打开和Assets转圈

1、cmd启动命令行 2、github.com打不开,多刷新几遍。等成功打开时,命令行输入nslookup github.com,把非权威应答下的IP地址复制到C:\Windows\System32\drivers\etc\hosts里,如查到的IP是192.30.255.112,则填写 192.30.255.112 gi…...

rm误删文件恢复

rm误删文件恢复 问题描述安装extundeleteyum安装extundelete编译安装extundelete 常用参数动作(action): 尝试数据恢复前置条件卸载磁盘分区查看被删除数据信息 恢复文件恢复指定inode号文件恢复指定文件名恢复指定目录恢复所有可恢复文件恢复指定时间的文件恢复指定…...

爬虫 — 多线程

目录 一、多任务概念二、实现多任务方式1、多进程 (Multiprocessing)2、多线程(Multithreading)3、协程(Coroutine) 三、多线程执行顺序四、多线程的方法1、join()2、setDaemon()3、threading.enumerate() …...

Cython 笔记 (Python/Jython)

目录 1. Cython 笔记 (Python)2. python 加速库 cython 简介2.1. Cython 是什么?2.2. 如何安装 Cython?2.3. 简单示例2.4. 性能比对2.5. 总结 3. PYTHON, CYTHON, JYTHON, IRONPYTHON 的区别 (注意: 此篇有误导,表述不一定正确,只提供一个方向)3.1. PY…...

[React] react-hooks如何使用

react-hooks思想和初衷,也是把组件,颗粒化,单元化,形成独立的渲染环境,减少渲染次数,优化性能。 文章目录 1.为什么要使用hooks2.如何使用hooks2.1 useState2.2 useEffect2.3 useLayoutEffect2.4 useRef2.5…...

多个pdf合并成一个文件,3个方法合并pdf

如何把多个pdf合并成一个文件?在我们日常的工作中,经常会遇到一些需要处理的文件,其中包括PDF文件。特别是当我们需要将多个PDF文件合并成一个PDF文件时,会面临一些困难。这样的情况下,我们的阅读能力会受到限制&#…...

代码随想录 动态规划Ⅸ

198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个…...

【数据结构】散列表(哈希表)的学习知识总结

目录 1、散列表 2、散列函数 2.1 定义 2.2 散列函数的构造 2.2.1 除留余数法 2.2.2 直接定址法 2.2.3 数字分析法 2.2.4 平方取中法 3、冲突(碰撞) 4、处理冲突的方法 4.1 拉链法(链接法) 4.2 开放定址法 5、C语言…...

2023智慧云打印小程序源码多店铺开源版 +前端

智慧自助云打印系统/智慧云打印小程序源码 前端 这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码...

利用亚马逊 云服务器 EC2 和S3免费套餐搭建私人网盘

网盘是一种在线存储服务,提供文件存储,访问,备份,贡献等功能,是我们日常中不可或缺的一种服务。很多互联网公司都为个人和企业提供免费的网盘服务。但这些免费服务都有一些限制,比如限制下载速度&#xff0…...

数据分析技能点-数据的种类

在日常生活中,数据无处不在。当你去超市购物时,你可能会注意到商品的价格、重量、口味等;当你在社交媒体上浏览时,你可能会注意到好友的点赞数、评论等。这些都是数据的一种形式,而了解这些数据的种类和特点有助于我们更好地理解和使用它们。 数据的基本分类 数据大致可…...

解读:ISO 14644-21:2023《洁净室及相关受控环境:悬浮粒子采样》发布指导粒子采样!

药品洁净实验室环境监测结果是否满足微生物检测需求,直接决定检测结果的有效性准确性,进行药品微生物检测,必须对实验环境进行日常和定期监测,其内容包括非生物活性的空气悬浮粒子数及有生物活性的微生物监测。 悬浮粒子监测是保证…...

Java --- MySQL8之索引优化与查询优化

目录 一、索引失效场景 1.1、全值匹配 1.2、最佳左前缀规则 1.3、主键插入顺序 1.4、计算、函数、类型转换(自动或手动)导致索引失效 1.5、类型转换导致索引失效 1.6、范围条件右边的列索引失效 1.7、不等于(! 或者<>)索引失效 1.8、is null可以使用索引&…...

澳大利亚新版《2023年消费品(36个月以下儿童玩具) 安全标准》发布 旨在降低危险小零件的伤害

2023年9月4日&#xff0c;澳大利亚政府发布了新的儿童玩具强制性安全标准《2023年消费品(36个月以下儿童玩具)安全标准》&#xff08;Consumer Goods (Toys for Children up to and including 36 Months of Age) Safety Standard 2023&#xff09;。该强制性标准旨在尽可能地降…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...

如何把工业通信协议转换成http websocket

1.现状 工业通信协议多数工作在边缘设备上&#xff0c;比如&#xff1a;PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发&#xff0c;当设备上用的是modbus从站时&#xff0c;采集设备数据需要开发modbus主站&#xff1b;当设备上用的是西门子PN协议时&#xf…...

2025-05-08-deepseek本地化部署

title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek&#xff1a;小白也能轻松搞定&#xff01; 如何给本地部署的 DeepSeek 投喂数据&#xff0c;让他更懂你 [实验目的]&#xff1a;理解系统架构与原…...

基于小程序老人监护管理系统源码数据库文档

摘 要 近年来&#xff0c;随着我国人口老龄化问题日益严重&#xff0c;独居和居住养老机构的的老年人数量越来越多。而随着老年人数量的逐步增长&#xff0c;随之而来的是日益突出的老年人问题&#xff0c;尤其是老年人的健康问题&#xff0c;尤其是老年人产生健康问题后&…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】

1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...