R中nnet函数的详细输出

R中nnet函数的详细输出,r,optimization,neural-network,R,Optimization,Neural Network,我正在使用R中的nnet包中的nnet函数来开发前馈多层神经网络。我感兴趣的是在每次训练迭代后获得与输出相关联的预测误差的更详细输出。将跟踪参数设置为TRUE(默认值)将在每组10次训练迭代后给出预测错误。但是,我希望在每次迭代之后得到预测误差,而不是在每组10次之后 使用帮助文件中示例代码的修改部分显示初始预测误差、10、20等迭代后的预测误差以及达到最大迭代次数后的最终预测误差: data(iris) ir <- rbind(iris3[,,1],iris3[,,2],iri

我正在使用R中的
nnet
包中的
nnet
函数来开发前馈多层神经网络。我感兴趣的是在每次训练迭代后获得与输出相关联的预测误差的更详细输出。将跟踪参数设置为TRUE(默认值)将在每组10次训练迭代后给出预测错误。但是,我希望在每次迭代之后得到预测误差,而不是在每组10次之后

使用帮助文件中示例代码的修改部分显示初始预测误差、10、20等迭代后的预测误差以及达到最大迭代次数后的最终预测误差:

data(iris)     
ir <- rbind(iris3[,,1],iris3[,,2],iris3[,,3])
targets <- class.ind( c(rep("s", 50), rep("c", 50), rep("v", 50)) )
samp <- c(sample(1:50,25), sample(51:100,25), sample(101:150,25))
ir1 <- nnet(ir[samp,], targets[samp,], size = 2, rang = 0.1,
                 decay = 5e-4, maxit = 50)
使用变通方法,我可以在每次培训迭代后得到错误:

errors<-NULL
for(i in 1:50){
  set.seed(50)
  mod<-nnet(ir[samp,], targets[samp,], size = 2, rang = 0.1,
           decay = 5e-4, maxit = i)
  errors<-rbind(errors,c(i,mod$value))         
  }

error我删除了我的答案,但修改nnet的源代码以满足您的需要并不困难。抓住源头。然后在
nnet.R
中查看
tmp
并将其附加到类似结构的
数据.frame
。不要返回
net
而是将其更改为新的data.frame似乎很容易,但我没有太多修改源代码的经验。我在
nnet.default
中找到了
tmp
对象,但我不知道如何进行更改,然后重新安装包。此外,我不知道如何修改
tmp
以附加到
data.frame
。感谢您的帮助。。。
errors<-NULL
for(i in 1:50){
  set.seed(50)
  mod<-nnet(ir[samp,], targets[samp,], size = 2, rang = 0.1,
           decay = 5e-4, maxit = i)
  errors<-rbind(errors,c(i,mod$value))         
  }