Advertisement

光伏发电预测

阅读量:

XGB、LGB在datacamp(学习网站)

data fountain与国家电投系列赛,光伏发电预测

基于一组特征进行分析研究以预测单位时间内发电量的变化情况,并采用包含9,123个训练样本与8,765个测试样本的数据集进行建模。研究中所涉及的这些特征涵盖了光伏组件的特性以及周边环境信息。

数据字段包括:编号、背面工作面温度、电站环境温度、通过计算得出的平均转换效率、A点转换效率、B点转换效率、C点转换效率、D点转换效率;同时记录了A点汇流箱端子电压值、B点汇流箱端子电压值、C点汇流箱端子电压值以及D点汇流箱端子电压值;电流方面则包括A点汇流箱电流输出值、B点汇流箱电流输出值等;此外还有各采集中功率数值以及前三采集中电功率均值;最后还包括电厂风速测量参数及风向测量参数。

数据探索性分析与异常值处理

探索性分析:

在每日时段里(即同一时段里),通过分析可以看出(即结果显示)(即可以看到),该种情况具有一定的规律性特征(具有一定的规律性)。进一步观察可得,在每个时段里约有217条记录(条目)参与统计(统计)。因此整个数据库覆盖的时间范围约为18个月左右。

对其他特征进行散点图 绘制:温度、平均功率、电压、转换效率

此外还需要对转换效率平均功率等参数进行呈现并观察各特征的空间分布情况(大部分特征呈现正态分布特性其中双峰型的空间分布在较多场景中出现)

发现异常值之后,需要**异常值判定(平均值

m

超出3σ范围的所有观测数据视为异常值);在异常值处理方面(基于时间序列数据存在关联性的特点,在出现异常情况时将缺失的数据以最近的有效数据进行填充)

相关性分析:

分析各个特征与发电量的皮尔森相关系数(在一定程度上能够反映该特征对预测结果的影响程度)

数据可视化:入射光强与发电量相关联;均值功率与发电量呈正比;表面温度与发电量呈负相关;电压值与发电量有显著差异;转换效能与发 电 量 成 正 比;风速值越大则发 电 量 越 大;风向角越大则发 电 量 越 少;环境温度越高则发 电 量 越 大

研究结果表明,在光照强度为40单位时的光谱曲线大致与发电量的数据曲线吻合;同时,在平均功率为480单位时的光谱曲线也大致吻合。

相关性不明显的变量,可以尝试对各种组合变换

特征工程

想尽一些办法,发现和制造对于预测有帮助的特征

领域特征:寻找在问题专业领域内起作用的特征

多项式特征:通过选择若干已有特征并对其进行加减乘除等基本运算来生成新的特征

光伏发电领域特征:

峰值间距(dis2peak): 表示测量点在整个周期内的分布情况。

2、温差(板温-现场温度):发现温差与发电量强度相关

3、输出电压与转化效率之比等于实际版面对接太阳能时的实际输出值;而版面对接太阳能时的实际输出值与其受到的实际光照程度密切相关;然而,在不同时间段内太阳辐射的角度会发生变化导致其测量值无法完全准确反映板面对接环境下的真实光照状况

高阶环境特征:

环境因素的两两之间的2阶交互项 可以提供较好的预测效果

在Python编程语言中,有一种称为poly feature的技术可以直接应用。通过选择特定的原始特征,在生成过程中能够自动创建多个高阶特征。当采用二阶交互项时,可能的原因包括光照对发电量的影响、温度对发电量的影响以及光照对温度的变化具有调节作用。同样地,在这种情况下(即光照与风速、风向之间),它们之间的相互作用同样具有重要意义,并且它们共同作用于提高系统的发电效率。

模型构建与调试

预测模型整体结构

这个问题属于连续目标变量回归预测范畴,并且采用了LightGBM、XGBoost以及LSTM三个模型进行分析。其中LightGBM和XGBoost属于树模型家族,而LSTM则是一种基于神经网络的model。这两种不同的类别之间存在较大的原理差异,并且其预测结果的相关性较低。通过融合这些方法能够显著提升预测效果

融合结构

第三层:采用基于XGBoost_1的技术对现有的特征组合进行优化学习,并生成相应的预测输出;随后将该预测输出作为一个新的特征参数整合到新的特征组合模型中形成完整的特征集合

第二层:通过采用LightGBM_1模型对特征组合F2进行训练过程,并从中获取其预测效果值;随后将该效果值作为新增维度纳入到特征组合F3中进行后续运算

在第三层中:通过XGBoost_2模型实现对特征组合F3的学习过程;借助LSTM算法完成特征组合F1的学习任务;通过LightGBM_2算法实现对特征组合F2的学习任务

在第四层中,我们采用XGBoost_2、LSTM以及LightGBM_2的预测输出进行加权集成。

基于LSTM的模型构建与调试

使用一个包含200个单元的LSTM单层网络

模型融合与总结

该模型的主要缺点是过拟合问题,在训练数据上表现出色,在验证集和测试集上的性能较差

以下创新方法可以提升融合后的模型表现

在Light GBM模型中,在'环境特征'这一组属性(包括'板温'、'现场温度'、'光照强度'、'风速'以及'风向')上进行了一次复制操作。这些属性在训练过程中被引用了两次。结果显示,在训练集上的误差水平基本保持一致;然而,在验证集上的误差表现更为优异。通过重复引用同一组属性来构建模型的参数设置,在一定程度上降低了数据过度拟合的风险。

2、在每折交叉验证后进行预测

单一模型通过调整其参数对模型性能产生显著影响。采用网格搜索与交叉验证相结合的方式,在给定的参数范围内寻找最佳组合。确定了最优参数后,在再次训练单一模型时采用交叉验证方法。

3、每个模型使用的特征都不同

在每个单独模型中,约90%的特征在各单独模型间具有共通性;而约剩余10%则仅存在于各个单独模型中。通过这种方式增强了各独立模型之间的差异度,并减少了对单一特定特征集合依存的可能性;这有助于提升整体系统的泛化性能;同时将有助于实现更为有效的集成效果

具体操作:

DCIC 2024光伏发电预测

比赛中提供的数据集:

气象数据包括以下各项:
时间间隔为每15分钟一次,
气压值,
相对湿度水平,
云量状况,
地面10米高度的风速,
地面10米高度的风向,
气温,
辐射强度,
降雨量,
地面百米范围内的风速,
百米范围内的风向

实际功率数据:时间(间隔15min)、发电功率、综合倍率

基本信息:光伏用户编号(f1-f9)、装机容量、经度、纬度

df_train:dataframe(418261,17) df_test:dataframe(79488,17)

该文档包含以下17个数据字段:光伏用户标识码、每隔十五分钟记录一次的时间时长、大气压强值(以帕斯卡为单位测量)、相对湿度百分比数值、云量等级指标、十米高程处的风速大小及其方向分量、百米高程处的风速大小及其方向分量、温度值以开尔文为单位表示、每平方米面积接收到的能量密度值以焦耳每平方米为单位测量以及降水量以毫米为单位记录的关键参数数值

外部数据集:

open-meteo-f1.csv——open-meteo-f9.csv(9个csv文件)

每个文件中是对应光伏用户编号所处位置的每天的气象数据,逐小时

特征(221):时间(间隔1小时)、温度等

outer_data:dataframe(657477, 222)

open-meteo-day-f1.csv——open-meteo-day-f9.csv(9个csv文件)

每个文件中的数据对应光伏用户的地理位置信息以及每日的总量气象数据,而不是分钟级别的详细气象数据

特征编号(22)包含以下各项:每日固定的时间间隔;光伏用户的唯一标识码;对应的气象编码;海拔2米处的最高气温、最低气温及感温极值;全天时间段内的平均感温值;昼夜时长数据;降水量总计、降雨量总计及积雪总量记录;降雨小时数统计指标;10米高程区间的最大风速数值及最大风向信息;全天时段内的短波辐射总量数据以及Agrarian Organization of the United Nations参考蒸发量基准值

outer_day_data:dataframe(6849,22)

最终outer_data由outer_data与outer_day_data merge在一起

数据整合

df为比赛中的数据与外部数据的整合

df:dataframe(497749, 37)

特征(37):光伏用户编号、时间(间隔15min)、气压、相对湿度、云量、10m风速(10m/s)、10m风向(°)、温度(k)、辐照强度(J/m2)、降水量(m)、100m风速(100m/s)、100m风向(°)、装机容量(KW)、经度、纬度、综合倍率、target、最匹配的日照时长数、最匹配的天气代码、2m高处的最高温度、2m高处的最低温度、2m高处的平均温度、降水量总和、雨量总和、降雪量总和、体感温度最大值、体感温度最小值、体感温度平均值、最匹配的短波辐射、最匹配的直接辐射数据、最匹配的散射辐射数据、最匹配的正辐射数据、最匹配的斜面全球辐射数据、最匹配的地面辐射数据、是白天、当前时间-日出时间、当前时间-日落时间

特征工程

①时间特征:将时间拆分为年、季节、月、日、周、分

气象特征:通过优化100米和10米风速数据,并将风速与风向信息融合、引入辐照度与温度(即辐照度/温度)作为气象特征

历史特征量:光强与前一个时间点光强差异值、光强与过去8个时间点光强差异值

④异常值处理:target中出现异常值

光强相对于当日最强光线的比例:夏季和冬季的光强分布差异较大,在尽量减少不同季节因光强变化带来的影响方面,采用比例特征可能更为合理。

⑥当天的平均光照:为了均衡不同天的光照强度的差异

⑦温度与当天最高、最低温度的差值

数据集划分

df_train: dataframe(418261,59)

df_test:dataframe(79488,59)

采用的模型

lightGBM和XGBoost

参数:

num_boost_round:迭代的次数,即决策树的数目

learning_rate:学习率

boosting_type:采用梯度提升决策树

objective:目标函数,最小化均方误差

metric:评估指标,均方根误差

num_leaves:每棵树的最大叶子节点数

verbose:控制输出信息的详细程度,-1代表不输出任何信息

seed:随机种子,用于重新结果

n_jobs:并行运行的线程数

feature_fraction:每次迭代时使用的特征占比,在每次迭代中随机选择一定比例的特征进行训练,并有助于提升模型在面对未见过的数据时的预测准确性。

bagging_fraction:在每一次迭代中所占的比例被用来随机选取一部分样本进行训练,并且这有助于提升模型的泛化性能

bagging_freq:进行bagging的频率

改写说明

交叉验证

生成一个k-fold对象,并将其用于将数据集划分为五个折叠(folds),每个折叠分别包含训练集与验证集

依次进行循环操作,在每一步中遍历所有的折叠,并通过索引对特征矩阵和目标变量进行划分处理。最终能够获得当前折叠的具体训练数据集以及对应的验证数据集。

创建一个lightGBM的数据集对象,用于训练模型

创建一个lightGBM的数据集对象,用于验证模型

使用lightGBM训练模型

使用lightGBM模型对验证集进行预测

创建一个xgboost的DMatrix,用于训练模型

创建一个xgboost的DMatrix,用于验证模型

使用XGBoost训练模型

使用XGBoost模型对验证集进行预测

计算lightGBM与XGBoost预测结果的平均值, 作为最终的预测

计算当前折叠的均方误差并累加到总的MSE中

计算所有折叠的平均均方根误差RMSE

计算一个基于RMSE的分数,这个分数越高表示模型性能越好

通过lightGBM模型计算各特征的重要性程度,并对各特征的重要性评分进行平均处理,从而便于对各特征的重要性的大小进行排序和综合评价。

预测性能评价指标

确定性预测评价指标:

平均偏差误差(mean bias error, MBE)

e_{MBE}=rac{1}{N}um_{i=1}^{N}eft

平均绝对误差(mean absolute error,MAE)

e_{MAE}=rac{1}{N}um_{i=1}^{N}eft | P_{predict}-P_{true} ight |

均方根误差(root mean square error,RMSE)

e_{RMSE}=qrt{rac{1}{N}um_{i=1}^{N}eft ^{2}}

越小越好,精确度越高

平均绝对百分比误差(mean absolute percentage error,MAPE)

e_{MAPE}=rac{100}{N}um_{i=1}^{N}rac{eft | P_{predict}-P_{true} ight |}{P_{true}}

决定系数(coefficient of determination, R2)

R{2}=1-\sum_{i=1}{N}rac{eft ^{2}}{eft ^{2}}
ar{P}

为整体样本的平均值

不确定性预测评价指标:

(1)可靠性指标:表明观测值分布与预测值分布的相似程度

预测区间覆盖率(prediction interval coverage probability,PICP)

R_{PICP}=rac{1}{N}um_{i=1}^{N}elta _{i}
elta {i}=eftegin{matrix} 1, x{i}n eft   0, x_{i}otin eft  nd{matrix}ight.
x_{i}

为预测的目标,

L_{i}

U_{i}

分别表示区间的下限和上限

(2)敏锐性指标:反应了预测分布的集中程度

预测范围的标准化平均幅度(Standardized Mean Prediction Range, PINAW)

W_{PINAW}=rac{1}{NR}um_{i=1}^{N}eft

R:最大预测值减去最小预测值,用于归一化处理

(3)综合性评价指标

该方法主要基于连续分级概率评分(continuous ranked probability score, CRPS)以及pinball损失函数来构建。

CRPSeft =nt_{-nfty }^{nfty }eft -Heft  yeq x ight  ight ^{2}=E_{F}eft | Y-y ight |-rac{1}{2}E_{F}eft | Y-Y^{'} ight |

H:为Heaviside阶跃函数

Y^{'}

Y

是从累计分布函数为

Feft

的分布中采样得到的独立随机变量

E_{F}

表示期望函数

pinball函数是专门为分位数形式的概率预测结果而设计的

全部评论 (0)

还没有任何评论哟~