約45,000のサンプルで構成される学習データがあり、それぞれ21の機能があります。3つのクラス(-1、0、1)のラベルが付けられたこのデータでランダムフォレスト分類器をトレーニングしようとしています。クラスのサイズはほぼ同じです。
私のランダムフォレスト分類子モデルはgini
、その分割品質基準として使用しています。木の数は10であり、木の深さを制限していません。
ほとんどの機能は無視できるほどの重要性を示しています。平均は約5%、それらの3分の1は重要度0、それらの3分の1は平均より上に重要です。
ただし、おそらく最も印象的な事実は、oob(out-of-bag)スコア(1%未満)です。それはモデルが失敗したと私に思わせました、そして実際に、サイズ〜40kの新しい独立したセットでモデルをテストしたところ、63%(これまでのところ良い音)のスコアを得ましたが、混同行列をより詳しく調べると、モデルはクラス0でのみ成功し、1と-1の間で決定する場合、約50%のケースで失敗します。
添付されたPythonの出力:
array([[ 7732, 185, 6259],
[ 390, 11506, 256],
[ 7442, 161, 6378]])
これは当然のことですが、0クラスには予測をはるかに容易にする特別なプロパティがあるためです。しかし、私が見つけたOobスコアがすでにモデルが良くない兆候であるというのは本当ですか?ランダムフォレストのOobスコアはいくつですか?モデルが「良好」であるか、oobスコアのみを使用するか、またはモデルの他の結果と組み合わせて使用するかを決定するのに役立つ経験則はありますか?
編集:不正なデータ(データの約3分の1)を削除した後、ラベルは0の場合は2%程度、-1 / + 1の場合は49%でした。oobスコアは0.011で、テストデータのスコアは0.49であり、混同行列はクラス1(予測の約3/4)にほとんど偏っていません。
scikit
s「はoob_score
、合意の尺度でスコア、です。しかし、文書化されていませんでした。