回答:
他のモデルに比べて、ランダムフォレストは過剰適合する可能性は低くなりますが、それでも回避するために明示的な努力をしたいものです。モデルパラメータの調整は、過適合を回避するための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.
@ xof6は、モデルの深さが深いほどオーバーフィットする傾向があるという意味で正しいですが、あなたに役立つかもしれないいくつかのパラメーターを追加したかったのです。Rでどのパッケージを使用しているかはわかりませんが、Rについてはあまり詳しくありませんが、これらのパラメーターに対応するものを実装する必要があると思います。
木の数-この数が多いほど、森林が過剰に適合しにくくなります。これは、各決定木がトレーニングデータの一部の側面を学習しているため、いわば選択できるオプションが増えることを意味します。機能の数-この数は、個々のツリーが学習する機能の数を構成します。この数が増えると、ツリーはますます複雑になるため、テストデータにはないパターンを学習しています。適切な値を見つけるにはいくつかの実験が必要ですが、それは機械学習です。前述のように、一般的な深度も試してください。
これは、stackexchange /stats/111968/random-forest-how-to-handle-overfittingのリンクですが、私の一般的な経験では、モデルの深度が深けれ ば深いほど、傾向が強くなりますオーバーフィットする。