第三届世界科学智能大赛新能源赛道:新能源发电功率预测-数据处理心得体会1

看懂数据

比赛数据说明:

文档(报名之后可以下载)大小操作
初赛测试集.zip94MB下载
初赛训练集.zip632MB下载
output.zip145KB下载

任务和主题

AI新能源功率预报:根据历史发电功率数据和对应时段多类别气象预测数据,实现次日零时起到未来24小时逐15分钟级新能源场站发电功率预测。

比赛数据

1.气象数据
比赛输入数据来自三个不同的气象预报数据,数据格式为nc,共8个变量,需要注意气象源NWP_2的变量与另外两个稍有不同。气象变量说明见下文。每个文件是第二天北京时间0点开始的未来24小时气象预报,时间间隔1小时,文件名的日期表示预报发布日期,如20240101.nc是2024年1月1日发布的,对1月2日的预报。每个输入文件有5个维度,time,channel,hour,lat,lon。
time表示数据第一个时刻,为世界时;channel为变量,共8维;hour为从起始时间到预报时间的时间间隔,数值为0~23;lat为纬度,数值从小到大为从北向南排列;lon为经度,数值从小到大为从西向东排列。这里经纬度数值仅代表相对关系,中心点为离场站最近的点。
参赛队伍可以不使用全部气象源的全部变量做为输入。

2.场站实发功率
比赛目标数据来自10个新能源场站的归一化处理后的实发功率,其中包含5个风电场站和5个光伏场站。编号1-5为风电场,6-10为光伏电场。数据时间为北京时间,数据时间间隔为15分钟。需要注意数据中偶有空值、死值等异常值。

气象变量说明:

气象源1(NWP_1)、气象源3(NWP_3): [u100v100t2mtptccsppoaighi], 气象源2(NWP_2): [u100v100t2mtptcc,msl,poai,ghi]

变量描述单位
u100100米高度纬向风m/s(米/秒)
v100100米高度经向风m/s(米/秒)
t2m2米气温K(开尔文)
tp总降水量m(米)
tcc总云量(0 - 1)
sp地面气压Pa(帕斯卡)
poai光伏面板辐照度W/m²(瓦/平方米)
ghi水平面总辐照度W/m²(瓦/平方米)
msl海平面气压Pa(帕斯卡)

初赛训练集和测试集:

数据集时间范围空间范围时间分辨率
TrainA20240101 ~ 20241231场站周边 11x11 个格点1h
TestA20250101 ~ 20250228场站周边 11x11 个格点1h

复赛训练集和测试集:

数据集时间范围空间范围时间分辨率
TrainB20240101 ~ 20250228场站周边 11x11 个格点1h
TestB20250301 ~ 20250430场站周边 11x11 个格点1h

 比赛数据分析

总体思想:结果时序模型输入一般都是 [B* T*feature]三维  ,但是这个拓展了两个维度,把多的这两维处理好就能顺利放入时序模型了 。

1.文件结构 

Input/
├── 1/
│   ├── NWP_1/
│   │   ├── 20240101.nc
│   │   ├── 20240102.nc
│   │   └── ...
│   ├── NWP_2/
│   ├── NWP_3/
├── 2/
├── ...
Output/
├── output1.csv
├── output2.csv

3个气象源

1个站点 - 对应3个不同机构的气象源数据 NWP_1,NWP_2,NWP_3

baseline中只用了NWP_1

我们需要将3个气象源都利用起来

简单办法,把NWP_1,NWP_2,NWP_3 属性都连起来 一个NWP有8个气象特征,

连起来后我们的特征维度8*3=24

5个维度

每个输入文件有5个维度,time,channel,hour,lat,lon

from netCDF4 import Dataset
import numpy as np
import pandas as pdnc_path = "data/初赛训练集/nwp_data_train/1/NWP_1/20240101.nc"
dataset = Dataset(nc_path, mode='r')
dataset.variables.keys()

输出结果 dict_keys(['time', 'channel', 'data', 'lat', 'lon', 'lead_time'])         

time表示数据第一个时刻,为世界时;channel为变量,共8维;hour为从起始时间到预报时间的时间间隔,数值为0~23;lat为纬度,数值从小到大为从北向南排列;lon为经度,数值从小到大为从西向东排列。这里经纬度数值仅代表相对关系,中心点为离场站最近的点。

需要通过

time 起始时间到预报时间间隔

hour = lead_time

data.shape == [1, 8, 24, lat, lon]
                         ^  ^   ^
                          |  |   └── lead_time: 0~23 小时
                          |  └── channel: 8 个变量(如 u100, v100...)
                         └── time: 通常只有 1(仅起始时间)

把channel 和11*11站点数据处理成 2维度

trick:

归一化 Y

对 Y 做归一化(通常归一到 [0, 1])在回归预测任务中是非常常见、有效且标准的做法,尤其是在风电/光伏功率预测这类 尺度不一、目标动态范围大的任务 中,它能带来诸多优势。

原因说明
🎯 稳定模型训练避免目标值过大导致梯度爆炸或收敛缓慢
📏 对抗单位不一致输入是归一化气象数据,Y 不归一会尺度失衡
📉 提高预测精度模型学的是“相对变化”,更好拟合归一化目标
📐 通用性更强方便多场站间 transfer(特别是单位不同的场站)

 实践中常用方法

1. 归一化到 [0, 1]:
y_max = fact_df["value"].max() y = y / y_max

✔️ 最常用!方便训练、预测后乘回来

2. 保存归一化参数用于反归一:
self.y_max = y_max # 推理时: y_pred * y_max 

真实场景中是否有效?

以光伏/风电预测为例:

  • 几乎所有 top 比赛/论文/产品系统都使用 Y 归一化策略

  • 典型例子:阿里天池光伏预测挑战赛、SGCC 风电短期预测项目

总体流程
阶段动作
加载 Y清洗负值,小于阈值置零
拟合 Y归一化到 [0, 1],保存 y_max
推理后模型输出 * y_max,恢复原单位

归一化 Y 是“回归问题中”的行业标准做法,尤其在新能源功率预测任务中对收敛速度和泛化能力都有显著提升效果。

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

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

相关文章

【云馨AI-大模型】2025年4月第三周AI领域全景观察:硬件革命、生态博弈与国产化突围

一、硬件算力突破点燃多智能体时代 谷歌在4月12日Cloud Next大会发布第七代TPU Ironwood,单芯片算力达4614 TFLOPs,较前代内存提升6倍,专为AI推理场景优化。配合发布的Gemini 2.5 Flash模型通过"思考"功能实现成本优化&#xff0c…

第3章 垃圾收集器与内存分配策略《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

第3章 垃圾收集器与内存分配策略 3.2 对象已死 Java世界中的所有对象实例,垃圾收集器进行回收前就是确定对象哪些是活着的,哪些已经死去。 3.2.1 引用计数算法 常见的回答是:给对象中添加一个引用计数器,有地方引用&#xff0…

超详细VMware虚拟机扩容磁盘容量-无坑版

1.环境: 虚拟机:VMware Workstation 17 Pro-17.5.2 Linux系统:Ubuntu 22.04 LTS 2.硬盘容量 虚拟机当前硬盘容量180G -> 扩展至 300G 3.操作步骤 (1)在虚拟机关机的状态下,虚拟机硬盘扩容之前必…

HarmonyOS:1.4 - HarmonyOS应用程序框架基础

判断题 1.在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。 正确(True) 2.一个应用只可以包含一个UIAbility组件。 错误(False) 3.Background状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释…

HTTP HTTPS RSA

推荐阅读 小林coding HTTP篇 文章目录 HTTP 80HTTP 响应码1xx:信息性状态码(Informational)2xx:成功状态码(Success)3xx:重定向状态码(Redirection)4xx:客户端…

ORACLE数据库转国产阿里OceanBase数据库

1.BLOB类型修改 将接口内oracle.sql.BLOB改为java.sql.Blob 2.REGEXP_LIKE 判断函数正则表达式中字符转义问题 OB的正则表达式使用的是标准的Linux模式,oracle是黑盒子,在处理部分转义符([])的时候, Oracle无需使用转义符,OB务必使用转义符,加/转义处理,例如在regexp_like(t…

STM32的三种启动方式

目录 一、从主闪存存储器启动(Main Flash Memory) 二、从系统存储器启动(System Memory) 三、从内置SRAM启动(Embedded SRAM) 一、从主闪存存储器启动(Main Flash Memory) >&g…

Flutter使用flutter_driver进行自动化测试

Flutter自动化测试实践指南 作为一名iOS开发者,我最近对Flutter的自动化测试产生了浓厚兴趣。在开发过程中,我发现自动化测试对于保证应用质量至关重要,特别是像我们这样的创业团队,测试资源有限的情况下。 搭建Flutter自动化测…

Halcon应用:九点标定-手眼标定

提示:若没有查找的算子,可以评论区留言,会尽快更新 Halcon应用:九点标定-手眼标定 前言一、Halcon应用?二、应用实战1、图形理解[eye-to-hand]:1.1、开始应用2、 图形理解[eye-in-hand]2.1、 开始应用 前言…

【C++11】列表初始化、右值引用、完美转发、lambda表达式

📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🌐 C 语言 上篇文章:unordered_map、unordered_set底层编写 下篇文章:C11:新的类功能、模板的可…

Pandas取代Excel?

有人在知乎上提问:为什么大公司不用pandas取代excel? 而且列出了几个理由:Pandas功能比Excel强大,运行速度更快,Excel除了简单和可视化界面外,没有其他更多的优势。 有个可怕的现实是,对比Exce…

Vue 3 中将 ref 创建的响应式对象数据转换为普通(非响应式)的数据

Vue 3 中使用 ref 创建的响应式对象数据转换为普通(非响应式)的数据,有以下几种方法: 1. 访问 .value 属性: 这是最直接、最常见的方法。 由于 ref 对象的值存储在其 .value 属性中,直接访问该属性即可获得普通数据。…

四月下旬系列

CUHKSZ 校赛 期中考试 DAY -1。 省流&#xff1a;前 1h 切 6 题&#xff0c;后 3h 过 1 题&#xff0c;读错一个本来很【】的题&#xff0c;被大模拟构造创【】了。 本地除了 VSCode 没有 Extensions&#xff0c;别的和省选差不多。使用 DEVC。 前 6 题难度 < 绿&#x…

下采样(Downsampling)

目录 1. 下采样的定义与作用​​ ​​2. 常见下采样方法​​ ​​(1) 池化&#xff08;Pooling&#xff09;​​ ​​(2) 跨步卷积&#xff08;Strided Convolution&#xff09;​​ ​​(3) 空间金字塔池化&#xff08;SPP&#xff09;​​ ​​3. PyTorch 实现示例​​ …

lottie深入玩法

A、json文件和图片资源分开 delete 是json资源名字 /res/lottie/delete_anim_images是图片资源文件夹路径 JSON 中引用的图片名&#xff0c;必须与实际图片文件名一致 B、json文件和图片资源分开&#xff0c;并且图片加载不固定 比如我有7张图片&#xff0c;分别命名1~7&…

高精度算法(加、减、乘、除、阶乘和)​

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 唯有主动付出&#xff0c;才有丰富的果…

探索大语言模型(LLM):马尔可夫链——从诗歌分析到人工智能的数学工具

提出背景与灵感起源 马尔可夫链由俄国数学家安德雷马尔可夫于1906年提出&#xff0c;最初是为了挑战当时概率论中“独立性假设”的局限性。他希望通过研究相依变量序列&#xff0c;证明即使随机变量之间存在依赖关系&#xff0c;大数定律和中心极限定理仍然成立。 灵感来源&am…

【web服务_负载均衡Nginx】三、Nginx 实践应用与高级配置技巧

一、Nginx 在 Web 服务器场景中的深度应用​ 1.1 静态网站部署与优化​ 在 CentOS 7 系统中&#xff0c;使用 Nginx 部署静态网站是最基础也最常见的应用场景。首先&#xff0c;准备网站文件&#xff0c;在/var/www/html目录下创建index.html文件&#xff1a; sudo mkdir -p…

C语言格式化输入输出总结 (printf和scanf)

一、printf格式化输出 1. 整数格式化 (%d, %i, %u, %o, %x) c复制代码 int num 42; // 以下为不同格式输出示例 printf("%d", num); // 42 (十进制) printf("%i", num); // 42 (同%d) printf("%u", num); // 42 (无符号十进制…

哈夫曼编码和哈夫曼树

哈夫曼编码&#xff08;Huffman Coding&#xff09; 是一种基于字符出现频率的无损数据压缩算法&#xff0c;通过构建哈夫曼树&#xff08;Huffman Tree&#xff09; 来生成最优前缀编码&#xff0c;使得高频字符用短编码&#xff0c;低频字符用长编码&#xff0c;从而实现高效…