基于Hadoop的SVM在风电功率预测中的应用

2018-10-31 05:46刘晓淞
韶关学院学报 2018年9期
关键词:向量功率预测

刘 倩,刘晓淞,李 时,孙 静

(1.滁州职业技术学院 机电工程系,安徽 滁州 239000;2.国网滁州供电公司 营销部,安徽 滁州 239000)

风能是发展最为迅速的绿色可再生资源,其资源丰富、永不衰竭,风力随着季节和地理位置的不同具有特殊性,在夏季和白天较少、冬季和夜里较多,所以风电系统输出功率具有波动性和间歇性的特点,电网对其准确快速地进行调度具有重要意义[1].风电功率的预测主要针对其准确性及快速性进行研究,现有的较多功率预测方法是利用历史功率数据的预测模型[2-3],基于概率分布量化指标和灰色关联决策[4],SVM预测方法采用大量历史数据特征值作为基础迭代出预测结果,随着智能电网数据的日益增加,训练和测试采用的特征值变得复杂和庞大,SVM预测方法如何在去除智能电网数据冗余的同时保证其训练的精度和快速性成为如今研究的热点,本文提出将MapReduce应用于SVM算法,并在Hadoop环境下对风电系统输出功率进行仿真验证.

1 SVM回归模型

SVM是一个有监督的学习模型,在分类、预测、模式识别、统计分类和回归分析中应用广泛,是一种求解二次规划问题和回归问题的监督式学习方法,以统计学习理论为基础,可以处理线性或非线性样本,在求解凸二次优化问题的过程中寻找最优分类超平面,避免求解陷入局部最小值.SVM回归的原理[5]:通过一个非线性映射关系φ(x)将样本映射到一个高维特征空间,并在特征空间求解下面的估计函数并进行线性回归:

由于径向基核函数优点多于其他核函数[5],在工程上得到较多使用,笔者采用径向基函数(RBF)为核函数:

SVM预测方法具有坚实的数学理论基础,该方法包含了大量以样本数为阶的矩阵计算,当数据集很大的时候,支持向量机的训练时间和存储空间也会非常巨大,普通商用计算机无法满足.

2 分布式优化

2.1 原理图

智能电网数据规模的不断扩大使得传统支持向量机在处理大规模数据时表现出训练时间长,内存不足的问题,无法实现较好的分类效果,于是出现并行式支持向量机,其算法是通过并行计算提高训练速度,其过程:将大数据样本集合TD随机地分成N个组,各个组均匀分布成小数据块,利用Map操作分别训练N小数据块[6],获得优化后的N个支持向量,再利用Reduce进行合并,重复此过程,在此过程中每个并行数据集合相互独立,在Map和Reduce阶段就删除了非支持向量[7-8],使训练过程加快了,从而简化了模型,原理图[9-10]如图 1 所示,图 2 为 Map 过程,图 3 为 Reduce 过程[11].

图1 并行层叠支持向量机结构图

图1将原始数据集TD分成8个等分,D1-D8为第一层训练集合,SV1-SV8为对D1-D8训练之后的支持向量,然后将SV1-SV8两两合并,D9-D12为合并之后得到的第二层数据集.重复以上操作过程,再次对数据集进行训练和合并,得到第三层数据集合和对应的支持向量,最后得到的支持向量集SV13作为最终的分类器模型.在此过程中,已将非支持向量进行过滤,能达到很好的并行效果.

图2 Map过程

图3 Reduce过程

MapReduce拥有高效简单的并行编程框架,有着函数式编程范式思想.图2 Map过程通过设置Random()函数,其作用是将TD1-TD6均匀分布到D1-D6块中,这个过程能得到具有代表性的训练样本;图3 Reduce过程将每个数据集进行训练,这个过程整合Map的输出结果,消除了非支持向量,使训练过程加快了.

2.2 并行式支持向量机算法流程

并行式支持向量机算法流程如下:

(1)判断当前迭代的层数i;

(2)若当前迭代次数i∈(1,n),Map过程将原始数据集均匀随机地分成2n-i个小数据块;Reduce过程会分别独立的将每个小数据块进行训练,去除非支持向量,得到支持向量并输出,同时迭代层数i减1,否则本算法运行结束,输出最终训练模型.

注:在每个Map,Reduce优化阶段数据分割和中间支持向量机的优化算法采用的梯度上升和下降算法:

其中Qi是核矩阵,ei是全1矩阵,根据上面公式来测试子数 据块是否违反最优化KKT条件,如果有数据块不满足约束条件,则将其转化为二次规划问题,这个过程使原始目标函数变小,同时使得正确率更高.

3 实验

3.1 实验环境及数据

本实验采用5台PC机和一台交换机,其硬件配置:PC机均为双核CPU,内存1 GB,硬盘100 GB,网络环境为百兆局域网,Hadoop集群工作在Linux环境下,MapReduce程序使用Eclipse工具Java语言开发,集群间节点通信采用SSH服务.

实验训练和测试的数据集采用滁州市某风力电厂数据,对其预处理之后有12个特征值,分别为风速、有功功率、无功功率、环境温度、油温温度、轴承温度、相电流、发电机温度、相电压、机舱温度、风向角、总电量,整个数据集共有7 284行,训练数据和测试数据比例为3:1.

3.2 实验预测效果评价指标

本实验采用平均相对误差作为风力发电功率预测结果评价指标:

式中Li、分别为风机发电功率的真实值和预测值.

3.3 实验验证

用笔者算法提出的并行SVM算法和传统单机SVM算法对风机数据集分别进行训练和测试,采用2017年10月1日至11月30日的风机发电功率为训练数据(部分数据如表1所示),预测2017年12月1日至6日,观察记录训练所需的时间和正确性结果.图4为两种预测模型下日负荷预测曲线;表2显示了两种预测模型的平均相对误差预测结果.

表1 风电场部分训练状态参数

表2 平均相对误差预测结果对比 2017年

从表2可以看出经Hadoop优化后的SVM模型平均相对误差值有所减少.

图4为某天24小时内风电厂发出功率的日负荷预测图,a曲线为当日风机实际发出功率的曲线,b曲线为本文算法预测的风电场日发出功率,c虚线为SVM预测的风电场日输出功率曲线.从仿真结果可以看出在预测时间的3-10时、11-16时以及预测曲线末尾处本文算法的预测效果得到明显改善,此实验说明经过Hadoop优化之后的SVM预测模型在精度上能够得到一定提升.

图4日负荷预测曲线

图5 为笔者采用的预测算法和传统SVM预测算法在不同大小数据集的情形下系统运行时间对比曲线图,可看出在训练样本较少的阶段,由于笔者提出的分布式SVM结构在Map训练阶段和Reduce训练阶段也需要耗费时间,导致其在运行时间上并没有优势,说明在小样本的情况下,本文算法模型在运行时间上并不足以体现出其分布式算法的特点;随着训练样本数量的增加,传统的SVM模型的训练时间增加明显,经Hadoop优化后的分布式SVM模型的训练时间增幅不大,说明本文的算法在大数据集情况下在减少系统运行时间上有很大优势,所以,将Hadoop优化后的分布式SVM模型运用于风电功率预测具有一定的理论基础,可以取得较好的结果.

图5 不同预测模型运行时间对比曲线

4 小结

笔者针对现有的智能电网大数据情况下如何快速准确对风力发电功率进行预测问题,提出用Hadoop对SVM进行优化,利用MapReduce建立分布式SVM寻优模型,通过实验对风电场输出功率进行预测分析,实验结果表明:在大数据特征集合下本文算法可快速有效地处理大规模的数据集,减少预测系统的训练和预测时间,提高算法计算效率,得到较高正确率.

猜你喜欢
向量功率预测
无可预测
『功率』知识巩固
功与功率辨
追本溯源识功率
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
向量的分解
聚焦“向量与三角”创新题
做功有快慢功率来表现
不必预测未来,只需把握现在