2017-08-05 86 views
0

我泰坦尼克號數據集應用neuralnet(含PClass,性別,年齡,Sibsp,烘乾,車費,踏上)如何應對NA神經網絡預測結果中的R

library(caret) 
model_nnet <- train(as.factor(Survived) ~., 
       method="nnet", 
       train_df, 
       linout=FALSE, 
       trace = FALSE, 
       preProcess = c("center", "scale")) 

nnet_predict <- predict(model_nnet, test_df) 

雖然我預計nnet_predict與測試數據框(418條記錄)長度相同,它實際上包含NA,並且只有331個結果。有關如何處理它的任何建議?謝謝

回答

1

查找

summary(test_df) 

你可以看到,有在Age & Fare列缺失值,以便在運行predict()功能之前,你需要修復這兩列NA

一種選擇可能是 -

  • 填充NAFare柱與它的平均值。
  • 與之Age欄中填入NA的平均值WRT Pclass

if Pclass==1 then missing_age <- 37 
if Pclass==2 then missing_age <- 29 
else missing_age <- 24 

希望這有助於!

+0

謝謝!非常有幫助。但是有一個問題沒有解決:是否總是需要分別在訓練和測試中進行虛擬變量的創建和創建,還是有更好的方法? – santoku

+1

通常您應該首先處理您的數據以查找缺失值/異常值等,然後將其分解爲火車/測試數據。如果數據已經分割,然後合併處理,然後在運行模型之前重新分割。 – Prem