摘要:针对运维人员难以预测电力系统故障的问题,本文提出基于FP-Growth算法的电力系统故障预测方法。该方法能快速从海量电力系统历史日志中提取故障预测规则,并基于当前日志预测未来可能发生的系统故障。首先根据电力系统日志特征对原始日志进行预处理;然后基于FP-Growth算法挖掘日志中与故障事件相关的关联规则,并使用关联规则进行故障预测;最后在真实的电力系统日志数据集上验证,使用准确率和召回率对故障预测方法进行评估。结果表明,本文的故障预测方法平均准确率为89.5%,平均召回率为79.8%,预测效果较好。
关键词:FP-Growth; 电力系统日志;关联规则;故障预测
1、电力系统日志分析
电力工业是国民经济发展中最重要的基础能源产业,电力系统保障电力工业提供高效稳定的服务,同时促进电力工业的快速发展。随着电力系统规模的扩展和复杂性的增加,系统故障的发生已经成为一种常态[1]。系统故障可能导致重要信息丢失甚至系统瘫痪,造成难以预料的后果。精确有效的故障预测能够减少故障带来的影响,提高电力系统的可靠性[2]。
本文提出基于FP-Growth算法的电力系统故障预测方法,该方法在不需要系统专业知识和专家的前提下,通过分析电力系统历史日志,挖掘与故障事件相关的频繁日志序列作为关联规则,根据关联规则对系统故障进行预测。最后,本文在真实数据集上评估了该方法。
2、FP-Growth算法概述
FP-Growth算法基于Apriori原理,通过将事务集存储到FP-tree(Frequent Pattern tree,频繁项树),进而挖掘频繁项和关联规则。FP-Growth算法挖掘关联规则的流程具体过程描述如下。
首先,扫描事务集N,找出所有频繁一模式下的频繁项F1,将F1按支持度降序生成频繁项头表。
第二,再次扫描事务集N,建立FT-tree并填写头表指针。FT-tree是一棵前缀树,根节点是标记为“NULL”的root,不表示任何项。其余节点包含频繁项和该项在本条路径上的支持度。一条路径上的节点集合都是事务集中满足最小支持度的频繁项集合,其中节点按照项的支持度排列,支持度越高的项离根节点越近,从而使更多的项可共享前缀。建立树之后,填写频繁项头表的指针,指向树中该项的节点。同时相同的频繁项之间使用指针相连。
第三,从底部遍历频繁项头表。当遍历未结束时,挖掘该项的频繁项集和关联规则。当遍历完整个表之后,结束FP-Growth算法
第四,提取频繁项条件模式基。设此时遍历的频繁项为a,存在从root节点到节点a的路径L,L上不包含a的部分组成的路径称为a的前缀路径Lp,a为Lp的后缀项。树中可能存在多个a节点,则会得到多个前缀路径,所有前缀路径组成频繁项a的条件模式基。
第五,判断频繁项a是否存在条件模式基,若存在则继续算法;否则返回到遍历频繁项头表。
第六,得到频繁项a的条件模式基后,将其作为新事务集建立一棵新的FP-tree,称为a的条件模式树,
第七,挖掘频繁项集,生成关联规则。首先在a的条件模式树上挖掘频繁项集,可得到与a相关的频繁项集。若该频繁项集中的任一项仍存在条件模式基,即递归重复的提取频繁项集,直至所有频繁项都没有条件模式基,此时得到所有的频繁项集。使用频繁项集生成关联规则,满足最小自信度的规则即为有效规则。
3、故障预测
3.1故障预测规则提取
电力系统日志经过预处理后,对于每一类故障事件f,通过截取发生在f之前相同时间内的日志序列生成相关日志序列,所有f的相关日志序列组成日志序列集合N。
对f的日志序列集N进行分析,统计不同日志消息项生成总项集,a表示与事件f相关的日志消息。然后从总项集I中截取若干连续子序列,生成故障预测规则。此时的项集
即为频繁项集,预测规则即为满足自信度要求的关联规则,故可使用FP-Growth算法提取预测规则。
经过询问电力系统运维专家和实验验证,本文使用的最小支持度min_support为0.6,最小自信度min_confident为0.8,提取的所有故障预测规则r组成预测集规则集R。
3.2预测步骤
得到预测规则集R之后,可根据当前日志消息对故障进行预测。故障预测跟时间紧密相关,假设T1表示预测模型预测故障f的时间,T2表示故障f实际发生的时间,T3表示本次预测的失效时间。若,则f在有效时间内发生,此次预测为有效预测,否则为错误预测。
本文使用预测规则进行故障预测的步骤如下:
生成待定规则集:对于故障预测规则
,用来匹配当前产生的日志消息,当日志产生时,选取以结束的预测规则作为待定规则,所有待定规则组成待定规则集。
生成验证规则集:截取日志之前的一段日志序列S,判断S是否包含,若包含则匹配成功,将该待定规则加入验证规则集,并记录预测时间T1。
故障预测:对于验证规则集中的规则,预测故障事件f将会在T3时间点之前发生。若f在时间点T3之前发生,则此次预测成功,否则预测失败。
4、实验评估
本文获取甘肃省电力投资集团有限责任公司电力系统2018年1月到6月的9万余条日志,在该日志数据集中,日志消息包含ERROR、FAIL、WRONG和FATAL等关键字都表示系统出现故障,本文将包含这四种关键词的日志记录标识为故障事件,其他日志为正常事件。
在评估预测效果时,本文限制预测的有效时间为T1之后的30分钟之内,若被预测事件发生的时间T2满足,则此次预测有效,否则无效。
在本文的日志集中,日志时间范围为2018年1月到6月。本文以1月和2月的日志作为训练集,利用FP-Growth算法挖掘这两个月的日志,并产生故障事件预测规则集R。然后在3月到6月的日志数据上进行故障预测验证。
实验显示,3月到6月四个月的故障预测平均准确率为89.5%,平均召回率为79.8%。在这四个月日志数据上进行的预测结果相差不大,预测的准确率和召回率都较高,但是召回率低于准确率。召回率较低的原因可能是:基于关联规则挖掘提取的故障预测规则,只能预测与其他日志密切关联的故障,同时该故障在训练集中出现过,不能预测与其他日志关联性很低或者训练集中未出现的故障。3月到6月的日志中可能出现关联性很低的故障,或者电力系统在这段时间升级或改进,产生了训练集中没有的故障,故而预测结果的召回率略低。
参考文献
[1]LIANG Y, ZHANG Y, SIVASUBRAMANIAM A, et al. Filtering Failure Logs for a BlueGene/L Prototype[J]. Proceedings of the Intl. conf. on Dependable Systems & Networks, 2005: 476-485.
[2]钟将, 时待吾, 王振华. 基于告警日志的网络故障预测[J]. 计算机应用, 2016, 36(S1): 49-53.
[3]ZHONG Jiang, SHI Dai-wu, WANG Zhen-hua. Network failure prediction based on alarm log[J]. Journal of Computer Applications, 2016, 36(S1): 49-53.
论文作者:孙向聚,柴京,袁昊,张文轩,孙碧颖
论文发表刊物:《电力设备》2019年第4期
论文发表时间:2019/6/26
标签:规则论文; 故障论文; 日志论文; 频繁论文; 电力系统论文; 算法论文; 节点论文; 《电力设备》2019年第4期论文;