买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于spark的Ftrl电压预测方法_国网福建省电力有限公司;国家电网公司;国网福建省电力有限公司电力科学研究院;国网信通亿力科技有限责任公司;中国科学技术大学_201710163791.3 

申请/专利权人:国网福建省电力有限公司;国家电网公司;国网福建省电力有限公司电力科学研究院;国网信通亿力科技有限责任公司;中国科学技术大学

申请日:2017-03-19

公开(公告)日:2020-10-13

公开(公告)号:CN106980906B

主分类号:G06Q10/04(20120101)

分类号:G06Q10/04(20120101);G06Q50/06(20120101)

优先权:

专利状态码:有效-授权

法律状态:2020.10.13#授权;2017.08.18#实质审查的生效;2017.07.25#公开

摘要:本发明涉及一种基于spark的Ftrl电压预测方法,首先,获取历史电力负荷数据以及日均温度,建立特征维度,建立特征平台;其次,spark数据特征处理;然后,根据实际获取的电力负荷数据以及日均气温,建立基于Ftrl在线训练模型,进行低电压预测。本发明所提出的一种基于spark的Ftrl电压预测方法,基于spark框架提出ftrl算法,针对海量电压数据,提取有效特征,搭建ftrl实时计算平台,建立高容错、实时、准确、快速的低电压预测系统,该系统可以有效实现低电压预测告警,相对目前的人工监测机制有了很大改善。

主权项:1.一种基于spark的Ftrl电压预测方法,其特征在于,包括如下步骤:步骤S1:获取历史电力负荷数据以及日均温度,建立特征维度,建立特征平台;步骤S2:spark数据特征处理;步骤S3:建立基于Ftrl在线训练模型;步骤S4:根据实际获取的电力负荷数据以及日均气温,通过所建立的基于Ftrl在线训练模型,完成实时对样本数据进行计算,得出低电压程度的结果值,并根据历史数据用回归模型进行结果转换,得到预测结果;所述特征平台对按天对电网类数据进行spark任务调度处理,采用hive分区存储,数据按日期分区进行存储,不同类型数据根据预设规则创建对应的hive表,每天的实时数据写入当天日期对应的分区中;在进行特征数据存储时,剔除丢失电压数据、电流数据以及采集点数据;在spark读取hive分区数据时,启动一个map任务将缺失的数据过滤掉;在提取特征时做归一化处理,将数据标准化输出到保持特征的hive表中,并按分区存储;在进行特征数据提取时,对对应的数据进行join操作,过滤掉key对应的value数量大于预设标准数量的数据,提高shuffle操作并行度,采样产生倾斜的key拆分进行join操作,以解决数据倾斜。

全文数据:一种基于spark的FtrI电压预测方法技术领域[0001]本发明涉及数据挖掘技术领域,特别是一种基于spark的Ftrl电压预测方法。背景技术[0002]配电网中的低电压现象受多维度因素的影响。总结可能会有以下原因:[0003]1季节因素。很多地区的用电负荷随着天气温度影响变化幅度很大,再精密的考虑也无法做到电网系统可以应对所有的负荷状态。需要配电系统可以智能化,根据历史数据来进行预测调整,让电压稳定在一个合理的区间。[0004]2人为因素。在农村乡镇比较显著,特别农村低电压线路为三相四线型,工作人员容易在电线杆导线接电,容易造成三相不平衡。[0005]3地域因素。工业发达城市、绿化城市、学校、工厂、公司等,不同区域的用电方式、尚峰期有差异。[0006]对这些因素结合海量历史数据进行分析,提取出低电压相关的有效特征,用大数据框架处理,算法优化模型,可以对低电压预测提供有效的支持。[0007]大数据已经融入到各行各业,且已经在很多领域取得显著成功,互联网大数据思想可以应用到很多场景,在电网类企业,目前也应用极为广泛。低电压包含的历史数据也是海量级别。需要分布式存储系统、计算框架、以及高容错机制才能满足低电压预测告警的准确、实时、安全性。[0008]针对电压类数据,每个区域每时可能会产生数T级别数据,需要用业界广泛实用的Hive分区进行存储。在分布式计算框架选择上,国内外比较流行的有hadoop、spark等。相对于hadoop,spark将中间数据写入内存,省去了mapreduce大量的读写磁盘io操作,而且spark提供的数据集操作类型很多,而hadoop只有map和reduce。对于迭代运算,以及低电压预测实时要求高的场景更加适合,也更加快速。[0009]目前基于大数据的低电压预测业界已经有一些比较成熟的研究。例如,利用自组织神经网络、逻辑回归进行低电压预测,根据用电信息系统数据处理,建立数据分析平台对电压实时监测。但是传统的批量算法无法有效处理超大规模电网类数据和在线数据流。对此提出基于spark的ftrl算法应用于低电压预测。在线ftrl算法google公司从理论到实践已经工程化实现,需要结合低电压应用场景,将算法拓展到分布式spark集群下,发明内容[0010]本发明的目的在于提供一种基于spark的Ftrl电压预测方法,以克服现有技术中存在的缺陷。[0011]为实现上述目的,本发明的技术方案是:一种基于spark的Ftrl电压预测方法,包括如下步骤:[0012]步骤SI:获取历史电力负荷数据以及日均温度,建立特征维度,建立特征平台;[0013]步骤S2:spark数据特征处理;[0014]步骤S3:建立基于Ftrl在线训练模型;[0015]步骤S4:根据实际获取的电力负荷数据以及日均气温,通过所建立的基于Ftrl在线训练模型,进行低电压预测。[0016]在本发明一实施例中,在所述步骤Sl中,利用配电网原始数据,结合业务场景,对电压影响因素进行分层归类;建立特征工程,通过离线数据验证特征的有效性,将评估效果符合预设标准的特征加入到线上实时模型。[0017]在本发明一实施例中,所述配电网原始数据从业务应用系统、电能服务管理平台、营销业务管控平台、电源运营管理以及实时监测系统的日志数据中获取;所述特征包括:设备层、运营系统以及用户类;所述设备层包括:供电半径、线径大小以及配变容量;所述运营系统包括:发电量、负荷类以及功率电压电流;用户类包括:用户负荷曲线、冻结电能示值以及低压投诉。[0018]在本发明一实施例中,在所述步骤S2中,所述特征平台对按天对电网类数据进行spark任务调度处理,采用hive分区存储,数据按日期分区进行存储,不同类型数据根据预设规则创建对应的hive表,每天的实时数据写入当天日期对应的分区中;[0019]在进行特征数据存储时,剔除丢失电压数据、电流数据以及采集点数据;在spark读取hive分区数据时,启动一个map任务将缺失的数据过滤掉;在提取特征时做归一化处理,将数据标准化输出到保持特征的hive表中,并按分区存储;[0020]在进行特征数据提取时,对对应的数据进行join,过滤掉key对应的value数量大于预设标准数量的数据,提高shuffle操作并行度,采样产生倾斜的key拆分进行join操作,以解决数据倾斜。[0021]在本发明一实施例中,在所述步骤S3中,包括离线训练和在线实时训练;所述在线实时训练在线计算结果权重,所述离线训练离线计算结果权重;根据AUC对两种村联方式的结果权重进行效果对比,将得分高的结果写入缓存中,并将效果对比结果以及得分高的结果发送至在线实时训练;所述在线实时训练通过实时计算,输出在线计算结果;根据实时计算结果以及得分高的结果更新计算结果权重。[0022]在本发明一实施例中,在出现故障的情况下,将所述离线训练的历史训练权重数据导入至所述在线实时训练。[0023]在本发明一实施例中,所述离线训练按天进行增量式训练,根据影响电压质量的特征指标构建训练数据样本集,并对数据样本集进行测试集验证集划分;通过spark任务,将AUC值最高的一组参数对应的数据转换成json串保存到hive分区表中;将每天训练样本加进来,首先读取hive中的历史训练结果,解析json进行增量式训练,且将hive分区表中存储的取出历史训练样本和新增样本作为训练样本进行增量训练。[0024]在本发明一实施例中,所述在线实时训练完成实时对样本数据的计算,得出低电压程度结果值,根据历史数据用回归模型进行结果转换,预测低电压结果;所述在线实时训练每次新样本处理后的权重更新公式如下:[0026]对上式进行改写展开后,等价于求解一个最优化问题:[0028]其中,G1:tW是对损失函数的估计山||W|I1表示LI正则,;表示L2正则,〇s表示学习速率。[0029]相较于现有技术,本发明具有以下有益效果:本发明所提出的一种基于spark的Ftrl电压预测方法,整体的模型比较复杂,有效特征提取是其中关键的部分,对于电压影响因素,通过对数据预处理分析,提取有用的模型特征,对不同维度特征建立离线模型去验证结果。采用基于spark框架提出ftrl算法,针对海量电压数据,提取有效特征,搭建ftrl实时计算平台,建立高容错、实时、准确、快速的低电压预测系统,该系统可以有效实现低电压预测告警,相对目前的人工监测机制有了很大改善,保持了高性能,高容错,有效对低电压进行预测告警。附图说明[0030]图1为本发明一实施例中spark架构图。[0031]图2为本发明一实施例中spark应用调度流程图。[0032]图3为本发明一实施例中低电压预测的特征维度。[0033]图4为本发明一实施例中ftrl低电压预测整体业务逻辑图。[0034]图5为本发明一实施例中离线ftrl不同周期AUC评估图。具体实施方式[0035]下面结合附图,对本发明的技术方案进行具体说明。[0036]进一步的,在本实施例中,Spark采用分布式框架中经典的Master-Slaver模型。如图1〜2所示,Master作为集群主调控制元,负责整个集群任务的调度与执行。Worker是其中的计算节点,执行master的调度命令,以及通过心跳向主控节点定期汇报状态。Executor负责任务的调度执行。Client作为客户端提交应用,Driver负责一个应用的执行。[0037]spark在模块间通信用基于Scala开发的AKKA框架。Actors是一些包含状态和行为的对象。彼此之间用显式传递消息进行通信,每个对象维持一个消息队列,发送和接受的消息会被存放在他们的信箱中。Sprak有三种不同的模式:local模式,本地单机环境,主要为了测试应用,无实际价值;Standalone模式;YARN模式。整体上看,有四个调度级别,AppIication调度、Job调度、Stage调度、任务调度。下图概述了调度过程。[0038]从已有数据提取有效特征,结合特征提取最合适的参数,是最优化问题。针对大规模的台区配电数据,传统的批量离线处理在性能以及实时性上已经无法满足要求,特别低电压预测这种场景下,需要有在线处理的方法来解决这类问题。例如,在对一系列电压数据进行训练后,来了一条新的数据,需要预测这条样本数据是否会产生异常电压。这类问题表示为:针对一个输入X=[XI,X2,...,XN],通过某个函数hX计算,输出结果Y。根据Y连续还是离散,预测被分为分类或者回归问题。利用样本数据{Xj,YjIj=l,2,...,M}训练hX的过程就是最优化求解的过程。常见的求解方法有梯度下降、牛顿法、拟牛顿等批量离线处理方法,笨重不高效。Ftrl的提出为在线最优化带来了福音,可以有效解决高炜度数据量中常出现的稀疏性问题。[0039]在线学习在低电压预测时,优势在于每来一个新的电压特征数据样本,就用该样本产生的loss和梯度对已有的增量式模型做一次迭代,一个一个进行实时训练,可以满足大规模数据的场景。Ftrl工程实现如下程序所示,对每一维W单独训练更新,每维特征用不一样的学习率,在代码中就是lamda2前面的一项。和W全部特征利用相同的学习率比起来,这种方案充分解决了样本数据在不同类别特征分布不均匀性。比如低电压预测中,天气维度的特征训练样本比较少,那么这个维度的特征在对样本训练中,速度可以维持一个比较大的值,这样每来一个训练样本,就能做到在之前的梯度上增加一大步,不用和其他特征维持一个统一的步调。这种实现对样本分布不均匀的场景非常合适。[0041]本发明实施例提供一种基于spark的Ftrl电压预测方法。该方法主要包括如下步骤:[0042]步骤SI:如图3所示,建立特征维度:综合原始数据,结合业务场景,对电压的各类影响因素进行分层归类。建立特征工程。对特征的有效性可以通过离线数据来进行验证,评估效果好的特征加入到线上实时模型中去。[0043]进一步的,由于配电网整体系统非常庞大复杂,包括业务应用系统、电能服务管理平台、营销业务管控平台、电源运营管理、实时监测系统等。这些数据可以反应电网的负荷、安全健康程度。在本实施例中,低电压预测很多训练数据,特征生成数据可以从这些系统日志数据去获取。[0044]在本实施例中,将获取的历史电力负荷数据以及日均温度作为综合原始数据。[0045]步骤S2:spark数据特征处理:对于海量电网系统数据,首先要考虑的是存储机制。传统的关系数据库已经无法满足存储要求。Hive是基于hadoop分布式的数据仓库,查询功能和普通的sql—样。可以将普通的sql查询语句转换成map-reduce任务在分布式集群上执行。数据按日期分区进行存储,不同类型数据按规则创建对应的hive表,每天的实时数据写入当天日期对应的分区中。这样的话spark后续读取数据按分区载入,速度性能会明显快很多。[0046]进一步的,特征平台对按天对电网类数据进行spark任务调度处理。首先需要剔除各类脏数据,例如丢失的电压、电流、采集点数据等。在本实施例中,为了保持样本的完整性,需要在spark读取hive分区数据时启动一个map任务将缺失的数据过滤掉。为了加快后面算法层的收敛速度,需要在提取特征时做归一化处理,将数据标准化输出到保持特征的hive表中,同样按分区存储。[0047]进一步的,特征提取中存在spark中一个非常影响性能的因素:数据倾斜。电网不同系统产生的数据存储在不同的hive表中,提取特征过程需要对这些数据进行join。但是有的时候大部分task的执行都非常快,个别task执行极慢,或者原本正常的spark作业可以执行,突然报出OOM内存溢出)错误。原因很简单:数据倾斜,Shuffle的时候,需要将key—样的数据拉取到一个task上执行,如果某个key对应的value非常庞大,导致这个task执行很慢,整个spark作业进度由这个task的时间决定,就会造成这种问题。不同task任务的执行时间的差异,有的相差很多倍,造成数据倾斜。在本实施例中,可以通过过滤掉少数key对应value数量明显大于标准的数据。提高shuffle操作并行度,采样产生倾斜的key拆分进行join操作来有效解决数据倾斜导致的问题。[0048]步骤S3:建立基于Ftrl在线训练模型:模型的构建主要分为俩大块:离线训练和在线实时计算,如下图4所示。增加离线训练,主要为了做容错备份机制。在线实时计算任务可能会出故障,训练的数据写入缓存,但是缓存出故障或者某天的数据异常,导致历史积累的权重数据丢失,造成的影响是无法回滚有个离线训练机制,在线任务出故障,前期累积的训练权重可以从离线导入在线。[0049]进一步的,离线训练按天进行增量式训练,根据影响电压质量的特征指标构建训练数据样本。不断加入比较典型的台区数据进行补充完善。对数据集进行测试集验证集划分。不断优化。AUC最好的一组参数通过spark任务将结果转换成json串保存到hive中。每天训练样本加进来,首先读取hive中的历史训练结果,解析json进行增量式训练。每天的结果存储在分区表中,是备份容错的一个很好的措施。不至于因为一次的训练样本效果不佳而影响历史训练结果。可以取出历史的某一天结果来和新的样本进行增量训练。如图5所示,为离线训练不同时间周期AUC评估图。[0050]进一步的,在线ftrl算法综合考虑了Fobos和RDA算法关于正则项和W的区别,每次新样本处理后的权重更新公式如下所示:[0052]Ftrl算法的前身是ftr,每次找到让之前所有损失函数之和最小的参数,算法大概流程如下:[0053]1:随机初始化w;随机初始化比直接赋值效果好;[0055]A得到损失函数Ft[0056]B更新权j[0057]Ftrl在ftr的基础上增加了一个正则项。上面给出了ftrl权重更新公式,其中,G1:tW是对损失函数的一个估计III,-WnΊί是控制w也就是model每次迭代中变化不要太大,|W|I1代表Ll正则,用于获取稀释解。〇s表示学习速率,学习速率可以通过超参数自适应学习其中α和β是超参数,t表示第t次迭代。[0058]上述公式中出现L2正则项和正则项,这一项的引入不影响FTRL的稀疏性,使计算结果更加平滑。公式看上去很复杂,进行改写展开后会发现等价于求解一个最优化问题:[0060]针对特征权重各个维度柝解成N个独立的标量最小化问题。上式中最后一项相对于W来说是一个常数项,并且〃。那么上式等价于:[0062]上式可以看出,引入L2正则化对于FTRL结果的稀疏性产生任何影响。在一个标准OGD中使用的是一个全局学习策略,这个策略保证了学习率是一个正的非增长序列,对于每个特征的炜度都是一样的。[0063]算法的迭代速度非常快,在线计算这种实时场景下非常有实用性,低电压预测可以实时进行处理给出预测结果反馈给业务端。[0064]进一步的,在线ftrl可以完成实时对样本数据进行计算,得出低电压程度这样的结果值,可以根据历史数据用回归模型进行结果转换,预测结果。[0065]通过实施例提供的上述方案,将ftrl作为低电压预测的算法,将离线训练和在线实时计算有效的联系了起来,同时,在处理过程中,没有破坏数据的原始性;另外,针对数据集不充分的缺陷,设置边际增量加以补充;而对于传统的将负荷转化为时间序列处理中,无法进行中长期预测的问题,本方案得到了很好的解决。[0066]进一步的,上述实施例可以通过软件实现,也可以借助软件加必要的web应用平台的方式来实现,且可以以系统产品的形式体现出来,外部可以调用封装好的API接口,而无需掌握内部实现细节。[0067]以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

权利要求:1.一种基于spark的Ftrl电压预测方法,其特征在于,包括如下步骤:步骤SI:获取历史电力负荷数据以及日均温度,建立特征维度,建立特征平台;步骤S2:spark数据特征处理;步骤S3:建立基于Ftrl在线训练模型;步骤S4:根据实际获取的电力负荷数据以及日均气温,通过所建立的基于Ftrl在线训练模型,进行低电压预测。2.根据权利要求1所述的一种基于spark的Ftrl电压预测方法,其特征在于,在所述步骤Sl中,利用配电网原始数据,结合业务场景,对电压影响因素进行分层归类;建立特征工程,通过离线数据验证特征的有效性,将评估效果符合预设标准的特征加入到线上实时模型。3.根据权利要求2所述的一种基于spark的Ftrl电压预测方法,其特征在于,所述配电网原始数据从业务应用系统、电能服务管理平台、营销业务管控平台、电源运营管理以及实时监测系统的日志数据中获取;所述特征包括:设备层、运营系统以及用户类;所述设备层包括:供电半径、线径大小以及配变容量;所述运营系统包括:发电量、负荷类以及功率电压电流;用户类包括:用户负荷曲线、冻结电能示值以及低压投诉。4.根据权利要求1所述的一种基于spark的Ftrl电压预测方法,其特征在于,在所述步骤S2中,所述特征平台对按天对电网类数据进行spark任务调度处理,采用hive分区存储,数据按日期分区进行存储,不同类型数据根据预设规则创建对应的hive表,每天的实时数据写入当天日期对应的分区中;在进行特征数据存储时,剔除丢失电压数据、电流数据以及采集点数据;在spark读取hive分区数据时,启动一个map任务将缺失的数据过滤掉;在提取特征时做归一化处理,将数据标准化输出到保持特征的hive表中,并按分区存储;在进行特征数据提取时,对对应的数据进行join,过滤掉key对应的value数量大于预设标准数量的数据,提高shuffie操作并行度,采样产生倾斜的key拆分进行join操作,以解决数据倾斜。5.根据权利要求4所述的一种基于spark的Ftrl电压预测方法,其特征在于,在所述步骤S3中,包括离线训练和在线实时训练;所述在线实时训练在线计算结果权重,所述离线训练离线计算结果权重;根据AUC对两种村联方式的结果权重进行效果对比,将得分高的结果写入缓存中,并将效果对比结果以及得分高的结果发送至在线实时训练;所述在线实时训练通过实时计算,输出在线计算结果;根据实时计算结果以及得分高的结果更新计算结果权重。6.根据权利要求5所述的一种基于spark的Ftrl电压预测方法,其特征在于,在出现故障的情况下,将所述离线训练的历史训练权重数据导入至所述在线实时训练。7.根据权利要求5所述的一种基于spark的Ftrl电压预测方法,其特征在于,所述离线训练按天进行增量式训练,根据影响电压质量的特征指标构建训练数据样本集,并对数据样本集进行测试集验证集划分;通过spark任务,将AUC值最高的一组参数对应的数据转换成json串保存到hive分区表中;将每天训练样本加进来,首先读取hive中的历史训练结果,解析json进行增量式训练,且将hive分区表中存储的取出历史训练样本和新增样本作为训练样本进行增量训练。8.根据权利要求5所述的一种基于spark的Ftr1电压预测方法,其特征在于,所述在线实时训练完成实时对样本数据的计算,得出低电压程度结果值,根据历史数据用回归模型进行结果转换,预测低电压结果;所述在线实时训练每次新样本处理后的权重更新公式如下对上式进行改写展开后,等价于求解一个最优化问题:其中,G1:tW是对损失函数的估计A11IW|I1表示LI正则丨表示L2正则,〇s表示学习速率。

百度查询: 国网福建省电力有限公司;国家电网公司;国网福建省电力有限公司电力科学研究院;国网信通亿力科技有限责任公司;中国科学技术大学 一种基于spark的Ftrl电压预测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。