我正在使用R包randomForest处理不平衡的数据集。有人建议,在对稀有类进行过度采样并对公共类进行欠采样时引导您的数据。但我发现随着重采样大小的增加,OOB误差减小到零,显示出严重的过度拟合,我想知道为什么?
实际上这也发生在树模型(rpart)上。
这是一个例子,虽然数据是平衡的,只是为了测试重新采样大小的影响:
require(randomForest)
set.seed(0)
iris500=iris[sample(1:nrow(iris),size=500,replace=TRUE),]
iris2000=iris[sample(1:nrow(iris),size=2000,replace=TRUE),]
formula="Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width"
(rf0=randomForest(as.formula(formula),data=iris)) #OOB estimate of error rate: 4%
(rf1=randomForest(as.formula(formula),data=iris500)) #OOB estimate of error rate: 0.4%
(rf2=randomForest(as.formula(formula),data=iris2000)) #OOB estimate of error rate: 0%
table(iris[["Species"]])
#setosa versicolor virginica
# 50 50 50