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