神经网络迭代次数过大_R语言如何实现神经网络算法?

人工神经网络是一种运算模型,由大量的神经元和它们之间的相互连接构成,每个节点代表一种激励函数,每两个节点之间有通过信号连接的加权值,连接方式、权重、激励函数的不同都会影响神经网络的输出结果。神经网络模型主要用于分类和回归两类问题。R软件中的nnet包可以用来建立单隐藏层的前馈人工神经网络模型,下面将简单介绍一下该软件包的使用方法。

我们用R软件中的nnet包来建立神经网络模型。

首先,安装并加载软件包。

install.packages("nnet")

library(nnet)

0bd993c45d3f094f7361bd37757885c4.png

2  读取数据集。

gyyz_data=read.csv("gyyz.csv",head=T)#读取数据集

gyyz_data$is_rise=as.factor(gyyz_data$is_rise)#将目标变量转换成分类数据

head(gyyz_data);dim(gyyz_data)#查看数据维度

str(gyyz_data)#查看数据集中各变量的属性

c7fec69d23aa0df7f948169e087be1e5.png

d346721e4a8cafb038940576e2959a95.png

3  nnet()函数主要有以下两种形式:

第一种:

nnet(formula, data, weights, ...,

     subset, na.action, contrasts = NULL)

第二种:

nnet(x, y, weights, size, Wts, mask,

     linout = FALSE, entropy = FALSE, softmax = FALSE,

     censored = FALSE, skip = FALSE, rang = 0.7, decay = 0,

     maxit = 100, Hess = FALSE, trace = TRUE, MaxNWts = 1000,

     abstol = 1.0e-4, reltol = 1.0e-8, ...)

其中,第一种形式中的formula表示模型公式,通常为class~.或者class~x1+x2;参数data表示数据集;weights代表各类样本在模型中所占比重,默认值为1;subset用于抽取样本子集。第二种形式中的x表示自变量数据集,y表示目标变量;size表示隐藏层的节点个数,通常为自变量个数的1.2-1.5倍,size为0时表示无隐藏层;rang表示初始权重范围[-rang,rang],一般rang与x的绝对值中的最大值的乘积大约等于1;decay表示模型权重值的衰减精度;maxit是最大迭代次数。

nnet()函数的输出结果有:wts(最优权重值)、residuals(训练集的残差值)、convergence(该值为0表示模型没有达到最大迭代次数就停止了;该值为1表示模型迭代过程达到了最大迭代次数,需要增加最大迭代次数以提高模型精度)。

#建立神经网络模型

nnet_model=nnet(is_rise~.,data=gyyz_data[,-1],decay=5e-4,size=15,rang=0.7)

summary(nnet_model)#查看神经网络模型

该神经网络模型的输入层、隐藏层、输出层的节点个数分别为:8个、15个、1个,权重共有151个。结果中以i、h、o和数字编号的代号分别表示输入层、隐藏层、输出层的节点。该模型的最终迭代值为34.62。

6d815638980e8ce7c7863c9d52cef8c2.png

根据建立的神经网络模型进行预测。

nnet_pred=predict(nnet_model,gyyz_data[,-1],type="class")

gyyz_data$nnet_pred=nnet_pred#将预测结果保存到数据集

head(gyyz_data)#查看预测结果

#预测结果混淆矩阵

table(gyyz_data$is_rise,gyyz_data$nnet_pred)

332f2ad223528bbb3d5a03ba2981c807.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值