用Caret来估算缺失值

时间:2013-06-20 11:31:42

标签: r r-caret

我正在参加Kaggle Titanic比赛,我有一个关于输入缺失值的问题。我正在尝试使用Caret包,我的训练集包括因素和数字。

我想使用Caret中的preProcess函数来估算缺失值,但在使用preProcess之前,我需要使用dummyVars函数将所有因子转换为虚拟变量。

dummies  = dummyVars(survived ~ . -1, data = train, na.action = na.pass)
xtrain = predict(dummies, train)

但是,在使用dummyVars转换因子的过程中,所有的NA都是通过某种未知算法预测的,即使我已指定{{1},所有缺失的age列都会变为1 }。我希望将我的因子转换为虚拟变量而不触及NA,这样我就可以使用na.action = na.pass函数来估算它们。我怎么能这样做?

谢谢。

在这里输入:

preProcess

1 个答案:

答案 0 :(得分:4)

这第一部分是一个bug; NA值不应为1(显然)。在此期间,您可以使用model.matrix生成虚拟变量,但您可能必须立即对所有数据执行此操作。此外,如果您使用train,则可以使用公式方法。总的来说,这是一种更好的方法。

我会在接下来的几周内解决这个问题。我即将发布一个插入版本的插件,加上UseR,会让我有点迟钝。

编辑:将在下周发布新版本以修复错误

最高