在R

时间:2017-11-12 23:35:09

标签: r loops neural-network deep-learning

我试图使用10个不同的种子输出我的神经网络的错误分类,在循环内的每次迭代后我试图输出misrate.test的值,这是错误分类。这是数据+代码片段的预览,我调用了new.train数据,我可以在运行程序后获得该值

   V1    V70    V30    V86    V22   V107    V46    V78    V94    V62    V91    
   V76
   4   7  1.000 -0.421  0.931 -0.114 -0.186  1.000  0.695 -0.363  1.000 
   -0.949 -0.606
   11  7  1.000  1.000  1.000 -0.973 -1.000  0.167 -0.121  0.265 -0.415 
   -1.000 -1.000
   15  7 -0.870 -1.000 -0.289 -1.000 -0.279 -1.000 -1.000 -1.000 -1.000 
   -0.715  0.918
   16  7  0.758 -1.000 -0.535  0.901  0.508 -0.786 -0.913 -1.000 -0.796 
   -0.293  0.913
   23  7  0.047  0.531 -0.983  0.212 -0.965  1.000  0.343 -0.427  0.993 
   -1.000 -0.857
   26  7 -0.158  0.912 -1.000 -0.173  0.469 -0.117 -1.000 -1.000 -0.977 
   -0.020  0.974


library(nnet)
diff.seed <- c(1,66,70,222,1345,766,453,2999,7654,10000)
for(i in diff.seed){
set.seed(i) #Set different seed
digit.nnet <- nnet(V1~., data=new.train, size = 5, rang=0.1, decay=5e-4, 
maxit=1000) #Train the network on new.train

y.hat <- as.numeric(predict(digit.nnet,new.test, type = "class")) #Apply on 
new.test which is same as new.train

misrate.test <- sum(y.hat != 
new.test[,1])/length(new.test[,1])#Misclassification rate 
misrate.test #Attempt to output it
}

1 个答案:

答案 0 :(得分:0)

我无法准确地重现您的问题(没有new.test),但其中一个应该有效:

library(nnet)
diff.seed <- c(1,66,70,222,1345,766,453,2999,7654,10000)
for(i in diff.seed) {
  set.seed(i) #Set different seed
  digit.nnet <- nnet(V1~., data=new.train, size = 5, rang=0.1, decay=5e-4, maxit=1000) #Train the network on new.train
  y.hat <- as.numeric(predict(digit.nnet,new.test, type = "class")) #Apply on new.test which is same as new.train

  misrate.test <- sum(y.hat != new.test[,1])/length(new.test[,1])#Misclassification rate 
  print(misrate.test) #Attempt to output it
}

misrates <- sapply(diff.seed, function(i) {
  set.seed(i) #Set different seed
  digit.nnet <- nnet(V1~., data=new.train, size = 5, rang=0.1, decay=5e-4, maxit=1000) #Train the network on new.train
  y.hat <- as.numeric(predict(digit.nnet,new.test, type = "class")) #Apply on new.test which is same as new.train

  misrate.test <- sum(y.hat != new.test[,1])/length(new.test[,1])#Misclassification rate 
  misrate.test
})