基于stacking模型的窃漏电用户检测

2020-10-09 10:23谭台哲周宇才谢旭轩
电脑知识与技术 2020年18期

谭台哲 周宇才 谢旭轩

摘要:为了进一步提高对窃漏电用户检测的准确性,本文提出了一种基于Stacking融合模型對窃漏电用户进行分类的检测方法。该模型分成两层架构,第一层基础模型对原始特征进行特征变换后得到新的二级特征,再把二级特征输入到第二层训练元学习器从而实现对样本数据的最终分类。实验结果表明,stacking融合模型很好融合了各个单一模型的优点,相比于单一的分类模型,Stacking模型表现出了更好的检测效果。

关键词:窃漏电;AdaBoost;KNN;CART决策树;Stacking

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)18-0207-02

开放科学(资源服务)标识码(OSID):

用户的窃漏电行为一直是电力系统行业需要解决的一个痛点问题,窃漏电行为不仅扰乱了用电市场的正常秩序,还会因为用电过载而可能破坏供电设备以及计量装置,甚至还可能引发火灾等严重问题。信息技术在电力系统的应用,使得窃漏电检测不再只单纯的依赖人工定期巡检和定期检验电表等方式来发现问题,大大地提高了窃漏电检测的效率和准确度。

本文使用Adaboost算法、KNN算法和CART决策树算法来构建基础分类模型,并基于Stacking方法融合这三种基础分类模型对窃漏电用户进行分类检测。实验结果表明,融合多模型的stacking方法能很好地识别出窃漏电用户。

1 算法介绍

1.1 Adaboost算法

1.2 KNN算法

KNN算法的思想和实现都比较简单,基本原理是在训练数据中选取k个跟测试数据距离较近的样本点,并判断选取的k个样本中哪种标签所占的比例最高,从而得出测试数据的标签类别。

算法的基本流程可总结如下:

(1)输入训练数据和测试数据。

(2)计算测试数据和训练数据各样本点间的距离。

(3)对计算出的测试数据和训练数据的距离进行从小到大的排序,选取出k个距离最小的数据样本点。

(4)统计选取出的k个训练样本数据的标签类型,根据多数表决的决策方法,出现频率次数最高的标签就是测试数据的预

其中,Dv为数据集中取值为v的样本。CART决策树的实现步骤如下:

(1)计算数据集D的基尼值,并计算数据集D中每一个属性的基尼指数Gini_index(D,a)。

(2)选择基尼指数最小的特征,根据其特征值对数据进行划分。

(3)去除上述步骤已被选择的特征,在每个已被划分的数据集中重复上述步骤直到所有样本数据不能再次划分。

(4)生成CART决策树。

1.4 Stacking算法

Stackingc2]的基本思想是通过融合多个单一模型来提升算法整体性能。算法本质上是一种分层结构,第一层为基模型层,其输出结果将被当作新的特征输入到第二层当中训练模型,第二层的输出结果输入到第三层训练模型,以此类推,最后一层的输出即为模型的分类结果。

本文的算法模型设计为二层结构,选取AdaBoost、KNN和CART决策树模型作为第一层基础模型,由SVM作为元分类器输出最后的分类类别。由于实验数据样本较小,为了保证模型能够更好地学习到所有的数据,本文以5折交叉验证的方式来对数据进行学习,算法具体的实现步骤如下:

(1)将原始数据划分为训练集和测试集后,把训练集分成5份为模型训练做准备。

(2)不重复的在步骤(1)中划分的5份训练集数据选取4份对AdaBoost、KNN和CART决策树模型进行训练,每训练完一个模型就用剩下的1份数据进行预测,得到的预测结果作为第二层模型的特征输入值。

(3)每训练完一个基础模型后,就用整个测试集来做预测,最终产生5份预测结果取其平均值作为下一层输入。

(4)步骤(2)输出的预测结果作为第二层模型的输入,训练第二屋模型;步骤(3)输出的结果作为新的测试集对模型进行测试,得出整个模型的分类结果。

2 实验结果与分析

2.1 数据集

本文实验数据选自某市①经过处理后的窃漏电用户数据,数据包含291条窃漏电用户的统计数据,包括经过特征处理后提取出来的电量趋势下降指标、线损指标和告警类指标三类特征。

电量趋势的值是以某一天及其前后5天为统计周期,然后用电量直线拟合的斜率[3]。其计算公式为:

2.3 结果分析

单个基础模型和Stacking融合模型的实验结果对比如下表1。

实验的预测结果显示,Stacking融合模型的精确率明显高于AdaBoost、KNN和CART决策树模型,证明了模型的可行性。F.值是精确率和召回率的调和平均值,作为精确率和回召率的综合评价指标,Stacking融合模型的F.值也高于三个单一的基础模型,反映了本文提出模型性能的有效性和稳健性。

3 结语

介召了AdaBoost、KNN以及CART决策树算法,并以这三个算法为基础模型构建了用于检测窃漏电用户的Stacking融合模型。实验结果表明,本文提出的窃漏电用户检测模型相比于单个检测模型在综合性能上表现出了一定的优势,对于辅助断定用户是否存在窃漏电行为具有一定的指导性作用。

注释:

①https://edu.tipdm.org/c ourse/96

参考文献:

[1] Freund Y,Schapire R E.A decision-theoretic generalizationof on-line learning and an application to boosting[Cl// Pro-ceedings of the Second European Conference on Computation-al Learning Theory. SpringeI-Verlag, 1995.

[2] Wolpert D H.Stacked generalization[J]. Neural Networks,1992。5(2):241-259.

[3]张良均,王路.Python数据分析与挖掘实战[M].北京:机械工业出版社,2015:154-156.

【通联编辑:唐一东】

作者简介:谭台哲(1970-),男,副教授,主要研究方向:机器学习、计算机视觉和生物特征识别;周宇才(1992-),男,硕士研究生,王要研究方向:数据挖掘;谢旭轩(1993-),男,硕士研究生,主要研究方向:深度学习。