我正在使用神经网络(neuralnet)处理泰坦尼克数据集(包含PClass、性别、年龄、Sibsp、Parch、票价、登船港口)。
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个结果。关于如何处理这个问题,有什么建议吗?谢谢
回答:
查找
summary(test_df)
您可以看到Age
和Fare
列中有缺失值,因此在运行predict()
函数之前,您需要修复这两个列中的NA
。
一种方法可能是 –
- 用其均值填充
Fare
列中的NA
。 - 根据
Pclass
用其均值填充Age
列中的NA
,即
if Pclass==1 then missing_age <- 37if Pclass==2 then missing_age <- 29else missing_age <- 24
希望这对您有帮助!