技术领域
本发明涉及一种风电场短期风速预测领域,尤其是涉及一种基于特征工程的XGboost(eXtreme Gradient Boosting, XGboost)风速短期预测方法。
背景技术
中国新能源发电装机规模将继续快速扩大。大量风机的接入将给电网带来很大冲击,准确快速的风速预测能够给电网调度提供信息,提前做好调度准备,有效降低风电并网危害。
目前对于风速预测模型方面的研究,可以分为物理模型以及统计模型。物理模型对于超过6小时的风速预测准确度更高,该模型关注天气对风速的影响,使用风速、风向、温度、压力、地形粗糙度、风电场布局和数值天气预报作为整个模型的输入,以此来预测未来的风速数据。但是该模型训练过程中数据获取条件较其它方法苛刻,普适性不强,需要超级计算机系统的支持才能获取精确的预测结果。
统计模型是利用历史时间序列数据进行预测的一种方法,而目前的统计模型相关研究中几乎都只针对序列本身进行研究,数据利用度不高。XGboost是在梯度提升决策树(Gradient Boosting Decision Tree, GBDT)的基础上,在算法上和工程上作出了许多改进,能够多线程实现回归树的并行构建,将计算速度和效率发挥到了极致。本文创新性地提出了一种数据预处理方法,将风速序列包含的数字特征提取出来形成特征序列,与原有时间序列结合成为时间-特征序列,采用XGboost算法对风速时间-特征序列进行预测。
发明内容
本发明的目的在于考虑到风速的非线性及不稳定性,如何进一步提高风速预测模型的准确性。
为了解决上述技术问题,本发明的技术方案是提供了一种风电场短期风速预测方法,其特征在于,包括以下步骤:
步骤一:采集风电机组端风速数据,构建基础的基于时间序列的风速原始数据集;
步骤二:对原始数据集进行数据预处理,采用滑窗的方法,将基于原始数据集的风速时间序列展开形成风速滑窗时间序列;将基于原始数据集的风速时间序列包含的统计数字特征提取出来形成数字特征序列,风速滑窗时间序列与数字特征序列结合成为风速时间-特征序列,作为预测模型的输入;
步骤三:采用XGboost算法对步骤二提取风速时间-特征序列进行训练建模,得到风速预测模型;
步骤四:采用风速预测模型对风速时间-特征序列进行预测,得到风速预测数据。
所述步骤一中,对原始风速数据集进行统计,对部分缺省数据做删除预处理;
所述步骤二中,对原始数据集进行数据预处理,采用滑窗的方法,设置窗口大小为25,将一维的风速序列展开成25维的风速滑窗序列,对每个滑窗内部的数据提取一组统计数字特征序列,包含数学期望,最大值,最小值,标准差,极差等5种数字特征,将特征序列与滑窗时间序列结合后形成时间-特征序列。
所述步骤三中,采用XGboost算法对步骤二提取风速时间-特征序列进行训
练建模,得到风速预测模型,该算法各计算定义如下:
XGboost目标函数:
其中,
进行剪枝操作,防止过拟合。
第t次迭代时的目标函数:
基于前t-1次的预测值将误差函数在
式中:
正则项具体如式:
式中:T为叶子节点的数目;
对树函数f作变换:
统一i,j的求和:
令
XGboost算法的打分函数:
本发明首先采用滑窗法提取风速时间-特征序列,将该序列做为预测模型的输入,接着采用XGboost算法建立风速预测模型,对风速时间-特征序列进行短期预测。实验结果显示该方法能有效提高短期风速模型的预测精度。
附图说明
图1为本发明一种基于灰度共生矩阵的短期风速预测方法的XGboost风速短期预测流程示意图。
图2为本发明XGboost算法的流程示意图。
具体实施方式
本发明提出一种基于灰度共生矩阵的短期风速预测方法,其流程示意图如图1所示,下面将实施的方案进行详细阐述,该方法包括以下步骤。
步骤1:采集风场历史实测风速数据,构建基础的基于时间序列的风速原始数据集,比如原始数据集为某风电场2020年1月-2020年10月间的风电机组端实测风速数据,采样间隔为10分钟,对部分缺省数据做删除预处理后,共得到数据量34644个;
步骤2:对原始数据集进行数据预处理,采用滑窗的方法,设置窗口大小为25,将一维的风速序列展开成25维的风速滑窗时间序列,对每个滑窗内部的数据提取一组统计数字特征形成数字特征序列,统计数字特征包含数学期望、最大值、最小值、标准差、极差等5种数字特征,将数字特征序列与风速滑窗时间序列结合后形成时间-特征序列;对于输出数据,则取数据的第26个数据点开始往后的数据。
最后形成了三种序列,分别为:
风速滑窗时间序列:单独的滑窗数据序列,25维;
数字特征序列:单独的数字特征序列,5维;
时间-特征序列:将风速滑窗时间序列与数字特征序列结合起来,构成了30维的模型训练输入数据;
步骤3:采用XGboost算法对步骤2提取风速时间-特征序列进行训练建模,设置前34000组输入输出数据为训练集,后619组输入输出数据为验证集;设置XGboost算法模型参数:深度为5;学习率为0.007;objective='reg:gamma';该算法内容如下:
XGboost算法的基本思想是使用贪心法枚举出所有节点,计算各个节点分裂前后的信息增益,选出信息增益最大的,再进行切分,以此类推。
XGboost目标函数:
其中,
进行剪枝操作,防止过拟合。
第t次迭代时的目标函数:
基于前t-1次的预测值将误差函数在
式中:
正则项具体如式:
式中:T为叶子节点的数目;
对树函数f作变换:
统一i,j的求和:
令
XGboost算法的打分函数:
该算法流程为:
Step1: 初始化,输入训练集样本I,迭代次数T,损失函数L,正则化系数γ,λ,初始迭代次数t=1;
Step2:计算所有样本在当前轮损失函数L基于预测值的一阶导数和
Step3:设置特征序号k=1,设置默认参数score=0,
Step4:将样本按特征k从小到大排列,一次取出样本,计算样本放入子树后新的
Step5:更新分数:
Step6:判断特征序列k是否为特征总数K,若是,则到下一步;若否,执行k=k+1且返回Step3;
Step7:分裂子树,基于最大score对应的划分特征和特征值分裂子树
Step8:判断score是否为0,若是,则到下一步;若否,则返回Step3继续执行特征划分;
Step9:判断t是否为T+1,若是,则流程结束;若否,则执行t=t+1且返回Step2开始下一次迭代。
XGboost算法流程图如图2所示。
使用测试集检验预测模型的准确度,采用以下五种预测精度分析评价标准进行预测误差分析与评价,进而修正最终的风速预测模型,分别为:归一化均方根误差RMSE、均方误差平方和MSE、平均绝对误差MAE、误差最大值以及绝对中位差;其计算如下式所示:
其中,n表示数据的总数,
步骤四:根据步骤三中验证后的风速预测模型对风速时间-特征序列进行预测,得到短期的风速预测数据;根据预测的短期风速为风电场运行提供决策支持。
具体对于风电场而言,风机端控制系统可以根据预测的短期风速提前进行变桨动作或进行风能捕获最大化调节;对于电网调度而言,通过预测短期风速估算风电场发电功率情况,进行人为或自动干预作出最优调度决策。
机译: 一种基于Xgboost的优惠券使用量预测方法
机译: 短期风速和风电的预测方法以及电源线电压的预测方法
机译: 短期风速的预测方法以及风电和电源线电压的预测方法