一、案例综述

案例编号:102003

案例名称:电力、热力、燃气及水生产和供应业——电力窃漏电用户识别

作者姓名(或单位、或来源):朱江

案例所属行业:D442 电力供应

案例所用软件:R

案例包含知识点:拉格朗日插补,神经网络,CART决策树,ROC曲线

案例描述:目标:防窃漏电,找出可能存在窃漏电的可疑用户做进一步处理传统方法:定期巡检、定期校验电表、用户举报窃电缺点:对人依赖性强,目标不明确,工作量大

目前常用方法:利用计量异常报警功能,电能量数据查询功能,进行用户用电情况的在线监督。采集的信息主要有:电量异常、负荷异常、终端报警、主站报警、线损异常等。根据报警事件发生前后客户计量点有关的数据情况(电流、电压、负荷),构建基于指标加权的用电异常分析模型。缺点:终端误报漏报过多,以致无法高效高速定位。指标权重拍脑门,需要专家的知识和经验,主观性可能会导致不准确。

分析过程:要剔除不可能存在漏电的大用户,如银行、税务、学校、工商。用电负荷随着时间的变化才有价值,而终端报警存在误报和漏报,而这些数据都能够帮助总结用户窃漏电的行为规律,即通过预处理提炼出描述用户窃漏电特征的相关指标,最终得到建模使用的专家样本数据集,然后开始建模等工作。主要步骤如下:

1.从电力计量自动化系统、营销系统有选择性地抽取部分大用户用电负荷、终端报警及违约窃电处罚信息等原始数据。2.剔除白名单用户,即不可能存在漏电的用户。描述性和探索性分析正常用户和窃漏电用户的用电特征。3.处理样本缺失值,通过经验构建特征指标,形成专家数据集4.构建窃漏电用户识别模型5.模型落地,在线监测用户用电负荷及终端报警,调用模型实现实时诊断。6.通过对诊断结果的评估,优化或者重构模型

数据预处理:剔除白名单用户,这里把这些用户归为非居民类别剔除节假日用电数据,根据业务经验节假日用电量明显偏低(大部分用户为企业用户)

如果直接将缺失值剔除,会严重影响供出电量的计算结果,从而导致日线损率误差很大,故本案例采用拉格朗日插值法对缺失值填补。拉格朗日插补可以选取缺失值前后5个数据或者和邻近缺失值之间的所有数据,组成一组,使用如下公式:

其中x为缺失值对应的序号,x_i为非缺失值y_i的序号,对全部缺失值依次填补,直到不存在缺失值。

3.数据变换需要通过新的评价指标来表征窃漏电用户的行为规律,故根据业务经验和专业理论引出三个评价指标:电量趋势下降指标、线损指标、告警类指标电量趋势下降指标:取统计当天及前后五天共11天的数据,通过线性拟合计算斜率,如果当天的斜率小于前一天的,则计数加1,可以据此计算敏感时期内的总计数。线损指标:线损率具体查看相关电学知识,取当天及前五天线损均值,当天及后五天线损均值比较,如果增长率大于1%,则记为1,否则为0告警类指标:取自终端报警次数总和

本案例共包含五个知识点:1.拉格朗日插值法:使用拉格朗日填补法填补缺失值2.数据清洗及转换:通过作图在时间维度上查看前后5天内的电量均值变化趋势;计算电量下降趋势指标;计算线损指标3.数据划分:划分训练样本和测试样本,方便比对模型的有效性4.神经网络建模:运用较为简单的BP神经网络建立分类模型5.构建CART决策树模型6.模型评价:利用ROC曲线在测试集上评价模型

案例执行形式:单人上机

二、案例知识点:知识点1:知识点名称:拉格朗日插值法

知识点所属工作角色:

知识点背景:处理缺失值的一种插补方式

知识点描述采用拉格朗日多项式插补公式对缺失值进行插补

知识点关键词:拉格朗日多项式 缺失值插补

知识点所用软件:Rstudio

操作目的:能够自主编程实现拉格朗日插补

知识点素材(包括数据):missing_data.xls

操作步骤:1.启动Rstudio2.使用setwd()函数设置工作目录,将数据文件拷贝至工作目录下3.加载xlsx包,读取素材文件,.xls格式4.根据拉格朗日插值法创建拉格朗日插值函数5.创建自动替换数据框缺失值的函数,找到每个缺失值,并且读取每个缺失值前后五个或者距离上个缺失值之间的数值,采用之前创建的拉格朗日插值函数填补。6.对读取到的数据应用上一步的函数处理,并且保存处理前后对比如下:操作结果:数据前后对比如上图将R代码文件保存为newdata.csv以备后续使用。

知识点小结:拉格朗日插值法目前现成的函数都是用于拟合多项式,插值填补的话可以自己写函数并且取自己觉得合适的前后数据处理

知识点2:知识点名称:数据清洗及转换

知识点所属工作角色:

知识点背景:通过业务逻辑按照条件筛选数据,关键点在于按照条件筛选,以及理解业务逻辑,进而计算需要的指标

知识点描述使用阶跃函数按条件筛选数据创建函数

知识点关键词:筛选变量 创建函数

知识点所用软件:Rstudio

操作目的:筛选数据按照业务逻辑生成新指标

知识点素材(包括数据):用户日用电量.xls

操作步骤:1.读取数据:用户日用电量.xls2.进行简单的数据清洗,读取行数3.通过循环,用自建函数筛选观测,计算日均电量,多日电量斜率,日均线损4.作日均电量的点线图,注意图形参数的调整,加入回归线,以及原始的电量数据5.将图形输出到外部设备上,即输出mat.png文件

得到图形如上所示使用上上步计算得到的数据计算电量趋势下降指标、线损指标、并且结合对应的时间以区分将得到的指标放在数据框内,并且输出到文件pro.csv中得到的文件部分内容如下操作结果:生成图形观察日均电量相对于原始电量的变化趋势,从而判断用户是否为可以的窃漏电用户生成新指标,并且输出新指标的表格

知识点小结:主要涉及到通过阶跃函数按照业务逻辑筛选观测,按照业务逻辑构建新指标,输出新指标的趋势图以及统计表格

知识点3:知识点名称:数据划分

知识点所属工作角色:数据划分

知识点背景:数据划分是在进行数据清洗和描述性分析后,在建模之前必备的一步,由于很多训练模型很容易出现过拟合的状况,所以需要通过独立于训练数据的测试数据来观察模型实际应用在新数据上的效果。

知识点描述数据划分

知识点关键词:数据划分

知识点所用软件:Rstudio

操作目的:对清洗后的数据进行数据划分

知识点素材(包括数据):model.csv

操作步骤:1.读取数据,创建符合七三比例的随机数2.根据创建的随机数生成训练集和测试集,并且写入文件操作结果:生成两个数据文件,训练数据和测试数据

知识点小结:本知识点只是对数据进行了简单的分割,分成训练数据和测试数据,有兴趣的同学可以进一步使用交叉验证进行进一步的模型选择

知识点4:知识点名称:神经网络建模

知识点所属工作角色:

知识点背景:使用神经网络构建分类模型

知识点描述

知识点关键词:

知识点所用软件:Rstudio

操作目的:熟悉使用BP神经网络建模的基本过程

知识点素材(包括数据):traindata.csv

操作步骤:1.读取数据,将预测列转换为因子列2.使用神经网络建模3.根据模型预测训练集,计算混淆矩阵、准确率4.将预测结果与训练集横向合并并且输出到output.csv文件,将模型输出到nnetmodel.RData文件操作结果:得到的混淆矩阵如下得到的准确率是94.17

知识点小结:神经网络模型的关键在于参数的选择,而参数涉及到隐层层数,每层节点数,学习率或者衰减率,最大迭代次数等等。而R中一些常见的神经网络的包有自己的计算逻辑也需要进一步了解。

知识点5:知识点名称:构建CART决策树模型

知识点所属工作角色:

知识点背景:使用CART决策树构建分类模型

知识点描述CART决策树

知识点关键词:CART决策树

知识点所用软件:Rstudio

操作目的:熟悉使用cart决策树建模的基本过程

知识点素材(包括数据):traindata.csv

操作步骤:1.读取数据,将预测列转换为因子列2.使用cart决策树建模,总结模型并且画出决策树图

3.根据模型预测训练集,计算混淆矩阵、准确率4.将预测结果与训练集横向合并并且输出到output1.csv文件,将模型输出到treemodel.RData文件操作结果:得到的混淆矩阵如下得到的准确率是92.72

知识点小结:决策树只能做比较简单的分类,复杂的分类在精确度要求高的时候需要用到随机森林

知识点6:知识点名称:模型评价

知识点所属工作角色:模型评价

知识点背景:模型评价:利用ROC曲线在测试集上评价模型

知识点描述模型评价

知识点关键词:ROC曲线

知识点所用软件:Rstudio

操作目的:熟悉使用ROC曲线评价模型

知识点素材(包括数据):testdata.csv nnetmodel.RData treemodel.RData

操作步骤:1.读取数据,读取两个模型数据2.在测试数据集上绘制神经网络模型的ROC曲线

3.在测试数据集上绘制决策树的ROC曲线

操作结果:得到的ROC曲线如前所示,可见神经网络ROC曲线下的面积更大,说明神经网络分类模型的分类性能较好

知识点小结:ROC曲线常用来在测试集上检测用于分类的模型的好坏

完 谢谢观看

rstudio拉格朗日插值法_电力窃漏电用户识别案例相关推荐

  1. 电力大数据模型-电力窃漏电用户识别大数据模型

    传统的防窃漏电方法主要通过定期巡检.定期校验电表.用户举报窃电等手段来发现窃电或计量装置故障.但该方法对人的依赖性太强,抓窃查漏的目标不明确.目前大多数供电局主要通过营销稽查人员.用电检查人员和计量工 ...

  2. 二十六、数据挖掘电力窃漏电用户自动识别

    电力窃漏电用户自动识别 1. 综合案例数据预处理 电力窃漏电用户自动识别的内容 背景与挖掘目标 分析方法与过程 数据探索性分析 综合案例的目标 通过综合案例分析了解数据挖掘的整体流 掌握使用sklea ...

  3. 数据分析系列之电力窃漏电用户自动识别

      在线监测用户用电负荷数据,经过数据预处理,得到模型输入数据,利用构建好的识别模型计算用户窃漏电诊断结果,实现窃漏电用户的实时诊断,并与实际稽查结果对比 背景与挖掘目标   传统的防窃漏电方法主要是 ...

  4. 数据挖掘I 电力窃漏电用户自动识别

    一.项目背景 传统的防漏电窃电方法主要通过定期巡检.定期校验电表.用户举报窃电等方法来发现窃电或者计量装置故障,对人的依赖性比较强,抓窃查漏的目标不明确. 供电局相关人员利用相关数据构建的基于指标加权 ...

  5. 电力窃漏电用户自动识别的实验报告

    电力窃漏电用户自动识别实验报告 提示 参考书:张良均<Python数据分析与挖掘实战>等. 数据文件:课本自带数据. 使用软件:Pycharm. 类别:实验. 关键字:拉格朗日插值法.CA ...

  6. Python 数据挖掘之电力窃漏电用户自动识别

    Python 数据挖掘之电力窃漏电用户自动识别 综述 拉格朗日插值 决策树模型 LM神经网络模型 结果 决策树模型结果图 LM神经网络模型结果图 综述 对电力公司数据进行挖掘分析,首先使用拉格朗日插值 ...

  7. 数据挖掘项目---电力窃漏电用户自动识别

    1.挖掘目标 1) 归纳出窃漏电用户的关键特征,构建窃漏电用户的识别模型 2) 利用实时监测数据,调用窃漏电用户识别模型,实现实时诊断 2.分析方法与过程 1) 从电力计量自动化系统.营销系统有选择性 ...

  8. 数据挖掘实战:电力窃漏电用户自动识别

    案例来自<python数据分析与挖掘实战> 背景 需求:防用户窃漏电 传统方法:定期巡检.定期校验电表.用户举报窃电.计量装置故障 缺陷:对人的依赖性太强,抓窃查漏的目标不明确. 当前方法 ...

  9. 电力窃漏电用户自动识别

    一.背景与挖掘目标 传统防窃漏电主要通过定期巡检.定期校验电表.用户举报等手段来发现窃电或者计量装置故障.但这种方法对人的依赖性太强,抓取查漏目标不明确.目前,很多供电局主要通过营销稽查人员.用电检查 ...

最新文章

  1. 使用Feign时如何设置Feign的Header信息
  2. php mysql xa_分布式事务之——MySQL对XA事务的支持
  3. 第六周项目一-分数类的雏形(1)
  4. python去掉数字最后的零_python – 如何消除额外的负号,将数字四舍五入为零时,以numpy为单位?...
  5. Python学习笔记:返回函数
  6. Java+Selenium+sikuli script入门使用
  7. javascript正则表达式(一)
  8. Python-进程相关概念
  9. 充值加油卡骗局:一次伪金融诈骗为何能圈数亿
  10. Python Tricks(三)—— 计算误分率
  11. 用户增长 - BG/NBD概率模型预测用户生命周期LTV(二)
  12. 2008年5月Windows Mobile Webcast预告
  13. 企业架构之道(一)之企业信息化建设
  14. 2021美亚杯第七届中国电子数据取证团体赛题目详解write up
  15. Latex 书写 IEEE 会议论文
  16. manjaro设置字体_manjaro中文字体安装与设置
  17. 看电子巨头的那些分分合合
  18. 上海创蓝253董事长_从世界记忆大师到互联网百强企业CEO:创蓝253钛牛哥的传奇之路...
  19. 传奇服务器怎么设置状态是开区还是合区,传奇私服开区合区教程全解
  20. 电脑win10系统如何开定位服务器,win10系统下如何打开/关闭定位?windows10打开/关闭定位图文教程...

热门文章

  1. Elasticsearch+Spring Boot集成实践
  2. [深度学习] OpenVINO开发:C++ API推理步骤实现
  3. 计算机应用微课说明,【计算机应用论文】微课在计算机应用基础教学的应用(共4621字)...
  4. RabbitMQ实现延迟消息
  5. 世界著名的品牌啤酒——网络整理X
  6. 机器学习回归之商品x的网络消费购买预测实例(sklearn)包含数据集的训练与预测
  7. C++读图txt文件,并将数据结构 图显示出来
  8. Kali+Win7双系统
  9. 中国超级计算机使用率,中国天河一号超级计算机已饱和运行 使用率超过欧美...
  10. linux文件系统研究与设计,Linux下实时文件系统的设计