Corri 4500 florestas aleatórias durante a noite com algumas configurações aleatórias de parâmetros:
Problema de regressão em Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5
que qualquer xamostra é independente de uma distribuição normal, sd = 1, média = 1
Ytotal = Ysignal + Yerror
Onde 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
conjuntos de dados foram amostrados a partir do problema de regressão e o ruído adicionado
n.obsfoi um número aleatório entre 1000 e 5000
n.extra.dummy.variablesentre 1 e 20
ntree sempre 1000
sample_replacement sempre true
mtryé de 5 a 25, limitado n.obs
noise.factorentre 0 e 9
samplesize.ratio um número aleatório entre 10% e 100%, o tamanho da proporção de cada autoinicialização
todos os modelos foram treinados como rfo = randomForest(x=X, y=Ytotal, <more args>)
o randomForest.performance, sua capacidade de explicar a fração mais alta dos TEVaumentos em geral quando samplesizediminui quando TEVé inferior a 50% e diminui quandoTEV é superior a 50%.
Portanto, se seus randomForest-modelfitrelatórios, por exemplo, 15% explicaram a variação do OOB-CV, e essa é uma precisão aceitável do modelo para você, provavelmente você pode ajustar o desempenho um pouco mais alto, diminuindo sampsizepara um terço do número de observações fornecidas ntree > 1000.
Moral : Para dados muito barulhentos, é melhor correlacionar árvores do que diminuir o viés cultivando árvores de tamanho máximo.