我正在尝试解决因素的 32 个级别的 randomForest 包限制。
我在一个因子变量中有一个包含 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 个预测值,找到平均值并将其用作最终预测值。
我很好奇是否有人尝试过这样的事情,或者我是否违反了任何规则(引入偏见等),或者是否有人有任何建议。
注意:我也在 Stats-Overflow / Cross-Validated 上交叉发布了这个问题。