王楠,周鑫,周云浩,苏世凯,王增亮
(国网北京市电力公司电力建设工程咨询分公司,北京 100021)
随着我国电力工程规模的不断扩大,完整的电力工程建设周期所花费的时间差异较大。而在时间跨度较长的工程项目中,电力设备会受到环境影响,不可避免地会出现设备老化、材质受损等现象[1-2]。以变压器设备为例,现行方案仅从外观及少数指标对设备进行验收,故无法反映设备的真实状态[3-6],一旦发生事故将会造成难以估量的经济损失。因此,需要基于数据分析方法设计一种电力工程异常检测算法。
传统电力工程异常检测验收主要依靠工程师根据检验指标进行判断。故该文从设备状态入手,通过对设备工作时状态数据的分析来判断电力设备的状况。而电力设备异常状态数据样本具有容量小、数据多及非线性的特点。文中基于改进支持向量机(Support Vector Machines,SVM)算法提出一种电力设备的数据异常分析模型,以支撑电力工程项目的验收工作。
支持向量机[7-9]是一种二分类算法,其将线性或非线性数据作为核函数的输入,而核函数再将数据映射至高维平面,并通过全局搜索算法对最优平面进行轮询和搜索。
假定样本训练集合为K={(x1,y1),(x2,y2),…,(xi,yi)},其中xi为输入数据特征,yi为数据特征数量,则超平面的求解可表示为:
式中,w为权重因子,C为惩罚项,ξi为松弛因子,b为截距值。
SVM 通常仅能解决二分类问题,但电力工程异常数据则具有多项特征,故可抽象为多分类问题。求解多分类问题一般有两种方法:1)构造多分类函数,也被称为全局多类SVM;2)使用多个分类器,即组合多类SVM。其中,组合多类SVM 算法的运行与识别速度均较快,因此文中使用组合多分类SVM 算法中的树结构算法(tree structure)来对电力工程中的异常数据加以检测。
树结构算法根据二叉树的结构对每个二分类器进行排列,最终组成多分类结构。假定树结构共有K个节点,则需K-1 个分类器。算法执行首先把所有数据按特征进行排序,再根据树结构判定样本的正负情况。该算法结构如图1 所示。
图1 树结构算法
对于多分类SVM 模型而言,核函数的选择也较为关键,不同核函数的性能也有所不同。该文选择了当前常用且误差较小的径向基函数(Radial Basis Function,RBF),其可表征为:
其中,γ是径向权重。
SVM 具备较强的数据强特征分类能力,但当数据特征较为接近时,对特征的区分度便会降低。因此,文中还将利用AdaBoost 弱特征分类器辅助SVM进行分类。
AdaBoost 算法[10-12]可将多个弱特征分类器加以集合。在该算法中,首先对所有样本数据进行平均权重分配;然后在迭代时,权重值均会随着数据特征的改变而变化;最终算法会先挑选出强特征数据,且越往后数据之间的特征性能越弱。AdaBoost 算法结构如图2 所示。
图2 AdaBoost算法结构
算法按照比例将数据分为两种集合,分别为训练集和验证集。其中,训练样本权重值F可表示为:
式中,φ表示每项数据的权重值,N为样本数量。迭代时,计算分类器的分类错误率,如下所示:
式中,m为算法迭代次数,Gm为第m个弱分类器。根据式(5)中的错误率公式,可计算出弱分类器在算法执行完集合中的比例为:
迭代完毕后的分类器权重如下:
式中,Zm为归一化常数,可表示为:
最后根据弱分类器权重组合得到最终的分类器,则有:
虽然AdaBoost-SVM 算法可以提升模型整体的分类性能,但由于模型参数众多,若初始化参数选择不合理,模型分类性能便会有较大损失。因此,使用启发式优化算法(Heuristic Optimization Algorithm)对迭代次数、惩罚项C以及核函数中的参数进行寻优。
文中选择的优化算法为鲸鱼算法(Whale Optimization Algorithm,WOA)[13-16],其是根据鲸鱼的捕食规则发展而来的,具有结构简单且准确率高的优点。该算法可分为随机觅食、包围目标与螺旋捕食三个步骤。
1)随机觅食。在不确定目标位置时,整个种群会随机指定某一个体位置为目标所在位置,其他个体便会向此处靠近。这一步骤可表示为:
式中,t为种群迭代次数;X(t)为种群中个体所处位置;Xr(t)为种群随机选取的个体位置;Dr表示个体与目标之间的距离;A、B则表示公式系数,且二者的计算公式为:
其中,random1 和random2 均为0~1 之间的随机数,tmax指的是算法最大迭代次数。
2)包围目标。当种群找寻到食物后,个体会逐渐缩小包围圈,并不断向该目标位置靠近。此时种群同目标间的距离可表示为:
式中,Xb(t)为种群中与目标最为接近的个体,Db为最优距离。
3)螺旋捕食。当种群靠近目标后,个体朝着目标发动捕食,此时距离可更新为:
式(16)中,k为目标常数;w为随机数,取值范围为-1~1。当w为-1 时,表示个体与目标的距离最为接近;而当w为1 时,则表示个体和目标距离最远。
由此,WOA 算法的流程如图3 所示。
图3 WOA算法流程
SVM 算法中,惩罚项C与核函数的参数对结果均存在影响。文中指定惩罚项C的优化范围为[0.05,300],核函数参数g优化范围选择[0.02,50],使用WOA 算法对其进行寻优。在寻优过程中,同时观察AdaBoost 的初始化迭代次数,并以该迭代次数作为另一项优化参数,最终获得优化值。
文中AdaBoost-WOA-SVM 算法流程如图4 所示。可见该算法首先抽取电力工程异常数据,并将其分为样本集和数据集,再利用AdaBoost 算法进行弱分类器分类;同时设置WOA 算法的迭代次数与参数寻优范围,且对参数加以优化;最终,在优化完毕后输出最优结果。
图4 AdaBoost-WOA-SVM算法流程
文中以电力工程中的重要电力设备变压器为例验证算法。变压器的验收通过H2、CH4、C2H6、C2H4以及C2H2五种气体在变压器油中的体积分数进行判定。根据组合体积分数的不同,判断变压器状态为正常或损坏。而数据集合则采用某地区电网变压器验收数据。验收数据集与具体状态如表1 所示。
表1 数据集信息
同时,还使用Matlab R2016a 作为算法实现平台。实验配置信息如表2 所示。
表2 实验配置信息
利用优化算法根据数据情况对参数进行优化,使用WOA 算法后,每个分类器的精度均较优。而不同参数下的训练结果如表3 所示。
表3 训练结果
可以看到,当C取79.56 且g取0.98 时,该文算法的分类精度最优,因此将该参数作为分类器参数。为了减少计算量,对AdaBoost 迭代次数进行观察,结果如图5 所示。
图5 AdaBoost迭代次数
从图中可看出,当AdaBoost 算法迭代至10 次以上时,算法的分类精确度不会有大的波动,因此AdaBoost 的迭代次数取10 次。
在对比实验测试中,验证算法对数据集中变压器状态判断的准确性。对比算法使用遗传优化算法(Genetic Algorithm-SVM,GA-SVM)、麻雀搜索算法(Sparrow Search Algorithm-SVM,SSA-SVM)及粒子群优化算法(Particle Swarm Optimization-SVM,PSOSVM)。测试时首先利用各自模型所具有的优化算法完成参数优化,之后再使用分类器进行分类。算法测试结果,如表4 所示。
由表4 可知,GA-SVM 与PSO-SVM 算法异常数据检测准确率较差,故在验收时出现误判的可能性最大。而该文算法对变压器异常数据的检测准确率最高,且与其他算法相比,分别提升了5.35%、2.17%和5.35%,由此说明,该文算法的性能最优。
施工周期长的电力工程项目,设备易受到环境等因素影响而发生内部损坏,依靠传统方法检测通常难以发现异常。文中基于改进的SVM 算法提出了一种异常数据检测方法,其利用二叉树结构增强模型的多特征分类能力,使用AdaBoost算法提高模型弱特征分类性能,同时还采用鲸鱼算法对模型参数进行优化。实验结果表明,该文算法在对比算法中具有最优的精确度,可为电力基建工程提供有效的数据支撑。