学习笔记之《python数据分析与挖掘实战》第六章电力窃漏电用户自动识别


在这里插入图片描述

欢迎购买正版书籍

豆瓣评价:Python数据分析与挖掘实战
作者: 张良均 / 王路 / 谭立云 / 苏剑林
出版社: 机械工业出版社

参考源码:《python数据分析与挖掘实战》的代码笔记

电力窃漏电用户自动识别

背景与挖掘目标

通过用户用电数据信息提取出窃漏电用户的关键特征,构建窃漏电用户的识别模型,自动检查、判断用户是否存在窃漏电行为。
数据挖掘建模目标如下:

  • 归纳出窃漏电用户的关键特征,构建且漏电用户的识别模型。
  • 利用实时监测数据,调用窃漏电用户识别模型实现实时诊断。

分析方法与过程

在这里插入图片描述

数据抽取

从营销系统和计量自动化系统中抽取如下数据:

  • 从营销系统抽取的数据
    • 用户基本信息
    • 违约、窃电处理记录
    • 计量方法及依据
  • 从计量自动化系统采集的数据属性:
    • 实时负荷
    • 终端报警
      本案例抽取某市5年来所有用户的且漏电用户有关数据和不同用电类别正常用电用户共208个用户的有关数据,同时包含每天是否有窃漏电情况的标识。

数据探索分析

1.分布分析
在这里插入图片描述
2.周期性分析
在这里插入图片描述
在这里插入图片描述

数据预处理

  • 1.数据清洗
  • 2.缺失值处理
    本案例采用拉格朗日插值法对缺失数据进行插补
    拉格朗日插值代码:
import pandas as pd
from scipy.interpolate import lagrange

inputfile = './missing_data.xls'
outputfile = './missing_data_processed.xls'
data = pd.read_excel(inputfile, header=None)  # 读入数据

# 自定义列向量插值函数
# s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5
def ployinterp_column(s, n, k=5):
    y = s[list(range(n - k, n)) + list(range(n + 1, n + 1 + k))]  # 取数
    y = y[y.notnull()]  # 剔除空值
    return lagrange(y.index, list(y))(n)  # 插值并返回插值结果

# 逐个元素判断是否需要插值
for i in data.columns:
    for j in range(len(data)):
        if (data[i].isnull())[j]:
            data[i][j] = ployinterp_column(data[i], j
  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值