实例:电力窃漏电用户自动识别-神经网络和决策树

本文通过R语言和Python实现神经网络及CART决策树模型,对电力窃漏电用户进行识别。训练和测试样本分别占80%和20%,两种模型在训练集上的准确率均达90%。ROC曲线评估显示,神经网络模型的分类性能优于CART决策树,更接近左上角,未来将优化特征以提升识别准确率。
摘要由CSDN通过智能技术生成

1、数据划分

R语言实现:

将专家样本划分为测试样本和训练样本,随机选取20%为测试样本,剩下来的作为训练样本。

data = read.csv(file="model.csv")

colnames(data) = c("time","userid","ele_ind","loss_ind","alarm_ind","class") #数据命名

head(data)

输出结果:

set.seed(1234) #设置随机种子

ind = sample(2,nrow(data),replace = TRUE,prob = c(0.8,0.2)) #定义序列ind,随机抽取1和2,1的个数占80%,2的个数占20%

traindata = data[ind==1,] #训练样本
testdata = data[ind==2,] #测试样本

write.csv(traindata,"traindata.csv",row.names = FALSE)
write.csv(testdata,"testdata.csv",row.names = FALSE) # 保存到当期工作目录下

Python实现:

import pandas as pd
from random import shuffle #导入随机函数shuffle,用来打乱数据

data = pd.read_excel("model.xls")
data = data.as_matrix() #将表格转换为矩阵
shuffle(data)

p = 0.8
train = data[:int(len(data)*p),:] #训练集
test = data[int(len(data)*p):,:] #测试集

 

2、建模-神经网络

R语言实现:

traindata =transform(traindata,class = as.factor(class)) #将class列转换成因子类型

library(nnet)
nnet.model = nnet(class~ele_ind+loss_ind+alarm_ind,traindata,size=10,decay=0.05) #设定神经网络的输入节点为ele_ind,loss_ind,alarm_ind,输出节点为class,数据为traindata,隐层节点数为10,权值的衰减参数为0.05

confusion = table(traindata$class,predict(nnet.mo
  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值