python sklearnパッケージに実装されたRandomForestClassifierを使用してバイナリ分類モデルを構築しています。以下は相互検証の結果です。
Fold 1 : Train: 164 Test: 40
Train Accuracy: 0.914634146341
Test Accuracy: 0.55
Fold 2 : Train: 163 Test: 41
Train Accuracy: 0.871165644172
Test Accuracy: 0.707317073171
Fold 3 : Train: 163 Test: 41
Train Accuracy: 0.889570552147
Test Accuracy: 0.585365853659
Fold 4 : Train: 163 Test: 41
Train Accuracy: 0.871165644172
Test Accuracy: 0.756097560976
Fold 5 : Train: 163 Test: 41
Train Accuracy: 0.883435582822
Test Accuracy: 0.512195121951
「価格」機能を使用して、順序値である「品質」を予測しています。各クロス検証には、163のトレーニング例と41のテスト例があります。
どうやら、ここで過剰適合が発生します。この問題を克服するためにsklearnが提供するパラメータを使用できますか?私はいくつかのパラメータを見つけました ここ 、例えばmin_samples_splitとmin_sample_leafですが、それらを調整する方法がよくわかりません。
前もって感謝します!
@Falcon w.r.tに同意します。データセットのサイズ。主な問題は、データセットのサイズが小さいことです。可能であれば、データセットのサイズが大きくなると予測されるランダムパターンがかき消され始めるため、できる限り多くのデータを取得することができます。
そうは言っても、次のパラメーターを見ていきます。
この作業を行うときは科学的であることに注意してください。 3つのデータセット、トレーニングセット、個別の「開発」データセットを使用してパラメーターを調整し、最適なパラメーターで最終モデルをテストするテストセットを使用します。一度に1つのパラメーターのみを変更し、結果を評価します。または、sklearn gridsearchアルゴリズムを試して、これらのパラメーターを一度に検索します。