电力窃漏电用户自动识别

本文介绍了电力窃漏电用户自动识别的过程,包括数据预处理中的数据清洗和缺失值处理,以及模型构建阶段的神经网络和决策树模型。通过模型训练和评估,对比了两种模型的性能,发现CART决策树模型在识别窃漏电用户方面表现更优。
摘要由CSDN通过智能技术生成

电力窃漏电用户自动识别

1 数据预处理

1.1   数据清洗

主要目的是筛选出需要的数据,将多余的数据过滤

(1)      将初始数据进行分布可视化分析后发展非居民用电类别不存在漏电窃电的行为,故将这一部分数据过滤;

(2)      结合实际情况,节假日用电比工作日用电明显偏低,为了避免将其认为是漏电现象,将此部分数据过滤。

1.2   缺失值处理

经观察原始数据发展存在数据缺失现象,若将此部分数据删除则将放弃很多有价值的信息,甚至影响计算结果,故本案例采用拉格朗日插值法对缺失值进行差补。

此处赘述一下拉格朗日插值法:

首先从原始数据集中确定因变量和自变量,取出缺失值前后五个数据,根据取出来的10个数据组成一组,采用拉格朗日插值公式:

 

为缺失值对应的下标号,为缺失值的插值结果,为非缺失值的下标序号。对全部缺失数据进行插补。代码如下:

importpandas aspd
from scipy.interpolateimport lagrange
import warnings
inputfile=
r'demo\data\missing_data.xls'
outputfile=r'demo\tmp\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 iin data.columns:
   
for jin range(len(data)):
       
if (data[i].isnull())[j]:
           data[i][j]=ployinterp_column(data[i]
,j)
data.to_excel(outputfile
,header=None,index=False)

原始数据与处理后的数据如下:(

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值