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

电力窃漏电用户自动识别(SPSS Modeler) 据统计,全国每年因窃电造成的损失都在200亿元左右;被查获的窃电案件不足总窃电案件的30%。而传统的用电检查及反偷查漏工作主要依靠突击检查的手段来打击窃电行为;存在先天性的缺陷和不足。 现有的电力计量自动化系统能够采集到各相电流、电压、功率因数等用电负荷数据以及用电异常等终端报警信息。异常告警信息和现场稽查来查找出窃漏电用户,并录入系统。若能通过这些数据信息提取出窃漏电用户的关键特征,构建窃漏电... 阅读详情

  在线监测用户用电负荷数据,经过数据预处理,得到模型输入数据,利用构建好的识别模型计算用户窃漏电诊断结果,实现窃漏电用户的实时诊断,并与实际稽查结果对比

背景与挖掘目标

  传统的防窃漏电方法主要是通过定期巡检,定期校验电表,用户举报窃电等方法来发现窃电或者计量装置故障,但这种方法对人依赖性太大,抓漏查漏的目标不明确.当前,供电局通过营销稽查人员,用电检查人员和计量工作人员利用计量异常报警功能和电量数据查询功能开展用户在线监控工作,通过采集电量异常,负荷异常,终端报警,主站报警,线损异常等数据建立数据分析模型,来实时监控窃漏电用户和发现计量设备故障.根据报警事件前后发生客户计量点有关的电流,电压,负荷数据等情况,构建基于指标加权的用电异常分析模型,实现检查客户是否存在窃电,违章用电及计量装置故障等.
  以上防止窃漏电诊断方法,虽然能够获得用户异常的某些数据,但由于终端误报或者漏报过多,无法真正快速定位漏电用户,往往令稽查人员无所适从,而且采用这种方法建模时,模型输入指标权重需要专家的知识和经验来判断,具有很大的主观性,有明显缺陷.
  现有的电力计量自动化系统能够采集到各相电流,电压等用电负荷数据以及用户异常数据,异常警告信息和用电负荷数据能够反映用户的用电情况,同时稽查工作人员也会通过在线稽查和现场稽查来找出窃漏电用户,并录入系统.若能根据这些关键信息提取出窃漏电用户的关键特征,构建窃漏电用户的识别模型,就能自动检查,判断用户是否存在窃漏电行为.
  表给出某企业大用户的用电负荷数据,采集时间间隔为15分钟,即0.25小时,可进一步计算用户电量.

用户编号时间有功总B相C相电流A相电流B相电流C相电压A相电压B相电压C相功率因素功率因素A功率因素B
100120192020349.233.6033.4105000105000.7840.573-10000

  下表给出该企业大用户的终端报警数据,其中与窃漏电相关的警报能较好的识别用户的窃漏电行为.

用户名称时间计量点ID报警编号报警名称
某企业大用户2019/05/21 6:121001152电流不平衡
某企业大用户2019/05/23 23:021001143A相电流过负荷

  下表为某企业大用户违约,窃电处理通知书,表中记录了用户的用电类别和窃电时间
在这里插入图片描述
  本次数据挖掘的目标如下:
  1.归纳出窃漏电用户的关键特征,构建窃漏电用户的识别模型.
  2.利用实时监测数据,调用窃漏电用户识别模型实现实时诊断.

分析方法与过程

  窃漏电用户在电力计量自动化系统的监控大用户中只占一小部分,同时某些大用户也不可能存在窃漏电行为,例如银行,学校,税务等非居民类别,故在数据预处理时有必要要将这部分用户剔除.系统中的用电负荷也不能直接体现用户的窃漏电行为,终端报警存在很多误报和漏报的情况,故需要进行数据探索和预处理,总结窃漏电用户的行为规律,再从数据中提炼出描述窃漏电用户的特征指标,最终结合历史窃漏电用户信息,整理识别模型的专家样本数据集,在进一步构建分类模型,实现窃漏电用户的自动识别.窃漏电用户识别流程如图所示,主要包括以下步骤:
在这里插入图片描述
  1.从电力计量系统自动化系统和营销系统有选择的抽取部分大用户数据用电负荷,终端报警以及违约窃电处罚信息等原始数据.
  2.对样本数据探索分析,剔除不可能存在窃漏电行为行业的用户,即白名单用户,初步审视正常用户和窃漏电用户的用电特征.
  3.对样本数据进行数据预处理,包括数据清洗,缺失值处理和数据变换.
  4.构建专家样本数据集.
  5.构建窃漏电用户识别模型.
  6.在线监测用户用电负荷以及终端报警,调用模型实现实时诊断.

数据抽取

  与窃漏电相关的包括用电负荷数据,终端报警数据,违约窃电处罚信息以及用户档案资料等,故进行窃漏电诊断模型时需从营销系统和计量自动化系统中抽取如下数据:
  (1)从营销系统抽取的数据
  1)用户基本信息:用户名称,用户编号,用电地址,用电类别,报装容量,计量方式,电流互感器变比,电压互感器变比.
  2)违约,窃电处理记录.
  3)计量方法及依据.
  (2)从计量自动化系统采集的数据属性
  1)实时负荷:时间点,计量点,总有功功率,A/B/C相有功功率,A/B/C相电流,A/B/C相电压,A/B/C相功率因素.
  2)终端报警.
  为了尽可能全面覆盖各种窃漏电方式,建模样本要包含不同用电类别的所有窃漏电用户及部分正常用户,窃漏电用户的开始时间和结束时间是表征窃漏电的关键时间节点,在这些时间节点上,用电负荷以及窃漏电数据也会有一定的特征变化,故样本数据抽取时必须包含关键时间节点前后一定范围的数据,并通过用户的负荷数据计算当天的用电量,计算公式为:fl=0.25∑mi∈lmif_{l}=0.25\sum_{m_{i}\in l}m_{i}fl​=0.25∑mi​∈l​mi​,其中,flf_{l}fl​是第l天的用电量,mim_{i}mi​是第l天每隔15分钟的总有功率,对其累加求和得到当天的用电量.
  基于此,本次数据挖掘抽取某市近5年来所有窃漏电用户有关数据和不同用电类别正常用电用户208个用户案例,时间为2009年1月1日至2014年12月31日,同时包含每天是否有窃漏电情况的标识.

数据探索分析

  数据探索分析是对数据进行初步的研究,发现数据的内在规律特征,有助于选择合适的数据预处理和数据分析技术,本案例采用分布分析和周期性分析等方法对用电量数据进行数据探索分析.
  1.对比分析
  对2009年1月1日至2014年12月31日共5年所有窃漏电用户进行分布分析,统计出各个用电类别的窃漏电用户分布情况,发现非居民类别不存在窃漏电情况,故接下来的分析不考虑非居民类别的用电数据.
在这里插入图片描述
  2.周期性分析
  随机抽取一个正常用户和一个窃漏电用户,采用周期性分析对用电量进行探索.
  (1)正常用电电量分析
  正常用电量分析见图和表demo/data/用户正常用电量数据.xlsx,总体表现该用户比较平稳,没有太大的波动,这就是正常用电的电量指标特征.
在这里插入图片描述
代码示例:

#-*- coding: utf-8 -*-
#时序图
import pandas as pd

#参数初始化
discfile = '../data/用户正常用电量数据.xlsx'
forecastnum = 5

#读取数据,指定日期列为指标,Pandas自动将“日期”列识别为Datetime格式
data = pd.read_excel(discfile, index_col = u'日期')

#时序图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
data.plot()
plt.show()

  同理读取窃电漏电用户电量数据demo/data/用户窃电用电量数据.xlsx,绘制窃漏电用户电量趋势图,这里可以看出该用户用电量出现明显下降趋势,这就是用户异常用电的电量指标特征.
在这里插入图片描述
  分析结论:从图中可以看出,正常用电到窃漏电过程是用电量持续下降的过程,该用户从2014/9/1开始用电量下降,这就是用户开始窃漏电时表现出来的重要特征.

数据预处理

  本案例主要是从数据清洗,缺失值处理和数据变换等方面对数据进行预处理.
  1.数据清洗
  数据清洗的主要目的是从业务以及建模相关需要方面考虑,筛选出需要的数据.由于原始数据中并不是所有的数据都要进行分析,因此需要在进行数据处理时,将多余的数据过滤.本案例主要进行如下操作:
  1)通过数据探索分析,发现在用电类别,发现用电类别,非居民用电类别不可能存在漏电窃电现象,需要将非居民用电类别的用电数据过滤掉.
  2)结合本案例业务场景,节假日用电量与工作日相比,会明显偏低,为了尽可能达到较好的效果,过滤节假日数据.
  2.缺失值处理
  在原始计量数据,特别是用户电量数据抽取中,发现缺失现象,若将这些值抛弃掉,会严重影响供出电量计算结果,最终导致日线损率数据误差很大,为了达到较好的建模效果,需要对缺失值进行处理,本案例采用拉格朗日插值法对缺失值进行插补.对demo/data/missing_data.xls表中数据进行插补,表中为三个用户一个月工作日的电量数据,对缺失值采用拉格朗日插值法进行插补.
  拉格朗日插值插补方法具体为:首先从原始数据集中确定因变量和自变量,取出缺失值前后5个数据(前后数据中遇到数据不存在或者为空的,直接将数据舍去,将仅有数据组成一组),根据取出的十个数据组成一组,然后利用拉格朗日公式求出近似函数,再将缺失值代入,求出插补值.对全部缺失数据进行插补,直到不存在缺失值为止,数据插补代码如下:

#-*- coding: utf-8 -*-
#拉格朗日插值代码
import pandas as pd #导入数据分析库Pandas
from scipy.interpolate import lagrange #导入拉格朗日插值函数

inputfile = '../data/missing_data.xls' #输入数据路径,需要使用Excel格式;
outputfile = '../tmp/missing_data_processed.xls' #输出数据路径,需要使用Excel格式

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)

data.to_excel(outputfile, header=None, index=False) #输出结果

  3.数据变换
  通过计量系统采集的电量,负荷虽然在一定程度上反映用户的窃漏电行为的某些规律,当要作为构建模型的专家样本,特征不明显,需要重新构造.基于数据变换,得到新的评价指标来表征窃漏电行为具有的规律,其评价指标体系如图:
在这里插入图片描述
  窃漏电评价指标:
  (1)电量趋势下降指标
  在周期性分析中,发现正常用户的用电量较为平稳,窃漏电用户呈现下降趋势,然后趋于平缓.因此可以考虑前后几天作为统计窗口期,考虑期间的下降趋势,利用电量做直线拟合得到斜率作为衡量,如果斜率随时间不断下降,那么用户窃漏电的可能性就比较大.如图所示,第一幅图显示每天的用电量,之后随着时间的推移,获得各自统计窗口期以用电量做直线拟合的斜率,可以看出斜率在不断变换,随时间逐步下降.
在这里插入图片描述
  对统计当天设定前后5天作为统计窗口期,计算这11天内电量下降情况.首先计算这11天中每天的电量趋势,其中第i天的用电量趋势是考虑前后5天的用电斜率,即:ki=∑l=i−5i+5(fl−f‾)(l−l‾)∑l=i−5i+5(l−l‾)2k_{i}=\frac{\sum_{l=i-5}^{i+5}(f_{l}-\overline{f})(l-\overline{l})}{\sum_{l=i-5}^{i+5}(l-\overline{l})^{2}}ki​=∑l=i−5i+5​(l−l)2∑l=i−5i+5​(fl​−f​)(l−l)​,其中f‾=111∑l=i−5i+5fi\overline{f}=\frac{1}{11}\sum_{l=i-5}^{i+5}f_{i}f​=111​∑l=i−5i+5​fi​,l‾=111∑l=i−5i+5li\overline{l}=\frac{1}{11}\sum_{l=i-5}^{i+5}l_{i}l=111​∑l=i−5i+5​li​,kik_{i}ki​为第i天的电量趋势,flf_{l}fl​为第l天的用电量.
  若用电量趋势是不断下降的,则具有一定的窃电嫌疑,故计算这11天内,当天比前一天用电量趋势为递减的天数,即设有y={1,ki&lt;ki−10,ki≥ki−1y=\begin{cases}1,&amp;k_{i}&lt;k_{i-1}\\0,&amp;k_{i}\geq k_{i-1}\end{cases}y={1,0,​ki​<ki−1​ki​≥ki−1​​.
  则11天内的电量下降趋势指标为T=∑n=i−4i+5D(n)T=\sum_{n=i-4}^{i+5}D(n)T=∑n=i−4i+5​D(n)
  (2)线损指标
  线损率是衡量电路损失的比率,同时结合线户的拓扑关系计算出用户所属线路当天的线损率,一条线路上同时供给多个用户,若第l天的线路供电量为sls_{l}sl​,线路上各个用户的总用电量为∑mfl(m)\sum_{m}f_{l}^{(m)}∑m​fl(m)​,线路线损率计算公式为:tl=sl−∑mfl(m)sl×100%t_{l}=\frac{s_{l}-\sum_{m}f_{l}^{(m)}}{s_{l}}\times 100\%tl​=sl​sl​−∑m​fl(m)​​×100%,如图为线户拓扑关系:
在这里插入图片描述
  线路的线损率可以作为用户线损率的参考值,若用户发生窃漏电,则当天的线损率会上升,但是由于用户每天的用电量存在波动,单纯以当天的线损率上升作为窃漏电特征误差过大,所以考虑前后几天的线损率平均值,判断其增长率是否大于1%,若线损率增长率大于1%具有窃漏电可能性.
  对统计当天设置前后5天为统计窗口期,首先分别统计当天与前5天之间的线损率平均值Vi1V_{i}^{1}Vi1​和当天与后5天之间的线损率平均值Vi2V_{i}^{2}Vi2​,若Vi1V_{i}^{1}Vi1​比Vi2V_{i}^{2}Vi2​的增长率大于1%,则认为具有一定的窃电嫌疑,故定义线损指标为:E(i)={1,Vi1−Vi2Vi2&gt;1%0,Vi1−Vi2Vi2≤1%E(i)=\begin{cases}1,&amp;\frac{V_{i}^{1}-V_{i}^{2}}{V_{i}^{2}}&gt;1\%\\0,&amp;\frac{V_{i}^{1}-V_{i}^{2}}{V_{i}^{2}}\leq1\%\end{cases}E(i)=⎩⎨⎧​1,0,​Vi2​Vi1​−Vi2​​>1%Vi2​Vi1​−Vi2​​≤1%​
  (3)告警类指标
  与窃漏电相关的终端报警主要有电压缺相,电压断相,电流反极性等告警,计算发生与窃漏电相关的终端报警次数总和,作为告警类指标.

构建专家样本

  对2009年1月1日至2014年12月31日所有窃漏电用户及正常用户的电量,告警及线损数据和该用户在当天是否窃漏电的标识,按照窃漏电评价指标进行处理并选择其中291个样本数据,得到专家样本库,数据表详见demo/data/model.xls.

模型构建

  构建窃漏电用户识别模型
  在专家样本准备完成后需要划分测试样本和训练样本,随机选取20%作为测试样本,剩下的作为训练样本.窃漏电用户识别可以通过构建分类预测模型来实现,比较常用的分类预测模型有LM神经网络和CART决策树,各个模型有各个模型的优缺点,故采用这两种方法构建窃漏电用户识别,并从中选择最优的分类模型.构建LM神经网络模型和CART决策树时模型输入项包括电量下降指标,线损类指标和告警类指标,输出项为窃漏电标识.
  (1)数据划分
  对专家样本随机选取20%作为测试样本,剩下的80%作为训练样本,其代码清单:

import pandas as pd #导入数据分析库
from random import shuffle #导入随机函数shuffle,用来打算数据

datafile = '../data/model.xls' #数据名
data = pd.read_excel(datafile) #读取数据,数据的前三列是特征,第四列是标签
data = data.as_matrix() #将表格转换为矩阵
shuffle(data) #随机打乱数据

p = 0.8 #设置训练数据比例
train = data[:int(len(data)*p),:] #前80%为训练集
test = data[int(len(data)*p):,:] #后20%为测试集

  (2)LM神经网络
  人工神经网络(Artificial Neural Networks,ANN)是模拟生物神经网络进行信息处理的一种数学模型.常用的分类与预测的人工神经网络算法有BP神经网络和LM神经网络.BP神经网络是一种按误差逆向传播算法训练的多层前馈网络,LM神经网络是基于梯度下降法和牛顿法结合的多层前馈网络,LM神经网络迭代次数少,收敛速度快和精确度高,故文案例选用LM神经网络进行用户分类.使用Kears库为我们建立神经网络模型,设定LM神经网络的输入节点数为3,输出节点数为1,隐藏节点数为10,使用Adam方法求解.对于激活函数使用Relu(x)=max(x,0),可以得到训练样本的混淆矩阵图,算得分类正确率(161+58)/(161+58+6+7)=94.4%,正常用户被误判为窃漏电概率是7/(161+7)=4.2%,窃漏电用户被误判正常用户概率是6/(6+58)=9.4%.构建LM神经网络模型代码:

#接分类代码
#构建LM神经网络模型
from keras.models import Sequential #导入神经网络初始化函数
from keras.layers.core import Dense, Activation #导入神经网络层函数、激活函数

netfile = '../tmp/net.model' #构建的神经网络模型存储路径
from matplotlib.pyplot import plot as plt

net = Sequential() #建立神经网络
net.add(Dense(input_dim = 3, output_dim = 10)) #添加输入层(3节点)到隐藏层(10节点)的连接
net.add(Activation('relu')) #隐藏层使用relu激活函数
net.add(Dense(input_dim = 10, output_dim = 1)) #添加隐藏层(10节点)到输出层(1节点)的连接
net.add(Activation('sigmoid')) #输出层使用sigmoid激活函数
net.compile(loss = 'binary_crossentropy', optimizer = 'adam') #编译模型,使用adam方法求解##, class_mode = "binary"

net.fit(train[:,:3], train[:,3], epochs=1000, batch_size=1) #训练模型,循环1000次
net.save_weights(netfile) #保存模型

predict_result = net.predict_classes(train[:,:3]).reshape(len(train)) #预测结果变形
'''这里要提醒的是,keras用predict给出预测概率,predict_classes才是给出预测类别,而且两者的预测结果都是n x 1维数组,而不是通常的 1 x n'''

from cm_plot import * #导入自行编写的混淆矩阵可视化函数
cm_plot(train[:,3], predict_result).show() #显示混淆矩阵可视化结果
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve #导入ROC曲线函数
from dt_model import *
predict_result = net.predict(test[:,:3]).reshape(len(test))
fpr, tpr, thresholds = roc_curve(test[:,3], predict_result, pos_label=1)
plt.plot(fpr, tpr, linewidth=2, label = 'ROC of CART_tree', color = 'green') #作出ROC曲线
plt.plot(fpr1, tpr1, linewidth=2, label = 'ROC of LM') #作出ROC曲线
plt.xlabel('False Positive Rate') #坐标轴标签
plt.ylabel('True Positive Rate') #坐标轴标签
plt.ylim(0,1.05) #边界范围
plt.xlim(0,1.05) #边界范围
plt.legend(loc=4) #图例
plt.savefig('../tmp/ROC of CART_tree and LM.png')
plt.show() #显示作图结果

  利用训练样本构建LM神经网络的混淆矩阵图:
在这里插入图片描述
在这里插入图片描述
  (3)CART决策树
  通过Scikit-Learn利用样本集构建CART决策树,得到混淆矩阵如图所示,构建决策树代码:

#-*- coding: utf-8 -*-
#-*- coding: utf-8 -*-
#构建并测试CART决策树模型

import pandas as pd #导入数据分析库
from random import shuffle #导入随机函数shuffle,用来打算数据

datafile = '../data/model.xls' #数据名
data = pd.read_excel(datafile) #读取数据,数据的前三列是特征,第四列是标签
data = data.as_matrix() #将表格转换为矩阵
shuffle(data) #随机打乱数据

p = 0.8 #设置训练数据比例
train = data[:int(len(data)*p),:] #前80%为训练集
test = data[int(len(data)*p):,:] #后20%为测试集


#构建CART决策树模型
from sklearn.tree import DecisionTreeClassifier #导入决策树模型

treefile = '../tmp/tree.pkl' #模型输出名字
tree = DecisionTreeClassifier() #建立决策树模型
tree.fit(train[:,:3], train[:,3]) #训练

#保存模型
from sklearn.externals import joblib
from matplotlib.pyplot import  plot  as plt
joblib.dump(tree, treefile)

from cm_plot import * #导入自行编写的混淆矩阵可视化函数
cm_plot(train[:,3], tree.predict(train[:,:3])).show() #显示混淆矩阵可视化结果
#注意到Scikit-Learn使用predict方法直接给出预测结果。
print(tree.predict(train[:,:3]))

print(tree.predict_proba(test[:,:3])[:,1])
from sklearn.metrics import roc_curve #导入ROC曲线函数

fpr1, tpr1, thresholds = roc_curve(test[:,3], tree.predict_proba(test[:,:3])[:,1], pos_label=1)
plt.plot(fpr1, tpr1, linewidth=2, label = 'ROC of CART', color = 'green') #作出ROC曲线
plt.xlabel('False Positive Rate') #坐标轴标签
plt.ylabel('True Positive Rate') #坐标轴标签
plt.ylim(0,1.05) #边界范围
plt.xlim(0,1.05) #边界范围
plt.legend(loc=4) #图例
plt.show() #显示作图结果

  利用训练样本构建决策树的混淆矩阵图:
在这里插入图片描述
  2.模型评价
对于训练样本,LM神经网络和CART决策树的分类准确率相差不大,分别为94%和93%,为了进一步评估模型分类的性能,故利用测试样本对两个模型进行评价,利用ROC曲线评价方法进行评估,一个优秀的分类器对应的ROC曲线应该是尽量靠近左上角,分别画出LM神经网络和CART决策树在测试样本下的ROC曲线,对比发现LM神经网络的ROC曲线比CART决策树的ROC曲线更加靠近单位方形的左上角,LM神经网络的ROC曲线下面积更大,说明LM神经网络模型的分类性能更好.
在这里插入图片描述
  3.进行窃漏电诊断
  在线监测用户用电负荷数据,经过数据预处理,得到模型输入数据,利用构建好的识别模型计算用户窃漏电诊断结果,实现窃漏电用户的实时诊断,并与实际稽查结果对比,见表可以发现正确识别出窃漏电10个,错误的判断为窃漏电用户1个,诊断结果没有发现窃漏电用户4个,整体看准确率比较高,下一步针对漏判的用户,研究其窃漏电期间的用电行为,优化模型特征,提高识别准确率.
在这里插入图片描述

简析新能源电动汽车充电桩的设计与优化 随着电动汽车的普及,电动汽车充电桩的设计与优化成了一个重要的研究课题。本论文旨在分析电动汽车充电桩的设计要素,并提出相应的优化方案。首先,对电动汽车充电技术进行了概述,并介绍了相关的标准和规范。提出了充电桩的可持续发展策略,包括使用可再生能源,能源存储技术应用和废弃电池回收与再利用等。通过案例分析和评估,验证了提出的设计与优化方案的可行性。本研究的结果对于促进电动汽车充电桩的设计与优化具有一定的指导意义。 阅读详情

相关推荐

【数据挖掘实战】——电力窃漏电用户自动识别(LM神经网络和决策树)

传统的防窃漏电方法主要通过定期巡检、定期校验电表、用户举报窃电等方法来发现窃电或计量装置故障。但这种方法对人的依赖性太强,抓窃查漏的目标不明确。目前,很多供电局主要通过营销稽查人员、用电检查人员和计量工作人员利用计量异常报警功能和电能量数据查询功能开展用户用电情况的在线监控工作,通过采集电量异常、负荷异常、终端报警、主站报警、线损异常等信息,建立数据分析模型,来实时监测窃漏电情况和发现计量装置的故障。根据报警事件发生前后客户计量点有关的电流、电压、负荷数据情况等,构建基于指标加权的用电异常分析模型。

lingxw的博客 1万+

《Python数据分析与数据挖掘实战》第六章:电力窃漏电用户自动识别完整流程及pytorch代码实现

《Python数据分析与数据挖掘实战》第六章:电力窃漏电用户自动识别完整流程及pytorch代码实现

weixin_44834394的博客 1919

【信息科学与工程学】【物理/化学科学和工程技术】知识体系073——电学基础04

​。

weixin_49199313的博客 2608

python数据分析与挖掘实战(7)电力窃漏电用户自动识别

数据预处理值缺失值处理 #!/usr/bin/env python # -*- coding:utf-8 -*- import pandas as pd from scipy.interpolate import lagrange inputfile='E:\\pycharm\\python数据分析与挖掘实战数据及源码\\chapter6\\demo\\data\\missing_data.xl...

Three123v的博客 764

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02

每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。

weixin_49199313的博客 674

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

传统的防漏电窃电方法主要通过定期巡检、定期校验电表、用户举报窃电等方法来发现窃电或者计量装置故障,对人的依赖性比较强,抓窃查漏的目标不明确。 供电局相关人员利用相关数据构建的基于指标加权的用电异常分析模型各输入指标需要专家的知识和经验,具有比较大的主观性,存在比较明显的缺陷。 需求更加方便和客观的电力窃漏电用户自动识别模型。

予早随笔 5571

《Python数据分析与挖掘实战》第六章学习—CART决策树+神经网络(窃漏电用户识别)

本文是对《Python数据分析与挖掘实战》实战篇第一部分——电力窃漏电用户自动识别中上机实验的一个记录。 实验分为两个部分: 利用拉格朗日插值法进行缺失值的补充 构建分类模型对窃漏电用户进行识别 第一部分:利用拉格朗日插值法进行缺失值的补充 **(1)拉格朗日插值法公式理解** 本书中,缺失值处理所用的方法是拉格朗日插值法。因此,在应用之前,本人先去查阅了拉格朗日插值法的相关资料,对

sinat_33519513的博客 8686

大数据分析案例:电力窃漏电用户自动识别.rar

力窃漏电用户自动识别 1.背景与数据分析目的 a.通过电力系统采集到的数据,提取出窃漏电用户的关键特征, b.构建窃漏电用户的识别模型:以实现自动检查、判断用户是否是存在窃漏电行为。 2.数据预处理 通过对拿到的数据进行数据质量分析,检查原始数据中存在的脏数据,通过查看原始数据中抽取的数据,发现存在数据缺失的现象,使用朗格拉日插值法:选取缺失值前5个数据作为前参考组,缺失值后5个数据作为后参考组,处理缺失值程序. 3.挖掘建模 从专家样本中随机选取20%作为测试样本,剩下的80%作为训练样本,初步选择常用的分类预测模型:CART决策树和LM神经网络。 3.1 构建CART决策树模型 3.2 LM神经网络模型 3.3 CART和LM模型对比 结论:LM神经网络的ROC曲线比CART决策树更加靠近单位方形的左上角且LM神经网络的ROC曲线下的面积更大,则LM神经网络预测模型的分类性能更好,更适合应用于窃漏电用户自动识别当中。 将处理后的数据作为模型输入数据,利用构建好的模型(位于工程的tmp中)计算用户的窃漏电结果,并与实际调查结果做对比,对模型进行优化,进一步提高识别准确率。 ——

数据分析系列之目录

数据挖掘系列前言和目录 1.前言 为什么我要开这个系列? 我明白,未来会是数据的天下,就如区块链而言,它是目前无法单独去生存下去,而是与其他技术绑定,才能更好地发挥未来的作用. 什么是数据分析? 就拿区块链的挖矿类比来说,数据就是矿,如何从大量矿脉中挖掘有价值的矿石,并把这些矿石加工成工具,这就是数据分析. 如何与区块链结合? 在我的设计体系中,目前可以存在的运行模式就是数据爬虫从网络中获取信息,...

Rcvisual的博客 873

从RadixTree到哈希表:深入对比SGLang和vLLM的Prefix Cache实现差异

本文深入对比了SGLang与vLLM在大语言模型推理服务中实现Prefix Cache(前缀缓存)的两种核心方案。SGLang采用基于Radix Tree的RadixAttention,支持任意长度前缀的精确匹配与灵活复用;vLLM则采用基于哈希表的方案,深度集成于PagedAttention,实现简洁但要求块级精确对齐。文章剖析了二者在设计哲学、内存管理、适用场景及集群级优化(如Prefix Cache Aware Routing)上的关键差异,为高性能LLM服务的技术选型提供决策依据。

blockchain9miner的博客 955

深入浅出:UE4类型系统完整构建过程详解

UE4的类型系统是一个复杂但设计精巧的架构,它通过静态代码生成和运行时构建的完美配合,实现了强大的反射功能。理解这个过程不仅有助于解决开发中的问题,也能让你更好地利用UE4的各种高级特性。就像建造一栋大楼需要经过设计、备料、框架、装修、验收等多个阶段,UE4类型系统的构建也是一个多阶段、精细化的过程。每个阶段都有其特定的职责,共同协作完成从源代码到运行时对象的转换。

m0_45371381的博客 911

文章集合--作者篇--下【转】

强哥: 50行代码实现人脸检测 基于face_recognition实现人脸识别 Python 2与Python 3的区别 Python也能聊微信 射命丸咲: Python · 神经网络(零)· 简介 第一个机器学习样例 Python:numba 的基本应用 Kenny: 挑战年薪百万-自然语言处理入门一 四毛: 免登录新浪微博爬虫系列之第一篇 ...

didenglei8217的博客 299

从零开始:使用Python实现基于深度强化学习的柔性车间调度系统

本文详细介绍了如何使用Python和深度强化学习(DRL)构建柔性车间调度系统,特别关注图神经网络(GNN)与近端策略优化(PPO)算法的结合应用。通过实战指南,读者将学习从环境准备、异构图构建到PPO算法实现的全流程,最终实现生产效率的显著提升。

weixin_29074295的博客 244

《Python数据分析与挖掘实战》一1.5 常用的数据挖掘建模工具

本节书摘来自华章出版社《Python数据分析与挖掘实战》一书中的第1章,第1.5节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区“华章计算机”公众号查看 1.5 常用的数据挖掘建模工具 数据挖掘是一个反复探索的过程,只有将数据挖掘工具提供的技术和实施经验与企业的业务逻辑和需求紧密结合,并在实施过程中不断地磨合,才能取得好的效果。下面...

weixin_34404393的博客 297

RTKlib操作手册--使用样例数据演示

本文将使用样例数据演示如何使用RTKLIB进行rtk差分定位。

samur2的博客 7776

Facebook登录协议逆向实战:从加密参数到完整流程解析(附Python代码)

本文深入解析Facebook登录协议的逆向工程,重点拆解`lgndim`和`encpass`等加密参数的生成逻辑,并提供完整的Python实现代码。通过Base64解码和RSA加密技术,帮助开发者理解并实现Facebook登录流程,同时涵盖工程优化与安全实践。

weixin_30687051的博客 477

ApacheCN 人工智能知识树 v1.0

Special Sponsors 贡献者:飞龙 版本:v1.0 最近总是有人问我,把 ApacheCN 这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。但我觉得这是非常麻烦的,因为每本书的内容大部分是重复的,有些不重复的内容你也不好找。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。大家可以按照知识点依次学习,如果理解了一个知识点,...

龙哥盟 5万+

YOLOv8改进 | 融合篇,YOLOv8主干改进融合网络之MobileNetV3+CA注意机制,助力涨点

MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法,通过新颖的架构改进进一步提升了性能。YOLOv8中的主干网络替换成MobileNetV3+引入CA注意机制

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1881

ApacheCN 人工智能知识树

最近总是有人问我,把 ApacheCN 这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。但我觉得这是非常麻烦的,因为每本书的内容大部分是重复的,有些不重复的内容你也不好找。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。大家可以按照知识点依次学习,如果理解了一个知识点,就没必要看其余文章,直接跳到下一个就行了。 统计机器学习 基础知识 ...

喵叫兽的博客 566

深度学习论文: AnomalyDINO: Boosting Patch-based Few-shot Anomaly Detection with DINOv2

通过将DINOv2模型适应到一次性和少量异常检测中,并专注于工业应用少量异常检测。实验表明,这种方法不仅与现有技术相匹敌,甚至可以在许多设置中超越它们。我们提出的仅视觉方法AnomalyDINO基于补丁相似性,能够实现图像级别的异常预测和像素级别的异常分割。该方法在方法论上很简单,无需训练,因此不需要任何额外的数据进行微调或元学习。

mingo_敏 1904

FC7300 SPI MCAL配置引导

Example - QMI8A01z外设:Example - QMI8A01z外设:

舊梦的博客 257

第六章:数据挖掘项目完整应用案例演示

6.1项目背景和业务分析需求的提出 ...... 6.2数据分析师参与需求讨论 针对需求收集相关的背景数据和指标,熟悉业务相关逻辑 从数据分析的专业角度评价初步的业务分析需求是否合理,是否可行 6.3制定需求分析框架和分析计划 确定项目目标变量的定义 分析思路的大致描述 分析样本的数据抽取规则 潜在分析变量(模型输入变量)的大致圈定和罗列 分析过程中的项目风险思考和...

weixin_30387339的博客 395

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

智能充电、远程运维、能耗统计,一站式解决企业充电难题

在“双碳”目标与新能源产业融合发展的时代,企业充电站不仅是基础设施,更是能源管理体系的重要组成部分。安科瑞以“安全可靠的硬件+智能互联的平台”,助力企业实现绿色出行、智慧用能与碳管理协同发展,为低碳园区建设注入数字化动力。

A188337644的博客 753

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 数据分析系列之挖掘建模
下一篇: 渐进式存储机制设想
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值