0
您好我想在R中使用神經網絡函數,所以我可以使用其餘的變量預測整數結果(含義)。 這裏是我使用的代碼:神經網絡在R
library("neuralnet")
我打算把2/3從神經網絡學習的數據,其餘 測試
ind<-sample(1:nrow(Data),6463,replace=FALSE)
Train<-Data[ind,]
Test<-Data[-ind,]
m <- model.matrix(
~meaning +
firstLevelAFFIRM + firstLevelDAT.PRSN + firstLevelMODE +
firstLevelO.DEF + firstLevelO.INDIV + firstLevelS.AGE.INDIV +
secondLevelV.BIN + secondLevelWord1 + secondLevelWord2 +
secondLevelWord3 + secondLevelWord4 + thirdLevelP.TYPE,
data = Train[,-1]) #(the first column is ID , i am not going to use it)
PredictorVariables <- paste("m[," , 3:ncol(m),"]" ,sep="")
Formula <- formula(paste("meaning ~ ", paste(PredictorVariables, collapse=" + ")))
net <- neuralnet(Formula,data=m, hidden=3, threshold=0.05)
m.test < -model.matrix(
~meaning +
firstLevelAFFIRM + firstLevelDAT.PRSN + firstLevelMODE +
firstLevelO.DEF + firstLevelO.INDIV + firstLevelS.AGE.INDIV +
secondLevelV.BIN + secondLevelWord1 + secondLevelWord2 +
secondLevelWord3 + secondLevelWord4 + thirdLevelP.TYPE,
data = Test[,-1])
net.results <- compute(net, m.test[,-c(1,2)]) #(first column is ID and the second one is the outcome that i am trying to predict)
output<-cbind(round(net.results$net.result),Test$meaning)
mean(round(net.results$net.result)!=Test$meaning)
,我得到了誤判大概是0.01這很好,但我的問題是爲什麼我得到的結果(net.results $ net.result)不是一個整數?
沒有一點用也沒有,現在我得到不同的答案仍然不是整數和所有的人都小於1(0.99 ...) –
我覺得您的公式產生的概率。我知道在nnet包(也可能是神經網絡)中,使用'predict'函數計算結果更容易。在此函數中,您可以將預測結果設置爲類而不是概率。 此外你的目標變量應該是二進制的。我不知道它是否是多項式的,但如果是這種情況,應該使用'class.ind()'。有關該問題的更多信息,請查看以下主題:http://stackoverflow.com/questions/20813039/multinomial-classification-using-neuralnet-package – PvGelder