3

NAs全体に惜しみなく散りばめられ たデータセットがあります。

さらに、である必要がある列がありますfactors()

パッケージ のrfe()関数を使用して変数を選択しています。caret

NAを使用するデータには機能するが、因子変数には機能しないというfunctions=議論があるようですが、因子変数には機能しますが、NAには機能しません。 rfe()lmFuncsrfFuncs

これに対処するための提案はありますか?

試してみmodel.matrix()ましたが、問題が増えるようです。

4

1 に答える 1

4

パッケージ間のこれらの点での一貫性のない動作のため、のようなより多くの「メタ」パッケージに行くときの余分なトリッキーは言うまでもなく、caret機械学習を行う前に、NAと因子変数を前もって処理する方が常に簡単です。

  • NAの場合は、省略または代入します(中央値、knnなど)。
  • ファクター機能については、で正しい方向に進んでいました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"

また、あなたが持っていない場合に備えて(あなたが持っているように聞こえますが)、caretCRANのビネットは非常に素晴らしく、これらの点のいくつかに触れています。http://cran.r-project.org/web/packages/caret/index.html

于 2012-02-05T06:11:23.267 に答える