实验所用数据上传在我的资源了
一、实验目的
了解数据挖掘的过程。
掌握神经网络构建分类模型。
二、实验内容
实验数据包含所有窃漏电用户及正常用户的窃漏电评价指标数据(电量、线损及告警)和该用户在当天是否窃漏电的标签。选取其中291个样本数据,得到专家样本,数据见“model.csv”。使用神经网络实现分类预测模型,并使用混淆矩阵对模型进行评价。
三、实验方法与步骤
1、 把已经过预处理的专家样本数据“model.csv”读入工作空间。
2、 把工作空间的建模数据随机分成两部分,一部分用于训练,另一部分用于测试。
3、 使用nnet包里的nnet()函数以及训练数据构建神经网络模型,使用predict函数和构建的神经网络模型分别对训练数据和测试数据进行分类。
4、 使用混淆矩阵并计算准确率,对模型进行评价。
代码实现(将完整代码粘贴到以下区域,关键代码应使用注释说明):
> data_FB=read.csv("E:/TZZY/zwy/chapter1/窃漏电用户分布分析.csv",header = TRUE)
> View(data_FB)
> Type = table(data_FB[,3])
> Type
大工业 非工业 居民生活 农业生产 普通工业 商业
23 5 6 3 9 7
> pie(Type)
> Unusual<-read.csv("E:/TZZY/zwy/chapter1/窃电用电量数据.csv",header = TRUE)
> View(Unusual)
> plot(Unusual[,2],type = "l",col="blue")
> Regular<-read.csv("E:/TZZY/zwy/chapter1/正常用电量数据.csv",header = TRUE)
> View(Regular)
> plot(Regular[,2],type = "l",col="blue")
> plot(Regular[,2],ylim = c(0,8000),type = "l",col = "blue")#无法显示
> lines(Unusual[,2],col="red",type="l")
> lagrange <- function(x, xi, yi) {
+ n <- length(xi)
+ lage <- 0
+ for (i in 1:n) {
+ li <- 1
+ for (j in 1:n) {
+ if (i != j) {
+ li <- li * (x - xi[j]) / (xi[i] - xi[j])
+ }
+ }
+ lage <- li * yi[i] + lage
+ }
+ return(lage)
+ }
> missing_data=read.csv("E:/TZZY/zwy/chapter1/missing_data.csv",header=F)
> View(missing_data)
> missdata <- missing_data
> missdata
V1 V2 V3
1 235.8333 350.8333 478.3231
2 236.2708 351.2708 515.4564
3 238.0521 353.0521 517.0909
4 235.9063 350.9063 514.8900
5 236.7604 351.7604 NA
6 NA 352.4167 486.0912
7 237.4167 353.6563 516.2330
8 238.6563 NA NA
9 237.6042 352.6042 435.3508
10 238.0313 353.0313 487.6750
11 235.0729 350.0729 NA
12 235.5313 350.5313 660.2347
13 NA 349.4688 621.2346
14 234.4688 NA 611.3408
15 235.5000 350.5000 643.0863
16 235.6354 350.6354 642.3482
17 234.5521 349.5521 NA
18 236.0000 NA 602.9347
19 235.2396 350.2396 589.3457
20 235.4896 350.48