2014-11-17 84 views
1

這裏是更新的代碼。我的問題是「結果」的輸出。作爲可讀性的格式,我將在下面發佈。R神經網絡問題

library("neuralnet") 
    library("ggplot2") 
    setwd("C:/Users/Aaron/Documents/UMUC/R/Data For Assignments") 
    trainset <- read.csv("SOTS.csv") 
    head(trainset) 
    ## val data classification 
    str(trainset) 
    ## building the neural network 
    risknet <- neuralnet(Overall.Risk.Value ~ Finance + Personnel + Information.Dissemenation.C, trainset, hidden = 10, lifesign = "minimal", linear.output = FALSE, threshold = 0.1) 
    ##plot nn 
    plot(risknet, rep="best") 

    ##import scoring set 
    score_set <- read.csv("SOSS.csv") 
    ##select subsets-training and scoring match 
    score_test <- subset(score_set, select = c("Finance", "Personnel", "Information.Dissemenation.C")) 
    ##display values of score_test 

    head(score_test) 
    ##neural network compute function score_test and the neural net "risknet" 
    risknet.results <- compute(risknet, score_test) 

    ##Actual value of Overall.Risk.Value variable wanting to predict. net.result = a matrix containing the overall result of the neural network 
    results <- data.frame(Actual = score_set$Overall.Risk.Value, Prediction = risknet.results$net.result) 
    results[1:14, ] 

結果的輸出與預期不符。例如,實際數據是介於5和8之間的數字,而「預測」則顯示每個結果的.9995 ...的輸出。

再次感謝您的幫助。

+0

什麼是你所謂的「得分」集?驗證集或測試集? –

+0

評分集與訓練集的數據完全相同(在變量risknet中顯示)。唯一的區別是Overall.Risk.Value的價值 –

回答

0

這是你如何訓練和預測:

  1. 使用訓練數據來學習模型參數(在你的情況,可變risknet
  2. 使用參數來預測測試數據分數

Here是一個非常類似於你的例子,它解釋了這是如何完成的。

0

神經網絡中的默認激活函數是「logistic」。當linear.output設置爲FALSE時,它確保輸出通過激活函數映射到區間[0,1]。(R_Journal(neuralnet) - FraukeGünther)

我剛剛更新了linear.output = TRUE在你的代碼和最終結果看起來好多了。

感謝您的幫助!

+0

這是我的回答評論?如果你找到任何有幫助的答案,可以添加一個評論,並且提供/ upvote/aceept答案,而不是發佈一個新的答案! –