BP神经网络(BPNN)的正式名称是误差反向传播训练神经网络。具有任意复杂的模式分类能力和优秀的多维函数映射能力。
BP神经网络的应用
BP 神经网络是前馈神经网络,理论上可以拟合任何非线性函数。因此,它适用于许多复杂的应用场景。例如:
分类:图像识别、文本分类、语言识别等回归:市场价格预测等标准三层神经网络结构
安装和导入nnet包
安装:您可以将nnet 直接安装到Rstudio 中。 步骤一:点击第一栏的“工具”,然后在弹出的选项中点击“安装包”。
1
步骤2:在Package栏中输入包的名称:nnet(注意大小写)。在弹出的选项中选择nnet,点击下面的Install。
2
第三步:导入nnet包
Library(nnet)
设置运行路径和读取输入数据
设置执行路径###设置训练数据的工作目录使用setwd(‘C:/Users/dell/Desktop/BPnn/bp8’)getwd() 读取输入数据。分类任务示例:有11个元素:x1~x10,标签:y###读取输入文件数据- read.csv(‘BP_8_TT2.csv’)data# 数据命名data@names – c (‘x1′,’ x2′, ‘x3′,’x4′,’x5′,’x6′,’x7′,’x8′,’x9′,’x10′,’x11′,’y’)data $y – as.factor (data $ y)# 查看数据head(data)str(data)data
训练数据处理和构建模型
要分割训练和测试数据集,请使用sample函数。 Sample()函数是用于随机采样的函数。函数模型: 个样本(x,大小,替换=FALSE,概率=NULL)
x: 参数是包含多个元素的向量。对于整数(N),采样范围为1:N,包括N本身。
大小:样本数量
Replace:表示是否重复采样。默认值为FALSE。如果为TRUE,则表示替换采样。
prob: 参数允许您设置对x 的每个元素进行采样的概率。
#设置随机种子set.seed(1234) #将数据按照比例随机分为训练集和测试集7:3 ind-sample(2,nrow(data),replace=TRUE,prob=c(0.7 ,0.3)) traindata – data[ind==1,]testdata-data[ind==2,] 构建并训练BPNN ##inputSYbp=nnet(y~x1+x2+x3+x4 根据+x5+x6+ x7+x8 的输出训练bpnn +x9+x10+x11, data=data[ind==1,], size=10, rang=0.5, Decay=12e-2, maxit=2000) SYbpprint(SYbp) Lotnet(SYbp) ) #输出网络结构图garson(SYbp) #输出因子重要性图 因子重要性图
预测
训练完模型后,使用predict函数进行预测,得到被分类为不同类型的概率。 ## 预测net.tr_results – 检测(SYbp,data[ind==1,]) ls(net.tr_results)print (net.tr_results)data2=data.frame(traindata$LSI,net.tr_results) data2colnames( data2) -c(‘y’,’pro’) 最后可以使用write.csv函数输出获得的概率。 write.csv(结果, ‘all_pro.csv’)
这就是一个简单的BP神经网络的R语言实现过程。从代码中可以看出,用R编程比其他语言简单得多,并且可以快速上手。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/80648.html