R randomForestでの置換によるサンプリング


11

randomForest実装では、置換でサンプリングする場合でも、観測数を超えるサンプリングは許可されません。どうしてこれなの?

正常に動作します:

rf <- randomForest(Species ~ ., iris, sampsize=c(1, 1, 1), replace=TRUE)
rf <- randomForest(Species ~ ., iris, sampsize=3, replace=TRUE)

私がしたいこと:

rf <- randomForest(Species ~ ., iris, sampsize=c(51, 1, 1), replace=TRUE)
Error in randomForest.default(m, y, ...) : 
  sampsize can not be larger than class frequency

層別サンプルなしの同様のエラー:

rf <- randomForest(Species ~ ., iris, sampsize=151, replace=TRUE)
Error in randomForest.default(m, y, ...) : sampsize too large

どちらの場合もreplace = TRUEが指定されている場合、メソッドがブートストラップサンプルを取得することを期待していたため、この制限を期待していませんでした。

私の目的は、比較的まれなクラスから十分に大きなサンプルを引き出すために、これを層別サンプリングオプションで使用することです。


実際の理由はわかりませんが、ブートストラップサンプルは通常、元のサンプルと同じサイズであるため、この動作は、ブートストラップサンプルを取得すると主張しているものに完全に一致すると思われます。
joran

1
まあ、それはドキュメンテーションではなく私の言葉の選択でしたが、あなたの主張はよく理解されています。それでも、これはディストリビューションのバランスを再調整しようとするときに不便であり、これが強制するのに役立つ制限である理由がわかりません。
cohoz

回答:


5

これは理由には答えません、これを回避するために、トレーニングデータのまれなクラスのデータを複製して、結果の層別サンプルを取得できます。

「自然な」オーバーサンプリングと比較して、このアプローチには2つの欠点があります。

  • アウトオブバッグの見積もりはもはや意味がありません
  • オブジェクトを保存してランダムなサンプルを取得するには、より多くのリソースが必要です

しかし、これにより、希望するクラス比率でフォレストを構築できます。


4

私はまったく同じ質問があり、これがrandomForestの変更ログで見つかりました

4.1-0での変更点:

  • randomForest()では、sampsizeが指定されている場合、サンプリングはクラスで層別化されるだけでなく、置換なしで行われるようになりました。したがって、sampsizeはクラス周波数よりも大きくすることはできません。

replace = TRUEを手動で設定しても、これが上書きされないようです。


2
replaceパラメータが単に無視されている場合もありますが、その変更ログの後半:4.5-12の変更:* randomForestに「strata」引数が追加されました。これにより、「sampsize」と組み合わせて、サンプリングを許可置換なしで)階層変数(クラス変数以外の変数にすることができます)に従います。現在、分類でのみ機能します。
cohoz 2013年

たとえば、同じエラーが生成されますrf <- randomForest(Species ~ ., iris, sampsize=c(51, 1, 1), strata=iris$Species, replace=TRUE)
cohoz

さらに、現在のバージョン(4.6-7)の一部のテストケースでは、サンプルが置き換えられて取得されることが示されているため、これは説明ではありません。
cohoz 2013年

1
結局、randomForestを実行する前にオーバーサンプリングしただけです。この方法にはおそらく何か問題がありますが、結果をテストするとうまくいくようです。
hgcrpd 2013年

1
いいえ、それは私が使用する回避策であり、それは人が望んでいることを正確に行います。特に、1つの比較的まれなクラスのユースケースでは、トレーニングセットでそのクラスのデータを複製すると、層別サンプルを取得する前にうまく機能し、追加のメモリ/ CPUの観点から「コスト」が高くなりすぎません。「答え」を書いておく価値はあると思いますが、実際にはそうではありません...
cohoz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.