
模糊聚类和孤立森林基础上的用电数据异常检测分析.docx
6页模糊聚类和孤立森林基础上的用电数据异常检测分析随着电力系统信息化程度的不断提高和配用电数据的快速增长[1],配用电数据逐渐呈现出数据量大、类型多、增长速度快等特征[2]因此,研究适用于配用电数据挖掘的算法并建立有效的知识发现模型,对配用电业务模式创新和智能电网的发展具有重要意义[3]异常数据检测是一项重要的数据挖掘技术,主要是通过挖掘数据集中少量的异常点来获取隐藏其中的有价值的信息[4]对于智能配电网,利用有效的异常检测方法可以及时检测到影响电能质量的各种异常运行状态[5],找出并消除电能质量的干扰因素,避免电网的非技术性损失(non-technicallosses,NTL)[6]所谓NTL是指由配电网侧电力用户的窃电、欺诈等一系列欺骗性用电行为导致的电能损失[7]对此,Nagi等[8]提出了一种基于改进支持向量机和专家系统的异常检测模型张小斐等[9]提出了一种基于图正则化的非线性岭回归用电异常检测模型,并与最小二乘法、岭回归、图正则化岭回归做了对比,验证了所提方法的可靠性和准确性赵永斌等[10]利用分布式聚类算法准确实现了大规模电力用户用电行为分析Nizar等[11]利用聚类算法将用户负荷曲线进行聚类分析,得到每类用户的聚类特征曲线,根据负荷曲线与其特征曲线的偏离程度将用户分为正常和异常两类,最后利用极限学习机算法预测新用户是否为异常用户。
Angelos等[12]提出了一种基于模糊聚类算法聚类的非技术性损失检测方法虽然上述文献都对电力异常检测提出了解决方法,但基本上都是依赖于异常数据占比量较大且异常数据已知的情况下进行的用电异常检测鉴于以上问题,本文提出了一种基于模糊聚类和孤立森林的用电数据异常检测方法首先对用电数据进行预处理,利用模糊聚类算法将相同用电行为的用户进行分类,然后利用孤立森林算法对其中某一类的聚类数据进行异常检测分析并采用ROC曲线对所提方法和局部离群因子算法和聚类算法做了对比试验,以检验本文所提方法的检测准确率1、数据预处理1.1缺失值插补电力用户每天都有96个负荷数据计量点,其中有少部分用户的负荷数据会出现零值或空值,这会影响对电力用户行为的分析结果对此,本文采用拉格朗日插值法对这些缺失值进行插补[13]具体方法如下:从原始负荷数据集中确定因变量和自变量,并提取缺失值位置前后的5个用电数据,将取出的10个数据组成一组[14],利用公式(1)与公式(2)[15]对全部缺失数据依次进行插补:Ln(x)=∑i=0nli(x)yi, (1) li(x)=(x-x0)⋯(x-xi-1)(x-xi+1)⋯(x-xn)(xi-x0)⋯(xi-xi-1)(xi-xi+1)⋯(xi-xn), (2)其中x为缺失负荷数据所对应的下标序号,Ln(x)为缺失负荷数据的插值结果,xi为非缺失负荷数据yi的下标序号,li(x)为拉格朗日多项式。
1.2数据标准化考虑到原始用电数据每个特征可能占比不同,数值小的可能被数值大的替代造成特征丢失,本文将插补后的数据进行标准化处理,经过处理后的数据介于0到1之间,具体计算公式为v′=v-vminvmax-vmin, (3)其中v′为标准化后的负荷数据,v为原始负荷数据,vmax、vmin分别为原始负荷数据在标准化前的最大值和最小值2、用电异常检测模型构建基于模糊聚类和孤立森林的异常检测具体架构如图1所示,整个框架包括3个部分:数据预处理、聚类分析、用电异常检测在对负荷数据进行聚类前,需要对数据进行预处理,将预处理后的数据作为参数输入到模糊聚类算法中进行聚类分析,根据得到的结果,对每个类别的用户进行异常检测,并对检测结果进行分析及模型评价图1用电数据异常检测模型2.1用电数据聚类分析由于不同类型的用户具有不同的用电行为,而且某一类中的异常用电行为可能与另一类中的正常的用电行为相似为避免这种情况的发生,提高检测的准确率,本文利用FCM聚类(FuzzyC-means,模糊C均值聚类)算法先将具有相同用电行为的用户进行分类FCM算法是一种基于划分的无监督聚类算法,是硬划分C均值算法的改进,主要是根据给定的某种规则将样本数据划分为若干个簇,并遵循“簇内高内聚、簇外低耦合”的准则[16]。
其思想是不断地更新聚类中心和隶属度矩阵,并通过不断迭代使结果最终趋于稳定模糊聚类算法是把样本数据集X划分为c类,并求出每组的聚类中心,使目标函数达到最小目标函数定义为Jm=∑i=1n∑j=1cuijm(dij)2, (4) ∑j=1cuij=1, i=1,2,⋯,n, (5)其中uij表示xi隶属于聚类中心cj的隶属度,dij=‖xi-cj‖,xi表示第i个样本,cj是第j簇的中心利用拉格朗日乘数法将约束条件带到目标函数Jm中,并对所有输入参量uij、cj求导,使公式(4)达到目标函数的最小极值,得到cj=∑i=1nxiuijm/∑i=1nuijm, (6) uij=1/∑t=1c(∥xi-cj∥∥xi-ct∥)2m-1, (7)其中,式(6)是类中心cj的迭代公式,式(7)是隶属度矩阵uij的迭代公式,m为模糊加权指数且m≥1;通过不断地迭代更新聚类中心和隶属度矩阵,得到最佳的聚类中心2.2用电数据异常检测由于负荷数据具有高维度、数据量大的特点,若用基于距离或密度的算法进行异常检测则会造成计算量大、运行时间长等问题因此,本文利用无监督学习算法——孤立森林(IsolationForest)算法进行用电数据异常检测。
孤立森林算法[17]是基于划分和集成学习的异常检测算法,该算法的设计利用了异常数据具有的两个特点:一是相对于正常数据,异常数据数量很少;二是异常数据与正常数据的属性值存在明显的差异孤立森林算法构建的核心在于建立由隔离树组成的森林基于此,此算法引入了隔离树和路径长度的定义定义1(隔离树)令T是一棵二叉树,N是T的节点,若N是叶子节点,则称其为外部节点,若N是一个具有两个孩子的节点,则称其为内部节点定义2(路径长度)在一棵隔离树中,从根节点到外部节点所经历边的数目称为路径长度,记为h(d)利用孤立森林算法进行异常检测分为两个阶段第一个为训练阶段,使用训练集的子样本构建隔离树;第二个为测试阶段,即通过隔离树传递测试样本,以获得每个测试样本的异常分数具体构建过程如下:ⅰ从训练数据集中随机选择ψ个点作为子样本,放入一棵孤立树的根节点;ⅱ随机制定一个维度,在当前节点数据范围内,随机产生一个切割点p(切割点产生于当前节点数据中指定维度的最大值与最小值之间);ⅲ从切割点形成一个超平面,将当前节点数据空间切分为2个子空间,将维度小于p的点放在当前节点的左分支,大于p的点放在当前节点的右分支;ⅳ循环执行ⅱ、ⅲ,不断构造新的叶子节点,直到数据无法再继续分割或者分割次数达到log2ψ时,则停止分割。
由于iTree与二叉查找树结构等价,因此外部节点终止的平均高度h(d)等价于二叉查找树中未成功搜索的路径长度,本文采用二叉查找树的分析方法来估计其平均路径长度:C(n)=2Η(n-1)-2(n-1)n, (8)其中H(i)为调和数,可以被估算为H(i)=lni+γ,γ为欧拉常数,n为叶子节点数,C(n)为给定n时h(d)的平均值,用以标准化h(d)鉴于C(n)是给定n时h(d)的平均值,可以用其来标准化h(d),则测试数据的异常分数S(d,n)为S(d,n)=2-E(h(d))C(n), (9)其中E(h(d))为iTree集合中h(d)的平均值由公式(9)可以看出S对h(d)是单调的,对于S与E(h(d))之间的关系,可以用以下条件进行异常评估:ⅰ若E(h(d))→0,S→1,则当前数据是异常点的可能性很高;ⅱ若E(h(d))→C(n),S→0.5,则表明全部样本中没有明显的异常值;ⅲ若E(h(d))→n-1,S→0,则可以确定此数据为正常数据3、仿真及结果分析3.1数据来源本文数据以云南省某地区3234个用户的用电数据为研究对象电能计量装置采样间隔为15min,即每天共有96个用电数据采样点。
对用电数据进行数据预处理后得到3186个有效用户数据,其中包含51个异常用户,异常用户总占比为1.73%3.2结果分析由于初始聚类中心是随机选择,每次结果可能不一样本文利用聚类有效性函数P′(U:c)确定最佳聚类数,表1所示聚类数为4时P′(U:c)取得最大值,所以本文将电力用户用电数据分为4类为使结果更加客观,对聚类算法运行10次并取其平均值作为最终的结果聚类结果如图2所示,纵坐标表示各类别用户归一化后的负荷值,横坐标表示以分钟为单位的负荷数据采样时间图2各类聚类中心曲线利用图2的聚类结果,以其中的第3、4类作为测试数据集对本文提出的方法进行性能评估分别采用LOF、K-means算法和本文提出的FCM-iForest算法进行异常检测,查找异常数据为了使结果更加客观,对每一个算法分别进行15次检测并取其平均值图3和图4给出了聚类结果的第3类和第4类在3种不同算法下的ROC曲线和对应的AUC值表2给出了不同类别在3种算法下的AUC值其中AUC为ROC曲线下方的面积,可以通过比较AUC的大小来评估算法的性能AUC的值为0.5~1.0,AUC越接近于1.0,则说明算法的精确度越高图3第3类ROC曲线图4第4类ROC曲线从实验结果来看,iForest算法的AUC值整体都高于LOF和K-means算法。
从图3可以看出,在横轴的假正例率未达到0.2时,iForest纵轴的真正例率就已经达到92%左右,而LOF的真正例率为70%左右,K-means仅为32%通过上述分析可以得出,在相同数据集下,iForest算法相比于LOF、和K-means算法应用于用电数据异常检测上具有更高的查准率和查全率证明本文所提方法更加适用于用电数据异常点较少的异常检测分析4、结论本文结合智能配用电背景下用电数据量大、维度高,实际数据集中异常点样本较少且获取成本较高等背景,提出了一种基于模糊聚类和孤立森林的用电数据异常检测方法利用ROC曲线将局部离群算法和聚类算法与本文所提方法进行对比,实验结果表明本文所提方法更加适用于用电数据异常点较少的情况,且具有较高的查全率和准确率,验证了本文所提方法的可行性在本文的基础上,可以考虑扩大实验数据集并综合考虑配用电数据的自身特点,采取合适的智能算法对用电数据进行异常检测,更深入地进行下一阶段的研究参考文献:[1]苗新,张冬霞,孙德栋.在配电网中应用大数据的机遇与挑战[J].电网技术,2015,39(11):3122-3127.[2]王鹏伍,孙志杰,傅军,等.模糊C均值聚类算法在用电稽查中的应用[J].华北电力技术,2016(4):14-18.[3]庄池杰,张斌,胡军,等.基于无监督学习的电力用户异常用电模式检测[J].中国电机工程学报,2016,36(2):379-387.[4]孙毅,李世豪,崔灿,等.基于高斯核函数改进的电力用户用电数据离群点检测方法[J].电网技术,2018,42(5):1595-1606.[5]刘科研,盛万兴,张冬霞,等.智能配电网大数据应用需求和场景分析研究[J].中国电机工程学报,2015,35(2):287-293.[6]彭显刚,郑伟钦,林利祥,等.基于密度聚类和Freshet判别分析的电价执行稽查方法[J].电网技术,2015,39(11):3195-3201.[7]童光华,李宁,杨晨,等.面向非技术性损失的用电异常检测方法分析[J].自动化与。












