gpt4 book ai didi

r - 使用插入符号估算缺失值

转载 作者:行者123 更新时间:2023-12-04 15:23:45 26 4
gpt4 key购买 nike

我正在参加 Kaggle Titanic 比赛,我有一个关于估算缺失值的问题。我正在尝试使用 Caret 包,我的训练集由因子和数字组成。

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

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

但是在使用过程中 dummyVars为了转换因子,所有的 NA 都是由一些未知算法和缺失的 age 预测的。即使我指定了 na.action = na.pass,列都变成了 1 .我想在不接触 NA 的情况下将我的因子转换为虚拟变量,以便我可以使用然后使用 preProcess函数来估算它们。我怎样才能做到这一点?

谢谢你。

在这里输入:
structure(list(survived = structure(c(1L, 2L, 2L, 2L, 1L, 1L, 
1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("0",
"1"), class = "factor"), pclass = structure(c(3L, 1L, 3L, 1L,
3L, 3L, 1L, 3L, 3L, 2L, 3L, 1L, 3L, 3L, 3L, 2L, 3L, 2L, 3L, 3L
), .Label = c("1", "2", "3"), class = "factor"), sex = structure(c(2L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L,
2L, 1L, 1L), .Label = c("female", "male"), class = "factor"),
age = c(22, 38, 26, 35, 35, NA, 54, 2, 27, 14, 4, 58, 20,
39, 14, 55, 2, NA, 31, NA), sibsp = c(1, 1, 0, 1, 0, 0, 0,
3, 0, 1, 1, 0, 0, 1, 0, 0, 4, 0, 1, 0), parch = c(0, 0, 0,
0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 5, 0, 0, 1, 0, 0, 0), fare = c(7.25,
71.2833, 7.925, 53.1, 8.05, 8.4583, 51.8625, 21.075, 11.1333,
30.0708, 16.7, 26.55, 8.05, 31.275, 7.8542, 16, 29.125, 13,
18, 7.225), embarked = structure(c(4L, 2L, 4L, 4L, 4L, 3L,
4L, 4L, 4L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 2L), .Label = c("",
"C", "Q", "S"), class = "factor")), .Names = c("survived",
"pclass", "sex", "age", "sibsp", "parch", "fare", "embarked"), row.names = c(NA,
20L), class = "data.frame")

最佳答案

第一部分是一个错误; NA 值不应该是 1(显然)。同时,您可以使用 model.matrix生成虚拟变量,但您可能必须一次为所有数据执行此操作。另外,如果您使用的是 train ,可以使用公式法。总的来说,这是一个更好的方法。

我会在接下来的几周内解决这个问题。我即将发布一个版本的插入符号,这个版本加上 UserR 会耽误我一点时间。

编辑:下周将发布一个新版本来修复该错误

最大限度

关于r - 使用插入符号估算缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com