当前位置: 首页 > 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;。该强制性标准旨在尽可能地降…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...