Answers:
通常,随机森林的样本大小可作为对所涉及的“随机度”的控制,从而可以作为调整偏差-方差折衷的一种方式。样本数量的增加导致“随机性较低”的森林,因此有过度拟合的趋势。减少样本大小会增加森林中各个树木的差异,防止过度拟合,但通常会以模型性能为代价。一个有用的副作用是较小的样本量减少了训练模型所需的时间。
最佳样本大小的通常经验法则是“引导样本”,该样本大小与原始数据集相等,但通过替换选择,因此某些行未选中,而另一些行被多次选择。这通常提供接近最佳的性能,并且是标准R实施中的默认设置。但是,在实际应用程序中,您可能会发现调整样本大小可以提高性能。如有疑问,请使用交叉验证选择适当的样本量(和其他模型参数)。
我整夜使用一些随机参数设置运行了4500个随机森林:
回归问题Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5
,其中任何x
从正态分布采样独立,SD = 1,平均值= 1
Ytotal = Ysignal + Yerror
哪里 Yerror = rnorm(n.observations,sd=sd(Ysignal))*noise.factor
theoretical.explainable.variance"TEV" = var(Ysignal= / var(Ytotal)
randomForest.performance = explained.variance(OOB cross-validation) / TEV
数据集是从回归问题中取样的,附加噪声
n.obs
是1000到5000 n.extra.dummy.variables
之间的随机数,
介于1到20之间
ntree
总是1000
sample_replacement
总是 true
mtry
是5到25,限制n.obs
noise.factor
在0到9之间
samplesize.ratio
每个引导程序的比例大小在10%到100%之间的随机数
所有模型都像 rfo = randomForest(x=X, y=Ytotal, <more args>)
的randomForest.performance
,它的解释的最高分数的能力TEV
增加时一般samplesize
降低当TEV
小于50%,并且减少当TEV
是高于50%。
因此,如果您的randomForest-modelfit
报告(例如,OOB-CV解释了15%的方差),并且这对于您来说是可接受的模型精度,那么您可以通过降低sampsize
给定观察值的三分之一来将性能微调一些ntree > 1000
。
士气:对于嘈杂的数据,最好使树不相关,而要通过生长最大大小的树来降低偏差。