4

ランダムフォレスト分類子は初めてです。これを使用して、2つのクラスを持つデータセットを分類しています。-特徴の数は512です。-データの比率は1:4です。つまり、データの75%は最初のクラスからのものであり、25%は2番目のクラスからのものです。-私は500本の木を使用しています。

分類器は、21.52%のアウトオブバッグエラーを生成します。最初のクラス(トレーニングデータの75%で表される)のクラスごとのエラーは0.0059です。2番目のクラスの分類エラーは非常に高いですが:0.965。

私はこの振る舞いの説明を探しています、そしてあなたが2番目のクラスの精度を改善するための提案があれば。

どうぞよろしくお願いいたします。

ありがとう

Rを使用していて、上記のテストでノードサイズ1000を使用したことを忘れてしまいました。

ここでは、10本のツリーとnodesize = 1(アイデアを与えるため)のみでトレーニングを繰り返しました。以下は、Rの関数呼び出しと混同行列です。

  • randomForest(formula = Label〜。、data = chData30PixG12、ntree = 10、importance = TRUE、nodesize = 1、keep.forest = FALSE、do.trace = 50)
  • ランダムフォレストの種類:分類

  • 樹木の数:10

  • 各分割で試行された変数の数:22

  • エラー率のOOB推定:24.46%

  • 混同行列:

  • 無関係、関連、class.error

  • 無関係37954、4510、0.1062076
  • 関連する8775、3068、0.7409440
4

6 に答える 6

10

私は@usrに同意します。一般的に、ランダムフォレストが各観測値を(ほぼ)多数派クラスとして単純に分類している場合、これは、機能が2つのクラスを区別するための多くの情報を提供しないことを意味します。

1つのオプションは、(データセット全体からの置換でサンプリングするのではなく)少数派クラスからの観測値をオーバーサンプリングするようにランダムフォレストを実行することです。したがって、各ツリーがサイズNのサンプルに基づいて構築されるように指定すると、観測値のN / 2が各クラス(または選択した他の比率)から取得されるようになります。

それは一部の人を助けるかもしれませんが、それは決して万能薬ではありません。RF設定を微調整するよりも、クラスを区別するのに適した優れた機能を見つけることで、より多くのマイレージが得られる可能性が高くなります。

于 2012-04-24T21:53:31.953 に答える
5

'classwt'パラメータの使用について誰も言及していないことに驚いています。加重ランダムフォレスト(WRF)は、この種の問題を修正するために特別に設計されています。

ここを参照してください:Stack Exchangeの質問#1

そしてここに:Stack Exchangeの質問#2

加重ランダムフォレストに関する記事:PDF

于 2014-01-23T13:49:55.833 に答える
4

さて、これは典型的なクラスの不均衡の問題です。ランダムフォレストは、モデルの精度を最大化することを目的としたそのタイプの分類器です。1つのクラスがデータの過半数を占める場合、分類器が精度を達成するための最も簡単な方法は、すべての観測値を過半数のクラスに分類することです。これにより、あなたの場合は0.75と非常に高い精度が得られますが、モデルは不適切です。少数派クラスの分類はほとんど正しくありません。これを処理する方法はたくさんあります。より簡単な方法は、多数派クラスのアンダーサンプリングを使用してデータのバランスを取り、このバランスの取れたデータでモデルをトレーニングすることです。これがお役に立てば幸いです。

于 2013-01-14T21:57:41.747 に答える
3

sampsize = c(500,500)を使用してエラー結果のバランスをとることができます(つまり、各ツリーで、アンバランスエラーの問題を回避するために、各クラスで500が使用されます。もちろん、ノードのサイズも非常に大きく変更できます。それはおそらく木を本当に小さくします(それぞれにいくつかの変数を使用します)。トレーニングセットにあまりオーバートレーニングしたくないが(RFモデルがそれを処理している場合でも)、少なくともいくつかを使用したい各ツリーの変数。

于 2013-08-07T20:04:53.190 に答える
1

このような悪い分類の原因となったコードを表示する場合は、便利です。今、私はそのような悪いパフォーマンスの1つの理由を見る-それnodesize = 1000は大きすぎる値です。データセットにはいくつの観測がありますか?のデフォルト値を使用するnodesizeか、はるかに小さい値に設定してみてください。

于 2012-04-25T08:26:55.513 に答える
0

分類器がデータ内の構造を完全に見つけることができなかったようです。それができる最善のことは、それが最も頻繁なクラスであるため、すべてをクラス1として分類することでした。

于 2012-04-24T21:43:13.100 に答える