Bazı rastgele parametre ayarları ile gece boyunca 4500 rastgele orman çalıştırdım:
Regresyon sorun Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5
herhangi x
bir normal dağılımdan bağımsız olarak örneklenir, ortalama SD = 1, = 1
Ytotal = Ysignal + Yerror
nerede 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
veri kümeleri regresyon probleminden örneklenmiştir ve eklenen gürültü
n.obs
1000 ile 5000 n.extra.dummy.variables
arasında 1 ile 20 arasında rastgele bir sayıdır.
ntree
her zaman 1000
sample_replacement
her zaman true
mtry
5 ile 25 n.obs
noise.factor
arasındadır, 0 ile 9 arasında sınırlıdır
samplesize.ratio
% 10 ile% 100 arasında rastgele bir sayı, her bir önyüklemenin oran boyutu
tüm modeller rfo = randomForest(x=X, y=Ytotal, <more args>)
randomForest.performance
, en yüksek kısmını açıklamaya kabiliyeti TEV
zaman genel olarak artar samplesize
düşürdüğünde TEV
% 50'den az olduğunda ve azaltmak TEV
% 50 daha yüksektir.
Bu nedenle, randomForest-modelfit
raporlarınız örneğin% 15'i OOB-CV tarafından varyansı açıkladıysa ve bu sizin için kabul edilebilir bir model hassasiyeti ise sampsize
, verilen gözlemlerin üçte birine inerek muhtemelen performansı biraz daha fazla ayarlayabilirsiniz ntree > 1000
.
Moral : Çok gürültülü veriler için, azami büyüklükteki ağaçlar yetiştirerek ağaçların korelasyonunu azaltmak önyargıları azaltmaktan daha iyidir.