BP神经网络学习
参考此篇视频数据挖掘:理论与算法
利用R来进行模拟参考以下这两篇文章使用R学习一个简单的神经网络和使用neuralant包拟合一个神经网络
1.设置R的工作空间;读取原始数据
> setwd("C:/Users/ywb/Desktop/BP神经网络/")
> concrete<-read.csv("Concrete_Data.csv",header = T,fileEncoding = "UTF-8",sep=",")
1.1先用线性模型进行拟合,并用测试数据集进行测试
> index<-sample(1:nrow(concrete),round(0.75*nrow(concrete)))
> train<-concrete[index,]
> test<-concrete[-index,]
> lm.fit<-glm(strength~.,data=train)
> summary(lm.fit)
结果如下所示:
使用测试数据集测试如下:
> pr.lm<-predict(lm.fit,test)
> MSE.LM<-sum((pr.lm-test$strength)^2)/nrow(test)
> print(MSE.LM)
[1] 126.2464
使用均值方差MSE.LM来测试模型的拟合度。
2.将数据标准化(归一化处理)
在进行归一化处理之前,首先要确定数据是否有缺失值
> apply(concrete,2,function(x) sum(is.na(x)))
其中,”2”表示对列进行检验。如果数据没有缺失值,则每个属性下的值都为0,如下图所示: