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

第三届世界科学智能大赛新能源赛道:新能源发电功率预测-数据处理心得体会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.xdnf.cn/news/35065.html

相关文章:

  • Java @Serial 注解深度解析
  • day46——两数之和-输入有序数组(LeetCode-167)
  • 人工智能在智慧农业中的应用:从田间到餐桌的变革
  • 【Vue】布局解析
  • Manus技术架构、实现内幕及分布式智能体项目实战 线上高级实训班
  • 洛谷的几道题
  • 某局部三层休闲娱乐中心建筑设计与结构设计
  • 19-算法打卡-哈希表-四数相加II-leetcode(454)-第十九天
  • @EnableAsync+@Async源码学习笔记之五
  • 第十届团体程序设计天梯赛-上理赛点随笔
  • 学习笔记: Mach-O 文件
  • Datawhale AI春训营 世界科学智能大赛--合成生物赛道:蛋白质固有无序区域预测 小白经验总结
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(钢铁企业生产计划管理系统)
  • 支持中文对齐的命令行表格打印python库——tableprint
  • cesium中postProcessStages全面解析
  • 13.第二阶段x64游戏实战-分析人物等级和升级经验
  • JNI 学习
  • Linux基础IO(九)之软链接
  • 洛谷P3373线段树详解【模板】
  • QML动画--ParticleSystem
  • 构造函数和析构函数
  • 数据结构排序算法全解析:从基础原理到实战应用
  • LabVIEW 程序维护:为何选靠谱团队?
  • C# 变量||C# 常量
  • Linux教程-常用命令系列一
  • 定制一款国密浏览器(10):移植SM2算法前,解决错误码的定义问题
  • 如何实现一个MCP server呢?
  • 基于蚁群算法的柔性车间调度最优化设计
  • mysql的函数(第二期)
  • Linux下 文件的查找、复制、移动和解压缩