我有一个数据集,NAs
到处都是慷慨的。
此外,它还有需要的列factors()
。
我正在使用包中的rfe()
函数caret
来选择变量。
似乎使用的functions=
论点适用于具有 NAs 但不适用于因子变量的数据,而适用于因子变量但不适用于 NAs 的数据。 rfe()
lmFuncs
rfFuncs
有什么建议可以解决这个问题吗?
我试过model.matrix()
了,但似乎只会导致更多问题。
由于包之间这些点的行为不一致,更不用说在使用更多“元”包时的额外技巧了caret
,我总是发现在进行任何机器学习之前预先处理 NA 和因子变量更容易。
model.matrix()
. 它将让您为因子的不同级别生成一系列“虚拟”特征。典型的用法是这样的:> dat = data.frame(x=factor(rep(1:3, each=5)))
> dat$x
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Levels: 1 2 3
> model.matrix(~ x - 1, data=dat)
x1 x2 x3
1 1 0 0
2 1 0 0
3 1 0 0
4 1 0 0
5 1 0 0
6 0 1 0
7 0 1 0
8 0 1 0
9 0 1 0
10 0 1 0
11 0 0 1
12 0 0 1
13 0 0 1
14 0 0 1
15 0 0 1
attr(,"assign")
[1] 1 1 1
attr(,"contrasts")
attr(,"contrasts")$x
[1] "contr.treatment"
此外,以防万一您没有(尽管听起来您有),caret
CRAN 上的小插曲非常好,并且触及了其中一些要点。http://cran.r-project.org/web/packages/caret/index.html