2012-02-05 9 views
3

私はNAsのデータセットを広範囲に振りかけました。因子()とNAsのRキャレット/ rfe変数の選択

さらに、列にはfactors()が必要です。

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

因子変数ではなく、NASに対してrfFuncs作品ながらこれは、lmFuncs NASとのデータのための作品ではなく、因子変数のを使用してrfe()functions=引数を思わ。

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

私はmodel.matrix()を試しましたが、それはもっと問題を引き起こすようです。

+1

「lmFuncs」はいくつかの変数を要因として失敗します。私は再現可能な例で確信することができた。ランダムフォレストが(デフォルトで)NAsのケースを受け入れないという事実は、単にそのアルゴリズム(または少なくともRバージョン)の十分に文書化された「機能」です。あなたがNAsをシームレスに扱うツリーベースのモデルを望むなら、 'treebagFuncs'はより安全な賭けかもしれません(しかし、私はそれをテストしていません)。 – joran

答えて

3

caretのようなより多くの "メタ"パッケージに行くときには、パッケージ間のこれらの点に一貫性のない動作があるため、私は何かをする前に、機械学習。

  • NAsの場合、omitまたはimpute(median、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" 

、CRANのcaretビネットは、これらの点のいくつかに非常に素晴らしく、タッチされています。 http://cran.r-project.org/web/packages/caret/index.html

関連する問題