ランダムフォレストのキャレットを使用した機能の選択とパラメーターの調整


12

数千の機能を持つデータがあり、再帰的な機能選択(RFE)を実行して、情報のない機能を削除したいと考えています。これはキャレットとRFEで行います。ただし、最良の回帰適合(たとえば、ランダムフォレスト)を取得する場合、パラメーターの調整(mtryRFの場合)をいつ実行する必要があるかを考え始めました。つまり、私が理解しているように、キャレットは固定mtryを使用してさまざまな機能サブセットでRFを繰り返しトレーニングします。mtry機能の選択が完了した後で最適が見つかると思いmtryますが、キャレットが使用する値は、選択された機能のサブセットに影響しますか?もちろん、低でキャレットを使用するmtry方がはるかに高速です。

誰かがこれを私に説明してくれることを願っています。


2
RFには堅牢な組み込み機能の選択があります。RFEを使用する必要がないため、mtryを調整してそれを実行できます。
Yevgeny 2012

回答:


11

調べておきたいのは、正規化されたランダムフォレストです。これは、機能の選択のために特別に設計されています。このペーパーでは、コンセプトと、通常のランダムフォレストとの違いについて説明します。

正則化ツリーによる特徴選択

Rに簡単に実装できるように、randomForestに基づいて構築されたCRANパッケージRRFもあります。私はこの方法論で自分自身でうまくいきました。

あなたの最初の質問に関して、私が与えることができる唯一のアドバイスは、あなたが多くの同一直線性を持っているなら、あなたはより小さな木のサイズを使う必要があるということです。これにより、アルゴリズムは、共線性の影響による干渉を抑えて重要性を判断できます。


1

あなたはcaretFuncs このようなものを使うことができるかもしれません:

myRFE <- caretFuncs
myRFE$summary <- twoClassSummary  (default is defaultSummary)

rctrl <- rfeControl(method='repeatedcv', repeats=5, number=10,
                   functions=myRFE)

tctrl <- trainControl(method = "cv",
                      classProbs = TRUE,
                      summaryFunction = twoClassSummary)

rfeObj = rfe(x,y,sizes=seq(1,ncol(x),2),
             rfeControl=rctrl,  
             # to be passed to train()
             method='rf',
             importance=T,  # do not forget this
             ntree=1000,
             metric = "ROC",
             tuneLength = 10,
             # mtry=c(1,3,5,50),
             # specify the exact mtry, or tuneLength
             # can auto truncate the grid to minimal sizes (with or without warning)
             # p <- ncol(x) ... if (mtry < 1 || mtry > p) warning("invalid try: reset to within valid range") try <- max(1, min(p, round(try))) 
             trControl=tctrl)

また、valSelRFパッケージを確認する場合もあります。それがregularized random forestここで言及されたものとどのように異なるかわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.