我试图使用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
}
答案 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
})