龙空技术网

R 语言机器学习——BP神经网络(快速上手)

77卡卡罗特 137

前言:

此刻兄弟们对“bp网络的基本过程”大概比较关切,小伙伴们都需要剖析一些“bp网络的基本过程”的相关内容。那么小编也在网摘上搜集了一些对于“bp网络的基本过程””的相关资讯,希望各位老铁们能喜欢,兄弟们一起来了解一下吧!

BP神经网络(BPNN)的全称是:误差反向传播神经网络(Error back propagation training neural network)。它具有任意复杂的模式分类能力和优良的多维函数的映射能力。

BP神经网络的应用

BP神经网络是一种前馈型神经网络,理论上它可以拟合任意的非线性函数。所以适用于很多复杂的应用场景。比如:

分类:图像识别、文本分类、语言识别等回归:市场价格预测等

标准的三层神经网络结构

安装和导入nnet包安装:我们可以在Rstudio里面直接进行nnet 的安装

第一步:点击第一栏上的Tools,然后在弹出的选项中点击Install Packages

1

第二步:在Packages那一栏内输入包的名字:nnet(注意大小写),在弹出的选项中选中nnet,然后点击下面的Install就好了

2

第三步:导入nnet包

library(nnet)
设置运行路径和读取输入数据设置运行路径
###Set working directory for the training datasetwd("C:/Users/dell/Desktop/BPnn/bp8")getwd()
读取输入数据我们以一个分类任务为例,其中有11个因子:x1~x10,和label:y
###Read the input filedata <- 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() 函数是用于随机采样的函数,用法如下:

函数模型: sample(x, size, replace = FALSE, prob = NULL)

x :参数为一个向量,其中包含一个以上的元素;也可以为一个整数,如果为整数(N),采样范围为 1:N,包括N本身

size:即采样次数

replace :表示是否重复采样,默认为 FALSE,如果为 TRUE,则表示为放回采样

prob: 参数可以设置 x 中每个元素被 sample 的概率

#设置随机种子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并训练
##Train the bpnn based on output from inputSYbp=nnet(y~x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11,            data=data[ind==1,],            size =10,            rang=0.5,            decay=12e-2,            maxit=2000) SYbpprint(SYbp) plotnet(SYbp) #输出网络结构图garson(SYbp) # 输出因子重要性图

因子重要性图

预测在训练完了模型之后使用predict函数进行预测来得到分为各类的概率

## 预测net.tr_results <- predict(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(results,"all_pro.csv")

这就是一个简单的BP神经网络的R语言实现过程,从代码中可以看出,使用R编程相比于其他语言要简单很多,上手也更快。

标签: #bp网络的基本过程