¿Existe una fórmula o regla para determinar la muestra correcta para un bosque aleatorio?


13

Estoy jugando con un bosque aleatorio y he descubierto que, en general, aumentar el tamaño de la muestra conduce a un mejor rendimiento. ¿Existe una regla / fórmula / etc. que sugiera cuál debería ser el sampSize óptimo o es una prueba y error? Supongo que otra forma de redactarlo; ¿Cuáles son mis riesgos de un tamaño de muestra demasiado pequeño o demasiado grande (sobreajuste)?


Esta pregunta se refiere a la implementación R del bosque aleatorio en el randomForestpaquete. La función randomForesttiene un parámetro sampSizeque se describe en la documentación como

Tamaño (s) de muestra a dibujar. Para la clasificación, si sampsize es un vector de la longitud del número de estratos, entonces el muestreo se estratifica por estratos, y los elementos de sampsize indican los números que se extraerán de los estratos.

Respuestas:


21

En general, el tamaño de la muestra para un bosque aleatorio actúa como un control sobre el "grado de aleatoriedad" involucrado y, por lo tanto, como una forma de ajustar el equilibrio de sesgo-varianza. El aumento del tamaño de la muestra da como resultado un bosque "menos aleatorio" y, por lo tanto, tiene una tendencia al sobreajuste. Disminuir el tamaño de la muestra aumenta la variación en los árboles individuales dentro del bosque, evitando el sobreajuste, pero generalmente a expensas del rendimiento del modelo. Un efecto secundario útil es que los tamaños de muestra más bajos reducen el tiempo necesario para entrenar el modelo.

La regla general habitual para el mejor tamaño de muestra es una "muestra de arranque", una muestra de igual tamaño que el conjunto de datos original, pero seleccionada con reemplazo, por lo que algunas filas no se seleccionan y otras se seleccionan más de una vez. Esto generalmente proporciona un rendimiento casi óptimo y es el valor predeterminado en la implementación estándar de R. Sin embargo, puede encontrar en aplicaciones del mundo real que ajustar el tamaño de la muestra puede mejorar el rendimiento. En caso de duda, seleccione el tamaño de muestra apropiado (y otros parámetros del modelo) mediante validación cruzada.


2

Ejecuté 4500 bosques aleatorios durante la noche con algunos ajustes de parámetros aleatorios:

Problema de regresión Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5 en el que cualquiera de ellos xse muestrea independientemente de una distribución normal, sd = 1, media = 1

Ytotal = Ysignal + Yerror

dónde 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

Se tomaron muestras del conjunto de datos del problema de regresión y el ruido agregado n.obsfue un número aleatorio entre 1000 y 5000 n.extra.dummy.variablesentre 1 y 20

ntree siempre 1000

sample_replacement siempre true

mtryes de 5 a 25, limitado por n.obs noise.factorentre 0 y 9

samplesize.ratio un número aleatorio entre 10% y 100%, el tamaño de la proporción de cada arranque

todos los modelos fueron entrenados como rfo = randomForest(x=X, y=Ytotal, <more args>)

el randomForest.performance, su capacidad para explicar la fracción más alta de los TEVaumentos en general cuando samplesizedisminuye cuando TEVes inferior al 50% y disminuye cuando TEVes superior al 50%.

Por lo tanto, si sus randomForest-modelfitinformes, por ejemplo, 15% explicaron la varianza por OOB-CV, y esta es una precisión de modelo aceptable para usted, entonces probablemente pueda ajustar el rendimiento un poco más al reducir sampsizea un tercio del número de observaciones, dado ntree > 1000.

Moral : Para datos muy ruidosos, es mejor descorrelacionar los árboles que disminuir el sesgo al cultivar árboles de tamaño máximo.


1

Para que los bosques aleatorios funcionen tan bien en los nuevos datos como lo hacen en los datos de entrenamiento, el tamaño de muestra requerido es enorme, a menudo es 200 veces el número de características candidatas . Ver aquí .


2
Dr. Harrell, creo que OP está preguntando sobre el tamaño del nuevo muestreo utilizado para construir cada árbol individual, en lugar del tamaño total del conjunto de datos.
Sycorax dice Reinstate Monica el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.