数据挖掘建模目的
1.1 归纳出窃漏电用户的关键特征,构建窃漏电用户的识别模型。
1.2 利用实时监测数据,调用窃漏电用户识别模型实现实时诊断。
分析方法与过程
2.1 数据抽取
从营销系统、自动化设备及往年的窃漏电用户数据抽取数据。(实际上包含了自动抽取和人工标示两种方法)2.2 数据探索
初步分析的过程,可以说是技术选型阶段。而本案例中采用的是分布分析和周期性分析方法。2.2.1 分布分析
根据往年的窃漏电用户数据中窃漏电用户的行业分布进行分类,做出柱状图进行分析。(以groupby方法可以实现分类目的)2.2.2 周期性分析
通过对正常用户和窃漏电用户的用电行为进行分析,总结两者的行为特征,为区分正常用户和窃漏电用户做为判断标准。
其中用电量趋势图可以通过plot方法获得,较为简单。2.3 数据预处理
2.3.1 数据清洗
把不具备特征性的数据首先进行清除。2.3.2 缺失值处理
缺失值常见的处理方法分为:删除记录,数据插补,不处理。
插补方法 | 描述 |
---|---|
均值/中位数/众数 | 根据数据类型进行选择 |
适用固定值 | 对于明确的常量可以使用固定值插补 |
最近临插补 | 在记录中寻找最接近的样本进行插补,比如一些连续的数据,有规律的数据 |
回归方法 | 根据拟合模型来预测缺失量(实质就是做出一个函数来算出缺失值) |
插值法 | 根据已知点建立插值函数,插补缺失值 |
常用的插值法有:拉格朗日插值法和牛顿插值法,Hermite插值,分段插值,样条插值法等。
拉格朗日插值法和牛顿插值法结果是相同的,所以scipy中仅提供了拉格朗日插值法函数(from scipy.interpolate import lagrange)。
对于不能忽略的缺失值应当进行处理补偿,本案例采用的是拉格朗日插值法对缺失值进行插补。(第4章P61页具体介绍拉格朗日插值法)
2.3 数据变换
2.3.1 电量趋势下降指标
问题:T值正确的计算公式是什么?
遗留问题:通过计算获得ki后,即使正常使用情况下,ki值也会出现上升和下降,那么本指标的作用呢?我认为ki>= ki-1 值应当为-1。或者最终以T占总量的百分比确定是否异常
2.3.2 线损指标
以当日为基点,(前五日的平均线损率-后五日的平均线损率)/后五日平均线损率,进行比较。(对应代码P71页)
2.4 构件专家样本
2.5 模型构建
2.5.1 构件窃漏电用户识别模型
构件分类预测模型(LM神经网络和CART决策树),利用80%做为训练样本,20%做为测试样本。
2.5.2 LM神经网络
LM神经网络模