ファクターの32レベルのrandomForestパッケージ制限を回避しようとしています。
因子変数の1つに100レベルのデータセットがあります。
次のコードを記述して、置換を伴うサンプリングを使用するとどのように見えるか、および特定の%のレベルを選択するのに何回試行するかを確認しました。
sampAll <- c()
nums1 <- seq(1,102,1)
for(i in 1:20){
samp1 <- sample(nums1, 32)
sampAll <- unique(cbind(sampAll, samp1))
outSamp1 <- nums1[-(sampAll[,1:ncol(sampAll)])]
print(paste(i, " | Remaining: ",length(outSamp1)/102,sep=""))
flush.console()
}
[1] "1 | Remaining: 0.686274509803922"
[1] "2 | Remaining: 0.490196078431373"
[1] "3 | Remaining: 0.333333333333333"
[1] "4 | Remaining: 0.254901960784314"
[1] "5 | Remaining: 0.215686274509804"
[1] "6 | Remaining: 0.147058823529412"
[1] "7 | Remaining: 0.117647058823529"
[1] "8 | Remaining: 0.0980392156862745"
[1] "9 | Remaining: 0.0784313725490196"
[1] "10 | Remaining: 0.0784313725490196"
[1] "11 | Remaining: 0.0490196078431373"
[1] "12 | Remaining: 0.0294117647058824"
[1] "13 | Remaining: 0.0196078431372549"
[1] "14 | Remaining: 0.00980392156862745"
[1] "15 | Remaining: 0.00980392156862745"
[1] "16 | Remaining: 0.00980392156862745"
[1] "17 | Remaining: 0.00980392156862745"
[1] "18 | Remaining: 0"
[1] "19 | Remaining: 0"
[1] "20 | Remaining: 0"
私が議論しているのは、交換の有無にかかわらずサンプリングするかどうかです。
私は考えています:
- 100の要因のうち32のサンプルを取得し、
- それらの行を使用してrandomForestを実行し、
- randomForestとを使用してテストセットを予測する
- このプロセスを(a)3回(交換なし)または(b)10〜15回(交換あり)繰り返します。
- 3つまたは10〜15の予測値を取得し、平均を見つけて、それを最終的な予測子として使用します。
誰かがこのようなことを試みたのか、私がルールを破っているのか(バイアスの導入など)、または誰かが何か提案をしているのかどうか、私は興味があります。
注:この質問は、統計-オーバーフロー/相互検証にもクロスポストしました。