ランダムフォレストでの過剰適合を回避する方法は?


11
  1. 無作為の森での過剰適合を避けたいです。この点で、mtry、nodesize、maxnodesなどを使用するつもりです。これらのパラメーターの値を選択するのを手伝っていただけませんか?私はRを使用しています。

  2. また、可能であれば、ランダムフォレスト(R)に対してk分割交差検証を使用する方法を教えてください。

回答:


7

他のモデルに比べて、ランダムフォレストは過剰適合する可能性は低くなりますが、それでも回避するために明示的な努力をしたいものです。モデルパラメータの調整は、過適合を回避するための1つの要素ですが、それだけではありません。実際、特にランダムフォレストでは、トレーニング機能はモデルパラメーターよりも過剰適合につながる可能性が高いと言えます。したがって、重要なのは、モデルを評価して他のものよりも過剰適合をチェックする信頼できる方法を本当に持っていることだと思います。それが2つ目の質問です。

上記で触れたように、相互検証を実行すると、過剰適合を回避できます。CVの結果に基づいて最適なモデルを選択すると、モデルがオーバーフィットしないことにつながります。これは、out of the bagエラーのような場合には必ずしも当てはまりません。RでCVを実行する最も簡単な方法は、caretパッケージを使用することです。簡単な例を以下に示します。

> library(caret)
> 
> data(iris)
> 
> tr <- trainControl(method = "cv", number = 5)
> 
> train(Species ~ .,data=iris,method="rf",trControl= tr)
Random Forest 

150 samples
  4 predictor
  3 classes: 'setosa', 'versicolor', 'virginica' 

No pre-processing
Resampling: Cross-Validated (5 fold) 

Summary of sample sizes: 120, 120, 120, 120, 120 

Resampling results across tuning parameters:

  mtry  Accuracy  Kappa  Accuracy SD  Kappa SD  
  2     0.96      0.94   0.04346135   0.06519202
  3     0.96      0.94   0.04346135   0.06519202
  4     0.96      0.94   0.04346135   0.06519202

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was mtry = 2. 

返信、アドバイスありがとうございます。randomForestアルゴリズムを使用して重要な変数を選択する場合と比較して、機能選択にキャレットパッケージを使用する場合の違いを知りたいだけですか?
アルン

投稿する別の質問のように聞こえます。キャレットで選択した任意のアルゴリズムを使用して再帰的な機能選択などを実行する場合、その違いは非常に大きくなります。
デビッド

@David「out of the bagエラーのようなケースでは必ずしもそうではない」とはどういう意味ですか?袋詰めの見積もりは、過剰適合を回避するための良い方法ではないということですか?
Pierre

5

@ xof6は、モデルの深さが深いほどオーバーフィットする傾向があるという意味で正しいですが、あなたに役立つかもしれないいくつかのパラメーターを追加したかったのです。Rでどのパッケージを使用しているかはわかりませんが、Rについてはあまり詳しくありませんが、これらのパラメーターに対応するものを実装する必要があると思います。

木の数-この数が多いほど、森林が過剰に適合しにくくなります。これは、各決定木がトレーニングデータの一部の側面を学習しているため、いわば選択できるオプションが増えることを意味します。機能の数-この数は、個々のツリーが学習する機能の数を構成します。この数が増えると、ツリーはますます複雑になるため、テストデータにはないパターンを学習しています。適切な値を見つけるにはいくつかの実験が必要ですが、それは機械学習です。前述のように、一般的な深度も試してください。


4

これは、stackexchange /stats/111968/random-forest-how-to-handle-overfittingのリンクですが、私の一般的な経験では、モデルの深度が深けれ ば深いほど、傾向が強くなりますオーバーフィットする。


これは、単一のツリー分類子で意味があります。ただし、これらのフォーラムで、ランダムフォレストは過剰適合から保護され、ツリーは完全に成長する必要がある(つまり、分類のためにnodesize = 1)と読みました。
Seanosapien 2017年

0

常に、mtryトレインデータセットのエラーが増加するまで減少し、次にトレインとデータセットのエラーの差が減少しなくなるまでノードサイズと深度を下げます

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