2017-11-12 1 views
0

Ich versuche, die Fehlklassifikation meines neuronalen Netzwerks mit 10 verschiedenen Seeds auszugeben, nach jeder Iteration innerhalb der Schleife versuche ich den Wert von misrate.test auszugeben, was die Fehlklassifikation ist. Hier Vorschau der Daten + Code-Schnipsel, rief ich die Daten new.train Ich kann nicht das dieser Wert nach meinem Programm läuftAusgabe eines Wertes nach jeder Iteration in R

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 
} 
+2

können Sie [ 'cat'] (https://stat.ethz.ch/R-manual/R-devel/library/base/ html/cat.html), ['print'] (https://stat.ethz.ch/R-manual/R-devel/library/base/ html/print.html), [message'] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/message.html) oder ['warning'] (https : //stat.ethz.ch/R-manual/R-devel/library/base/html/warning.html)? Oder versuchen, alle "misrate.test" in einem Vektor zu erfassen, vielleicht mit ['lapply' oder' sapply'] (https://stat.ethz.ch/R-manual/R-devel/library/base/html /appl.html.html)? – r2evans

+0

Probieren Sie 'print (misrate.test)' innerhalb Ihrer 'for' Schleife –

+0

Ich versuche nur, die verschiedenen Werte für' misrate.test' nach jeder Iteration zu bekommen, sie in einen Vektor zu setzen würde auch funktionieren –

Antwort

0

ich Ihre Frage nicht genau wiedergeben kann (nicht über new.test), aber ein dieser sollte funktionieren:

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 
} 

oder

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 
}) 
+0

new.test ist der gleiche Datensatz wie neu.Zentrum –

+0

Für den * Effekt *, ist es vielleicht nicht wirklich wichtig, was die Testdaten sind. Haben Sie eine dieser Methoden ausprobiert? Was ist näher an Ihrem beabsichtigten Ergebnis? – r2evans

+0

so verrückt wie es klingt nur Wrapping drucken um Misrate machte es funktioniert lool Danke für die Hilfe –

Verwandte Themen