发明内容
本发明的目的在于针对传统统计分析方法在分析应用之前需对数据分布和变量间的关系做假设的问题,基于大数据的数据挖掘技术可以不需要对数据分布做任何假设,数据挖掘中的算法会自动寻找变量间隐藏的关系或规律。针对传统统计分析方法处理实时、海量数据效率低下的问题,基于大数据的分布式消息队列、流计算、内存计算和分布式并行计算技术可以高效率、简洁、实时的实现对数据的采集和处理。
本专利通过定时或实时采集故障抢修管理系统、生产管理系统、市调系统、气象信息系统中的故障抢修工单信息、抢修班组、用户、台区、线路、气象信息等数据信息,构建故障抢修效率分析和故障数量预测两个数据挖掘模型,实现“配网故障抢修实时分析”和“故障抢修效率分析”场景应用,从而提高供电服务质量,强化配网故障抢修管理水平。
本发明的目的通过如下技术方案实现:
一种基于大数据技术的配网抢修精益化方法,它包括以下步骤:
步骤a、数据源建立,建立故障抢修工单信息、抢修班组、用户、台区、线路、气象信息的数据信息;
步骤b、数据整合:融合kafka实时数据分布式消息队列、sqoop离线数据抽取技术,对异构数据的快速接入,构建分布式数据整合功能,具备定时/实时数据的采集处理能力,实现从数据源到平台存储的配置开发、过程监控;
步骤c、数据存储:对关系型数据存储、非关系型数据存储、分布式文件存储进行数据存储,同时提供统一存储访问接口,提高数据存储低成本的横向扩展能力,提高在高并发条件下的快速数据访问响应能力、满足海量数据实时与准实时存储需求;
步骤d、数据计算:并支撑SQL查询,满足不同时效性计算需求;批量计算支持大批量数据离线分析;流计算支持实时处理,如用电数据实时处理、预警;同时提供类似SQL的查询分析技术,将查询语句转译为并行的分布式计算任务;步骤e、数据分析:集成R语言和Mahout,形成分布式数据挖掘算法库,提供挖掘建模设计工具,构建统一的分析建模能力和运行引擎;同时,通过提升改造分析决策平台,完善分析建模、模型运行、模型发布等能力,增加对大数据分布式计算的支持,满足实时、离线应用的分析挖掘需求,为公司分析决策应用构建提供基础平台支撑;
步骤f、场景展现:实施配网故障抢修实时分析以及故障抢修效率分析。
其中,步骤e:数据分析中,包括故障抢修效率分析,故障抢修效率分析具体为采用K-Means聚类算法观察探索不同抢修环节标准用时与故障、气象的内在发展规律,构建抢修效率分析模型,寻找多维度下不同抢修环节的标准用时,区域、驻点的月度故障统计信息;K-Means依赖于不断寻找簇中心直至其达至稳定实现对象的划分;K-Means算法一开始先(随机或依据某种策略)选择K个簇中心,然后在每次迭代时将对象划分至最相似的簇中心,形成新的簇划分后再计算同簇对象的均值作为新的簇中心;这个过程反复进行,直至簇中心不再变动或达到最大迭代次数为止。
K-Means算法实现步骤如下:
1)第一步是为待聚类的点寻找K个聚类中心。
指定聚类数目K;
在所有个案中随机选取K个类初始中心,(Ok,Tk),k=1,2,...;
2)第二步是计算每个点到聚类中心的距离,将每个点聚类到离该点最近的聚类中去,根据距离最近原则进行分类,计算每个样本数据点到K个类初始中心点的欧式距离,并按照距K个类中心点距离最近的原则分派所有样本,形成K类;
样本点到类初始中心点的欧式距离公式为: (Oi,Ti)为样本点;
判断样本点到哪类初始中心点的距离最小,并将此样本归入此类;
3)第三步是计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心。反复执行(2)、(3),直到聚类中心不再进行大范围移动或者聚类次数达到要求为止,依次计算各类中K个变量的均值,以均值点作为K个类的中心点;
重新确定类中心点(ck,tk)n为各类中样本点的个数;
设置终止聚类的条件:迭代次数n:当目前的迭代次数等于指定的迭代次数时,终止聚类;类中心点偏移程度(S):新确定的类中心点距上个类中心的最大偏移量小于指定的量时停止聚类。当迭代次数和类中心偏移成都中任一条件满足则结束聚类,不满足上述两个条件,则反复执行(2)、(3)。
另外,步骤e:数据分析中,包括故障数量预测,故障数量预测具体为采用随机森林分类预测算法观察探索历史故障发生情况与负荷、气象的内在发展规律,构建故障量预测模型,预测设备故障量可能发生的量级区间范围;其中随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器;就是由多棵CART(ClassificationAndRegressionTree)决策树构成的;对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中;在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的。
随机森林分类预测模型构建的过程主要包括以下几个步骤:
1)确定特征值,需采用预测算法预测未来一天的天气信息和负荷信息,将天气、负荷信息作为模型的特征值;
2)进行数据预处理,由于原始数据存在缺失、错漏等问题,需要对原始数据进行预处理,得到我们的模型输入数据,另外,随机森林分类算法的目标变量需为分类变量,而故障量为数值变量,需采用聚类算法将故障量聚为若干聚类区间,并将故障量映射到聚类区间;
3)进行模型训练,采用随机森林分类算法构建故障量预测模型,输出预测结果;
4)进行模型评估,采用查准率、查全率两个指标评估模型的预测效果,计算公式如下:
其中,precision和recall分别指查准率和查全率,Np,Nt,Nr分别表示预测正确样本数、预测样本数及真实样本数。
抢修实时分析:实现对当前上海全市的配网故障发生的实时情况进行监测,并从故障数量实时分析、故障量日趋势监测、故障处理情况三个维度进行详细的剖析和监测,实时跟踪故障抢修的整个过程,分析各区域驻点的工作强度。并通过随机森林分类预测算法,预测未来一天不同供电公司电网故障和非电网故障的故障数量,为抢修资源调配提供建议。
抢修效率分析:按照发生年月、故障分类、电压等级、设备聚类、设备大类五个维度实现对每月上海全市的非电网\电网\各电压等级的配网抢修效率进行分析,对上海全市、各区域、驻点的效率进行评估和分析。并通过聚类算法,以抢修过程重要节点时长为目标变量,气象及交通流量等外部信息验证模型结果,制定各类故障的抢修标准效率,对抢修过程中超期的环节进行预警,实现抢修过程中的全面监督。
综上所述,也就是说通过实时(kafka)或定时(sqoop)采集PMS,TCM,IDP,气象信息系统中的数据,按照数据类型和多样计算需求将数据存储在关系型数据库(Mysql/PostgreSql)、分布式文件系统(HDFS)、非关系型数据库(HBase)中,通过流计算(storm)、批量计算(MapReduce)、查询计算(hive)技术实现数据的实时和离线计算,并通过数据建模和数据挖掘组件实现数据的分析和挖掘,支撑“抢修实时分析”和“抢修效率分析”功能模块的应用,总体架构图见附图4。
基于大数据技术的配网抢修精益化管理系统主要包括抢修实时分析和抢修效率分析两个功能模块。其中,抢修实时分析模块实现配网故障抢修实时分析、配网故障量日趋势监测、当前故障处理情况分析、供电公司工作强度分析、故障抢修过程跟踪分析五个子功能,抢修效率分析模块实现全市故障抢修分析、各供电公司抢修效率分析、各供电公司抢修达标排名、抢修时长标准分析、驻点抢修效率分析、抢修明细工单分析六个子功能。功能组成图见附图5。其中,抢修实时分析:实现对当前上海全市的配网故障发生的实时情况进行监测,并从故障数量实时分析、故障量日趋势监测、故障处理情况三个维度进行详细的剖析和监测,实时跟踪故障抢修的整个过程,分析各区域驻点的工作强度。并通过随机森林分类预测算法,预测未来一天不同供电公司电网故障和非电网故障的故障数量,为抢修资源调配提供建议;抢修效率分析:按照发生年月、故障分类、电压等级、设备聚类、设备大类五个维度实现对每月上海全市的非电网\电网\各电压等级的配网抢修效率进行分析,对上海全市、各区域、驻点的效率进行评估和分析。并通过聚类算法,以抢修过程重要节点时长为目标变量,气象及交通流量等外部信息验证模型结果,制定各类故障的抢修标准效率,对抢修过程中超期的环节进行预警,实现抢修过程中的全面监督。
上述方法是通过以下管理系统实现的:
它包括数据源模块,集成有包括故障抢修管理系统、生产管理系统、市调系统、气象信息系统中的一种或多种;
数据整合模块:与数据源模块连接,融合kafka实时数据分布式消息队列、sqoop离线数据抽取技术;
数据存储模块:与数据整合模块连接,采用关系数数据库、分布式文件系统、分布式在线数据库存储技术;
数据计算模块:与数据存储模块连接,提供批量计量、流计算、查询计算数据处理技术,并支撑SQL查询;
数据分析模块:与数据计算模块连接,集成R语言和Mahout,形成分布式数据挖掘算法库,提供挖掘建模设计工具,构建统一的分析建模能力和运行引擎;
场景展现模块:与数据分析模块连接,分为抢修实时分析模块和故障抢修效率分析模块且两个子模块分别与数据分析模块连接。
较之现有技术而言,本发明的优点在于:基于大数据技术的配网抢修精益化管理系统通过kafka实时采集、storm流计算、MapReduce分布式并行等大数据技术实现了对实时故障抢修数据和海量负荷数据的整合计算能力,有效提升了海量数据处理的实时性和高效性。同时,通过数据挖掘技术构建了故障量预测模型和抢修效率聚类模型,解决了传统统计分析假设判断的局限性。其中,故障量预测模型可以预测未来一天各区域、不同电压等级的设备故障量可能发生的数量区间,预测精度可达到70%以上,相比业务部门过去开展的故障事后分析,更加侧重故障的事前预测预警工作,将业务部门过去开展的故障事后抢修工作转换为事前预安排,对业务部门合理安排班组工作人员和工作量具有重要的指导意义,达到提升抢修效率的目的;抢修效率聚类模型通过聚类算法实现故障的细分,寻找多维度下(如标准类型、设备大类、电压等级、故障五级分类、设备聚类)不同抢修环节的标准用时,与业务部门过去开展的均值统计时长方式相比,基于挖掘模型的聚类分析方式,能够提升抢修效率标准时长评估的科学性及合理性。
具体实施方式
下面结合说明书附图和实施例对本发明内容进行详细说明:
大数据平台技术组件以集成成熟开源产品为主,并对现有可重用的SG-ERP组件进行提升改造,相关生产应用可适时迁移至大数据平台。平台核心分布式存储与计算组件采用Hadoop技术体系中分布式存储(HDFS、HBase、Hive等)、分布式计算框架(MapReduce),及Storm等开源产品或技术,同时利用统一目录、统一权限及大数据平台实现完善的安全控制和数据管理功能。本专利基于大数据处理技术,实现配网抢修精益化管理应用。
通过实时(kafka)或定时(sqoop)采集PMS,TCM,IDP,气象信息系统中的数据,按照数据类型和多样计算需求将数据存储在关系型数据库(Mysql/PostgreSql)、分布式文件系统(HDFS)、非关系型数据库(HBase)中,通过流计算(storm)、批量计算(MapReduce)、查询计算(hive)技术实现数据的实时和离线计算,并通过数据建模和数据挖掘组件实现数据的分析和挖掘,支撑“抢修实时分析”和“抢修效率分析”功能模块的应用。
1、基于大数据处理技术实现抢修实时分析场景,数据流转图见附图1,具体流转过程如下:
1)数据源将表抢修故障信息XN_TCM_REPAIR_FAULT、抢修过程信息XN_TCM_REPAIR_PROCESS数据推送至消息队列;
2)流计算从消息队列中取数,执行实时计算操作,生成区域故障统计结果、驻点故障统计结果、班组故障统计结果、抢修故障信息表;
3)流计算将计算结果(区域故障统计结果、驻点故障统计结果、班组故障统计结果)实时写回kafka;
4)前端展现读取kafka中的计算结果实时展示;
5)流计算将生成的抢修故障信息表实时写入postgreSQL;
6)通过sqoop定期加载抢修故障信息XN_TCM_REPAIR_FAULT、抢修过程信息XN_TCM_REPAIR_PROCESS、班组信息表XN_TCM_RESOURCE_TEAM、七日预测天气信息XN_WEATHER_SEVEN_FORECAST、负荷测点信息xn_hisdat_20****013等数据至hive;
7)大数据平台按月定时计算生成驻点平均抢修效率_过程表、班组平均抢修效率_过程表,按日定时计算生成区域最大最小负荷值_过程表和区域故障数量预测模型宽表,按需计算生成电网标准时长模型宽表、非电网标准时长模型,并将区域故障数量预测模型宽表、电网标准时长模型宽表、非电网标准时长模型宽表写入postgreSQL;
8)分析决策平台从postgreSQL中读取区域故障数量预测模型宽表、电网标准时长模型宽表、非电网标准时长模型宽表,运用聚类模型生成区域故障数量预测模型输出表、DM_EQU_FAULT_CLUSTER_RESULT、DM_EQU_FAULT_CLUSTER_RESULT,并写回postgreSQL;同时根据挖掘结果和模型宽表,生成非电网标准时长输出表和电网标准时长输出表,并写回PostgreSQL中。
9)前端展现定时读取postgreSQ中的计算结果进行展示;
2、基于大数据处理技术实现抢修效率分析场景,数据流转图见附图2,具体流转过程如下:
1)通过大数据平台从数据源加载历史数据表(XN_TCM_REPAIR_FAULT、XN_TCM_REPAIR_PROCESS、XN_TCM_RESOURCE_TEAM、XN_WEATHER_SEVEN_FORECAST)至hive;
2)大数据平台按月定时计算生成工单达标情况分析展现表、抢修故障信息表、抢修未达标归因分析表、全市故障抢修分析展现表、驻点故障抢修分析展现表,按需计算生成电网标准时长模型宽表、非电网标准时长模型宽表,并将计算结果写入PostgreSQL;
3)分析决策平台从PostgreSQL中读取电网标准时长模型宽表、非电网标准时长模型宽表,运用聚类模型生成电网聚类结果表、非电网聚类结果表,并写回postgreSQL;同时根据挖掘结果和模型宽表,生成非电网标准时长输出表和电网标准时长输出表,并写回PostgreSQL中;
4)前端展现读取PostgreSQL结果数据。
3、采用聚类算法实现故障抢修效率分析模型
采用K-Means聚类算法观察探索不同抢修环节标准用时与故障、气象的内在发展规律,构建抢修效率分析模型,寻找多维度下不同抢修环节的标准用时,区域、驻点的月度故障统计信息。作为一种经典的聚类算法,K-Means依赖于不断寻找簇中心直至其达至稳定实现对象的划分。K-Means算法一开始先(随机或依据某种策略)选择K个簇中心,然后在每次迭代时将对象划分至最相似的簇中心,形成新的簇划分后再计算同簇对象的均值作为新的簇中心。这个过程反复进行,直至簇中心不再变动或达到最大迭代次数为止。
实现步骤如下:
4)第一步是为待聚类的点寻找K个聚类中心。
指定聚类数目K;
在所有个案中随机选取K个类初始中心,(Ok,Tk),k=1,2,...。
5)第二步是计算每个点到聚类中心的距离,将每个点聚类到离该点最近的聚类中去,根据距离最近原则进行分类,计算每个样本数据点到K个类初始中心点的欧式距离,并按照距K个类中心点距离最近的原则分派所有样本,形成K类。
样本点到类初始中心点的欧式距离公式为: 其中,(Oi,Ti)为任意样本点i的坐标值,(Ok,Tk)为类初始中心点K的坐标值;
判断样本点到哪类初始中心点的距离最小,并将此样本归入此类。
6)第三步是计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心。反复执行(2)、(3),直到聚类中心不再进行大范围移动或者聚类次数达到要求为止,依次计算各类中K个变量的均值,以均值点作为K个类的中心点。
重新确定类中心点(ck,tk)n为各类中样本点的个数,Ci为类中样本点的横坐标值,和Ti为类中样本点的纵坐标值。
设置终止聚类的条件:迭代次数n:当目前的迭代次数等于指定的迭代次数时,终止聚类;类中心点偏移程度(S):新确定的类中心点距上个类中心的最大偏移量小于指定的量时停止聚类。当迭代次数和类中心偏移成都中任一条件满足则结束聚类,不满足上述两个条件,则反复执行(2)、(3)。
实例应用:
表1模型输入表
表1为模型输入表结构,通过输入全部历史数据,得到聚类结果如表2所示:
表2聚类结果
聚类 |
聚类1 |
聚类2 |
聚类3 |
大小 |
557984 |
392314 |
127984 |
占比 |
51.7% |
36.4% |
11.9% |
到达现场时长 |
603.03 |
1165.2 |
2052.1 |
派单时长 |
58.22 |
48.7 |
52.44 |
修复时长 |
638.41 |
640.5 |
696.52 |
针对聚类效果评估结果如图6所示::
由图6中可看出聚类质量较好,可基于该聚类结果定义标准抢修时长。
4、采用随机森林分类算法实现故障数量预测模型
采用随机森林分类预测算法观察探索历史故障发生情况与负荷、气象的内在发展规律,构建故障量预测模型,预测设备故障量可能发生的量级区间范围。随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。简单来说,随机森林就是由多棵CART(ClassificationAndRegressionTree)决策树构成的。对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的,假设总的特征数量为M,这个比例可以是
因此,随机森林的训练过程可以总结如下:
1)给定训练集S,测试集T,特征维数F。确定参数:使用到的CART的数量t,每棵树的深度d,每个节点使用到的特征数量f,终止条件:节点上最少样本数s,节点上最少的信息增益m。(对于第1-t棵树,i=1-t);
2)从S中有放回的抽取大小和S一样的训练集S(i),作为根节点的样本,从根节点开始训练;
3)如果当前节点上达到终止条件,则设置当前节点为叶子节点,如果是分类问题,该叶子节点的预测输出为当前节点样本集合中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例;如果是回归问题,预测输出为当前节点样本集各个样本值的平均值。然后继续训练其他节点。如果当前节点没有达到终止条件,则从F维特征中无放回的随机选取f维特征。利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本第k维特征小于th的样本被划分到左节点,其余的被划分到右节点,继续训练其他节点;
4)重复2),3)直到所有节点都训练过了或者被标记为叶子节点;
5)重复2),3),4)直到所有CART都被训练过。
利用随机森林的预测过程如下:
1)从当前树的根节点开始,根据当前节点的阈值th,判断是进入左节点(<th)还是进入右节点(>=th),直到到达,某个叶子节点,并输出预测值。
2)重复执行1)直到所有t棵树都输出了预测值。如果是分类问题,则输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计;如果是回归问题,则输出为所有树的输出的平均值。
随机森林分类预测模型构建的过程主要包括以下几个步骤:
5)确定特征值,需采用预测算法预测未来一天的天气信息和负荷信息,将天气(气温、风力、天气情况等)、负荷信息(最大负荷、最小负荷、平均负荷)作为模型的特征值;
6)进行数据预处理,由于原始数据存在缺失、错漏等问题,需要对原始数据进行预处理,得到我们的模型输入数据,另外,随机森林分类算法的目标变量需为分类变量,而故障量为数值变量,需采用聚类算法将故障量聚为若干聚类区间,并将故障量映射到聚类区间;
7)进行模型训练,采用随机森林分类算法构建故障量预测模型,输出预测结果;
8)进行模型评估,采用查准率、查全率两个指标评估模型的预测效果,计算公式如下:
其中,precision和recall分别指查准率和查全率,Np,Nt,Nr分别表示预测正确样本数、预测样本数及真实样本数。
实例应用:
表3模型输入表
YMD |
年月日 |
REGION_ID |
区域ID |
BEGIN_WEATHER |
一天初始时的天气情况 |
END_WEATHER |
一天结束时的天气情况 |
WIND_VELOCITY |
风力 |
RAIN_PROBABILITY |
降雨概率(百分数) |
HIGH_TEMP |
最高气温 |
LOW_TEMP |
最低气温 |
MAX_VALUE |
负荷最大值 |
MIN_VALUE |
负荷最小值 |
AVG_VALUE |
负荷平均值 |
FAULT_COUNT_2_1 |
电网故障,电压等级1的故障量 |
FAULT_COUNT_2_2 |
电网故障,电压等级2的故障量 |
FAULT_COUNT_2_3 |
电网故障,电压等级3的故障量 |
FAULT_COUNT_2_4 |
电网故障,电压等级4的故障量 |
FAULT_COUNT_1 |
非电网故障的总故障量 |
FAULT_COUNT_2 |
电网故障的总故障量 |
表3为模型输入表结构,通过输入历史两年的数据,得到预测结果如下:
1)FAULT_COUNT_2_1(电网故障,电压等级1的故障量)
表4预测结果2_1
表5混淆矩阵2_1
|
查准率 |
查全率 |
类别0 |
0.00% |
0.00% |
类别1 |
100.00% |
99.63% |
2)FAULT_COUNT_2_2(电网故障,电压等级2的故障量)
表6预测结果2_2
表7混淆矩阵2_2
|
查准率 |
查全率 |
类别0 |
0.00% |
0.00% |
类别1 |
99.68% |
97.37% |
3)FAULT_COUNT_2_3(电网故障,电压等级3的故障量)
表8预测结果2_3
表9混淆矩阵2_3
|
查准率 |
查全率 |
类别0 |
0.00% |
0.00% |
类别1 |
0.00% |
0.00% |
类别2 |
18.77% |
26.70% |
类别3 |
86.04% |
79.25% |
类别4 |
0.00% |
0.00% |
4)FAULT_COUNT_2_4(电网故障,电压等级4的故障量)
表10预测结果2_4
表11混淆矩阵2_4
5)FAULT_COUNT_1(非电网故障的总故障量)
表12预测结果1
表13混淆矩阵1
|
查准率 |
查全率 |
类别0 |
0.00% |
0.00% |
类别1 |
53.92% |
58.35% |
类别2 |
74.66% |
81.25% |
类别3 |
97.17% |
90.11% |
类别4 |
0.00% |
0.00% |
类别5 |
0.00% |
0.00% |
6)FAULT_COUNT_2(电网故障的总故障量)
表14预测结果2
表15混淆矩阵2
|
查准率 |
查全率 |
类别0 |
0.00% |
0.00% |
类别1 |
24.05% |
5.38% |
类别2 |
27.95% |
35.08% |
类别3 |
71.89% |
73.76% |
从以上聚类结果和评估结果来看,基于随机森林分类算法的故障量预测模型,在很大程度上提高了预测能力,有很好的运行效果。