2017-08-05 88 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