J'ai exécuté 4500 forêts aléatoires pendant la nuit avec des réglages de paramètres aléatoires:
Problème de régression Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5
où certains xsont échantillonnés indépendamment d'une distribution normale, sd = 1, moyenne = 1
Ytotal = Ysignal + Yerror
où 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
des ensembles de données ont été échantillonnés à partir du problème de régression et le bruit ajouté
 n.obsétait un nombre aléatoire entre 1000 et 5000
 n.extra.dummy.variablesentre 1 et 20
ntree toujours 1000
sample_replacement toujours true
mtryest n.obs
noise.factorcompris entre 5 et 25, limité entre 0 et 9
samplesize.ratio un nombre aléatoire compris entre 10% et 100%, la taille du rapport de chaque bootstrap
tous les modèles ont été formés comme rfo = randomForest(x=X, y=Ytotal, <more args>)
la randomForest.performance, sa capacité à expliquer la fraction la plus élevée des TEVaugmentations en général lorsqu'elle samplesizediminue lorsqu'elle TEVest inférieure à 50% et qu'elle diminue lorsqu'elle TEVest supérieure à 50%.
Ainsi, si vos randomForest-modelfitrapports, par exemple 15% expliquaient la variance par OOB-CV, et qu'il s'agit d'une précision de modèle acceptable pour vous, alors vous pouvez probablement modifier les performances un peu plus haut en réduisant sampsizeà un tiers du nombre d'observations, étant donné ntree > 1000.
Moral : Pour les données très bruyantes, il est préférable de décorréler les arbres plutôt que de réduire le biais en augmentant les arbres de taille maximale.