一种基于集成学习算法的短期风电功率预测方法及系统与流程

文档序号:31199292发布日期:2022-08-20 01:19阅读:93来源:国知局
一种基于集成学习算法的短期风电功率预测方法及系统与流程

1.本发明涉及一种基于集成学习算法的短期风电功率预测方法及系统,属于风电功率预测领域。


背景技术:

2.随着风电在我国的能源领域应用成增长趋势,自然天气和风机运行参数等因素的影响给风力发电带来随机性和波动性等诸多挑战。根据预测的时间尺度以及相应的控制策略,可将风电功率预测分为超短期、短期、中期以及长期预测等,而风电功率预测的方法可分为统计方法、物理方法、组合预测方法、空间相关性预测方法等。统计方法通常根据对时间尺度下的历史数据进行统计分析,找到输入因素与风电功率之间的关联后进行预测,在风电功率的超短期与短期预测方面应用广泛。传统的线性回归统计方法如灰色模型、卡尔曼滤波、自回归积分滑动模型等已经无法满足风电功率的非线性特征。因此,如人工智能算法、深度学习等方法被提出,使得在时间序列下对风电功率的超短期与短期预测具有更好的预测效果。但目前多为单一预测模型,存在预测精度提升有限和泛化能力(机器学习算法对新鲜样本的适应能力)一般等局限性。所以,多模型融合的思路可以有效提高预测精准度,通过将不同模型之间的差异化转变为优势互补以此实现对单一预测模型精度不够的改进。


技术实现要素:

3.为了解决上述现有技术中存在的问题,本发明提出了一种新型基于集成学习算法的短期风电功率预测模型。
4.本发明的技术方案如下:
5.一方面,本发明提出一种基于集成学习算法的短期风电功率预测方法,包括以下步骤:
6.数据预处理,选取若干与风电功率相关的影响因素,采集各影响因素的所有实际数据并通过拉依达准则进行异常值检测,剔除异常数据并用向前填充法对异常数据进行补充,得到各影响因素的样本数据;
7.根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素;
8.建立stacking集成学习模型,所述stacking集成学习模型为包括首层的基学习器和次层的元学习器的双层结构,所述基学习器和元学习器中均设置有至少一种机器学习模型;
9.获取各参考因素的若干组实际数据作为特征参数,形成训练样本集;
10.利用训练样本集对所述基学习器进行k折交叉验证训练,将基学习器经过k次迭代后的输出作为原始数据输入元学习器,对元学习器进行训练,评估元学习器输出的结果的预测精度,达到预设的预测精度后输出最终预测结果,保存基学习器和元学习器的参数,输
出训练好的stacking集成学习模型为风电功率预测模型;
11.利用所述风电功率预测模型进行短期风电功率预测。
12.作为优选实施方式,所述根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素的方法具体为:
13.引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数;
14.计算与各影响因素对应的最优copula函数的spearman秩相关系数;
15.根据各影响因素对应的spearman秩相关系数确定各影响因素相对于风电功率的相关性,并选取若干相关性高的影响因素作为参考因素。
16.作为优选实施方式,所述引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数的具体步骤为:
17.输入各影响因素和短期风电功率的实际数据,再调用matlab中的ksdensity函数获得每一组影响因素和短期风电功率的边缘分布函数;基于每一组影响因素和短期风电功率的边缘分布函数,利用最大似然估计法得到每一组影响因素和短期风电功率对应的备选copula函数的参数估计值,进而得到每一组影响因素和短期风电功率对应的备选copula函数;
18.输入各影响因素和短期风电功率的实际数据,再调用matlab中的ecdf函数得到每一组影响因素和短期风电功率的经验分布函数,接着调用spline函数采用样条插值法得到原始样本点的经验分布函数值;其中,所述原始样本点为一组影响因素和短期风电功率的实际数据;
19.在matlab中定义一个经验copula函数,通过上述求得的原始样本点的经验分布函数值,计算原始样本点的经验copula函数值和每个备选copula函数值;
20.计算原始样本点的经验copula函数值和各备选copula函数值之间的欧氏距离,取欧式距离最小的备选copula函数作为对应影响因素和短期风电功率之间的最优copula函数;
21.通过最优copula函数计算对应的spearman秩相关系数。
22.作为优选实施方式,所述基学习器中设置有包括k最近邻算法、随机森林算法、梯度提升决策树、xg-boost和light-gbm中的一种以上机器学习模型;
23.所述元学习器中设置有light-gbm机器学习模型。
24.作为优选实施方式,在所述评估元学习器输出的结果的预测精度的步骤中,评估指标具体采用平方绝对误差mae和均方根误差rmse。
25.另一方面,本发明提出一种基于集成学习算法的短期风电功率预测系统,包括:
26.数据预处理模块,选取若干与风电功率相关的影响因素,采集各影响因素的所有实际数据并通过拉依达准则进行异常值检测,剔除异常数据并用向前填充法对异常数据进行补充,得到各影响因素的样本数据;
27.影响因素筛选模块,根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素;
28.stacking集成学习模块,所述stacking集成学习模型为包括首层的基学习器和次层的元学习器的双层结构,所述基学习器和元学习器中均设置有至少一种机器学习模型;
29.样本数据制作模块,获取各参考因素的若干组实际数据作为特征参数,形成训练样本集。
30.作为优选实施方式,所述根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素的方法具体为:
31.引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数;
32.计算与各影响因素对应的最优copula函数的spearman秩相关系数;
33.根据各影响因素对应的spearman秩相关系数确定各影响因素相对于风电功率的相关性,并选取若干相关性高的影响因素作为参考因素。
34.作为优选实施方式,所述引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数的具体步骤为:
35.输入各影响因素和短期风电功率的实际数据,再调用matlab中的ksdensity函数获得每一组影响因素和短期风电功率的边缘分布函数;基于每一组影响因素和短期风电功率的边缘分布函数,利用最大似然估计法得到每一组影响因素和短期风电功率对应的备选copula函数的参数估计值,进而得到每一组影响因素和短期风电功率对应的备选copula函数;
36.输入各影响因素和短期风电功率的实际数据,再调用matlab中的ecdf函数得到每一组影响因素和短期风电功率的经验分布函数,接着调用spline函数采用样条插值法得到原始样本点的经验分布函数值;其中,所述原始样本点为一组影响因素和短期风电功率的实际数据;
37.在matlab中定义一个经验copula函数,通过上述求得的原始样本点的经验分布函数值,计算原始样本点的经验copula函数值和每个备选copula函数值;
38.计算原始样本点的经验copula函数值和各备选copula函数值之间的欧氏距离,取欧式距离最小的备选copula函数作为对应影响因素和短期风电功率之间的最优copula函数;
39.通过最优copula函数计算对应的spearman秩相关系数。
40.作为优选实施方式,所述基学习器中设置有包括k最近邻算法、随机森林算法、梯度提升决策树、xg-boost和light-gbm中的一种以上机器学习模型;
41.所述元学习器中设置有light-gbm机器学习模型。
42.作为优选实施方式,在所述评估元学习器输出的结果的预测精度的步骤中,评估指标具体采用平方绝对误差mae和均方根误差rmse。
43.本发明具有如下有益效果:
44.本发明通过引入copula函数将变量各自联合分布函数和边缘分布函数连接在一起,能更好的分析变量之间的相关性和非线性关系;在影响短期风电功率的众多因素中,通过选择最优copula函数进而计算出与最优copula函数对应的spearman秩相关系数,可以分析得到与短期风电功率关联度较高的影响因素,节省了后续预测计算的工作量。
45.本发明还提出了stacking集成学习模型,包括基学习器和元学习器的双层结构。其中,基学习器由多个类型的机器学习算法组合而成,元学习器为light-gbm机器学习模型。由于双层的训练模式和不同类型机器学习算法的组合运用,实现了相较于单一预测模
型提高预测精度、算法优劣互补的功能,大大提高了数据训练在空间和结构上的训练缜密性。
46.通过平方绝对误差mae和均方根误差rmse对元学习器的输出结果的预测精度进行评估,可以发现本发明相较于现有方案能够有效的增大预测精度,降低预测误差,提高风电功率的有效性。
附图说明
47.图1为本发明集成学习短期风电功率预测流程图。
48.图2为本发明中选择的风电功率预测的影响因素。
49.图3为本发明经验copula函数在matlab中的设定。
50.图4为本发明中影响变量欧氏距离的计算结果。
51.图5为最优copula函数导出的spearman相关系数数据。
52.图6本发明k折交叉验证训练流程图。
53.图7现有方案与本发明的mae和rmse误差对比图。
具体实施方式
54.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
56.应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
57.术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
58.术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
59.实施例一:
60.参见图1,一种基于集成学习算法的短期风电功率预测方法,包括以下步骤:
61.数据预处理,选取若干与风电功率相关的影响因素,采集各影响因素的所有实际数据并通过拉依达准则进行异常值检测,剔除异常数据并用向前填充法对异常数据进行补充,得到各影响因素的样本数据;
62.所述相关影响因素主要分为两个方面,如图2所示:
63.包括风电机组的内部因素,如轮载温度、齿轮箱轴承温度、齿轮箱油温、发电机转速、转子转速、发电机绕组温度等;
64.以及天气因素,如温度、风速、风向等。
65.根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因
素作为参考因素;
66.建立stacking集成学习模型,所述stacking集成学习模型为包括首层的基学习器和次层的元学习器的双层结构,所述基学习器和元学习器中均设置有至少一种机器学习模型;
67.获取各参考因素的若干组实际数据作为特征参数,形成训练样本集;
68.利用训练样本集对所述基学习器进行k折交叉验证训练,将基学习器经过k次迭代后的输出作为原始数据输入元学习器,对元学习器进行训练,评估元学习器输出的结果的预测精度,达到预设的预测精度后输出最终预测结果,保存基学习器和元学习器的参数,输出训练好的stacking集成学习模型为风电功率预测模型;
69.利用所述风电功率预测模型进行短期风电功率预测。
70.本实施例提出的stacking集成学习框架下的短期风电功率进行预测模型,由于其双层的训练模式和不同类型机器学习模型的组合运用,实现了相较于单一预测模型提高预测精度、算法优劣互补的功能,大大提高了数据训练在空间和结构上的训练缜密性。且基学习器中的机器学习模型具备多元化和灵活性的特点,使得日后研究创新思路更具备发散性,有效提高了模型的应对能力。
71.作为本实施例的优选实施方式,所述根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素的方法具体为:
72.引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数;
73.计算与各影响因素对应的最优copula函数的spearman秩相关系数;
74.根据各影响因素对应的spearman秩相关系数确定各影响因素相对于风电功率的相关性,并选取若干相关性高的影响因素作为参考因素。
75.作为本实施例的优选实施方式,所述引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数的具体步骤为:
76.输入各影响因素和短期风电功率的实际数据,再调用matlab中的ksdensity函数获得每一组影响因素和短期风电功率的边缘分布函数;基于每一组影响因素和短期风电功率的边缘分布函数,利用最大似然估计法得到每一组影响因素和短期风电功率对应的备选copula函数的参数估计值,进而得到每一组影响因素和短期风电功率对应的备选copula函数;
77.输入各影响因素和短期风电功率的实际数据,再调用matlab中的ecdf函数得到每一组影响因素和短期风电功率的经验分布函数,接着调用spline函数采用样条插值法得到原始样本点的经验分布函数值;其中,所述原始样本点为一组影响因素和短期风电功率的实际数据;
78.在matlab中定义一个经验copula函数,通过上述求得的原始样本点的经验分布函数值,计算原始样本点的经验copula函数值和每个备选copula函数值;
79.计算原始样本点的经验copula函数值和各备选copula函数值之间的欧氏距离,取欧式距离最小的备选copula函数作为对应影响因素和短期风电功率之间的最优copula函数;
80.欧式距离的计算公式如下:
[0081][0082]
式中,为经验copula函数,cj(ui,vi)为备选copula函数,(ui,vi)为经验分布函数值。
[0083]
具体参见图4,图4为本实施例中,各影响因素与风电功率之间,各备选copula函数值与经验copula函数值的欧式距离计算结果。
[0084]
通过最优copula函数计算对应的spearman秩相关系数。
[0085]
spearman秩相关系数ρ计算公式如下:
[0086]
ρ=12∫
01

01
uvdc(u,v)-3
[0087]
斯皮尔曼秩相关系数的值域为[-1.1],其可以反应变量间的相关强弱,取值的绝对值越大,变量间的依赖性越强;当取值为0时,变量间没有相关性,以此为基础筛选出依赖性最强的几个影响因素。
[0088]
例如,发电机转速(gs)与风电功率之间选取frank-copula函数为其最优copula函数,因为其欧氏距离最小,通过frank-copula函数导出的spearman相关系数最能描述发电机转速与风电功率之间的非线性相关性。从copula-spearman相关系数表(copula-spearman相关系数表如图5所示)进行分析所选取影响因素的相关系数,若所选取的影响因素的相关性系数大于设定的阈值,则说明影响因素与风电输出功率之间具有较强的相关性,同时说明我们选取的影响因素作为风电功率预测模型的输入变量是有效的。
[0089]
基于本实施例,引入copula函数,分析各影响因素和风电功率之间的相关性,并基于copula函数计算spearman秩相关系数来确定各影响因素和风电功率的非线性关系,对于影响因素和风电功率的数据分布没有严格要求,为求取联合分布函数提供了灵活选择,简化了求解过程,在实际应用中可以有效选择关联强度高的影响因素为后续预测计算节省工作量。
[0090]
具体参见图6,作为本实施例的优选实施方式,在stacking集成学习模型首层的基学习器中,除了选取梯度提升决策树(gradient boosted decision tree,gbdt)、xg-boost、light-gbm为代表的boosting集成学习模型,还选取以随机森林(random forest,rf)为代表的bagging集成学习模型,最后再将k最近邻算法(k-nearestneighbor,knn)加入使用;分别选取多个不同类型的机器学习模型是考虑到选取不同类型的算法模型能让stacking集成学习模型从不同数据空间和结构去训练数据,从而充分发挥不同算法的优势,使得预测性能达到最佳。
[0091]
在次层的元学习器的机器学习模型选取中,要考虑防止过拟合现象的出现,因此选取light-gbm算法这种泛化能力好的模型。
[0092]
综上,首层的基学习器中包括gbdt、xg-boost、light-gbm、rf、knn,第二层元学习器中设置light-gbm,各机器学习模型超参数的选取直接影响到最终stacking模型的预测精度。所以,对于其中各个模型的超参数采用贝叶斯优化算法进行调参,再定义一个超级学习器,并将基学习器和元学习器封装到超级学习器中进行5折交叉验证训练。
[0093]
作为本实施例的优选实施方式,在所述评估元学习器输出的结果的预测精度的步
骤中,评估指标具体采用平方绝对误差mae和均方根误差rmse。
[0094]
平方绝对误差mae和均方根误差rmse的具体公式如下:
[0095][0096][0097][0098][0099]
式中,k是训练或测试数据的数量,是预测值,y(i)是实际值,是预测平均值,y
ave
是实际平均值。对于指标mae和rmse的值越小,模型的预测性能越好误差越小。
[0100]
为了验证本实施例提出的风电功率预测模型在不同预测步长情况下都能有较高的预测精度,分别进行10min、1h、6h、12h这四种不同时间步长的短期风电输出功率预测,并与传统单一预测模型分析对比,通过分析mae值和rmse值来验证方法的有效性,实验结果如图7所示,实现对比结果可以看出,本实施例提出的基于stacking集成算法的风电功率预测模型,相对于传统单一预测模型,指标mae和rmse的值都更小,有效说明本实施例提出的风电功率预测模型的优越性。
[0101]
实施例二:
[0102]
本实施例提出一种基于集成学习算法的短期风电功率预测系统,包括:
[0103]
数据预处理模块,选取若干与风电功率相关的影响因素,采集各影响因素的所有实际数据并通过拉依达准则进行异常值检测,剔除异常数据并用向前填充法对异常数据进行补充,得到各影响因素的样本数据;
[0104]
影响因素筛选模块,根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素;
[0105]
stacking集成学习模块,建立stacking集成学习模型,所述stacking集成学习模型为包括首层的基学习器和次层的元学习器的双层结构,所述基学习器和元学习器中均设置有至少一种机器学习模型;
[0106]
样本数据制作模块,获取各参考因素的若干组实际数据作为特征参数,形成训练样本集;
[0107]
作为本实施例的优选实施方式,所述根据各影响因素的样本数据进行相关性分析,获取与风电功率相关性高的影响因素作为参考因素的方法具体为:
[0108]
引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数;
[0109]
计算与各影响因素对应的最优copula函数的spearman秩相关系数;
[0110]
根据各影响因素对应的spearman秩相关系数确定各影响因素相对于风电功率的
相关性,并选取若干相关性高的影响因素作为参考因素。
[0111]
作为本实施例的优选实施方式,所述引入copula函数,基于各影响因素的样本数据,分别从备选copula函数中选出与各影响因素的样本数据最接近的最优copula函数的具体步骤为:
[0112]
输入各影响因素和短期风电功率的实际数据,再调用matlab中的ksdensity函数获得每一组影响因素和短期风电功率的边缘分布函数;基于每一组影响因素和短期风电功率的边缘分布函数,利用最大似然估计法得到每一组影响因素和短期风电功率对应的备选copula函数的参数估计值,进而得到每一组影响因素和短期风电功率对应的备选copula函数;
[0113]
输入各影响因素和短期风电功率的实际数据,再调用matlab中的ecdf函数得到每一组影响因素和短期风电功率的经验分布函数,接着调用spline函数采用样条插值法得到原始样本点的经验分布函数值;其中,所述原始样本点为一组影响因素和短期风电功率的实际数据;
[0114]
在matlab中定义一个经验copula函数,通过上述求得的原始样本点的经验分布函数值,计算原始样本点的经验copula函数值和每个备选copula函数值;
[0115]
计算原始样本点的经验copula函数值和各备选copula函数值之间的欧氏距离,取欧式距离最小的备选copula函数作为对应影响因素和短期风电功率之间的最优copula函数;
[0116]
欧式距离的计算公式如下:
[0117][0118]
式中,为经验copula函数,cj(ui,vi)为备选copula函数,(ui,vi)为经验分布函数值。
[0119]
通过最优copula函数计算对应的spearman秩相关系数。
[0120]
spearman相关系数ρ计算公式如下:
[0121][0122]
斯皮尔曼相关系数的值域为[-1.1],其可以反应变量间的相关强弱,取值的绝对值越大,变量间的依赖性越强;当取值为0时,变量间没有相关性,以此为基础筛选出依赖性最强的几个影响因素。
[0123]
作为本实施例的优选实施方式,所述基学习器中设置有包括k最近邻算法、随机森林算法、梯度提升决策树、xg-boost和light-gbm中的一种以上机器学习模型;
[0124]
所述元学习器中设置有light-gbm机器学习模型。
[0125]
在基学习器中分别选取多个不同类型的算法是考虑到选取不同类型的算法能让模型从不同数据空间和结构去训练数据,从而充分发挥不同算法的优势,使得预测性能达到最佳。在元学习器选取中,要考虑防止过拟合现象的出现,因此选取light-gbm算法这种泛化能力好的模型。
[0126]
作为本实施例的优选实施方式,在所述评估元学习器输出的结果的预测精度的步骤中,评估指标具体采用平方绝对误差mae和均方根误差rmse。
[0127]
平方绝对误差mae和均方根误差rmse的具体公式如下:
[0128][0129][0130][0131][0132]
式中,k是训练或测试数据的数量,是预测值,y(i)是实际值,是预测平均值,y
ave
是实际平均值。对于指标mae和rmse的值越小,模型的预测性能越好误差越小。
[0133]
实施例三:
[0134]
本实施例提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的短期风电功率预测方法及系统。
[0135]
实施例四:
[0136]
本实施例提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任一实施例所述的短期风电功率预测方法及系统。
[0137]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1