20 votos

Hay una fórmula o regla para determinar la correcta sampSize para un randomForest?

Estoy jugando con un randomForest y han encontrado que en general el aumento de la sampSize conduce a un mejor desempeño. Existe una regla / fórmula / etc que sugiere lo que el óptimo sampSize debe ser o es un ensayo y error? Supongo que otra manera de expresar; ¿cuáles son mis riesgos de muy pequeño sampSize o demasiado grandes (sobreajuste?)?

24voto

Martin O'Leary Puntos 2046

En general, el tamaño de la muestra para un bosque al azar actúa como un control sobre el "grado de aleatoriedad" involucrados, y por lo tanto como una forma de ajustar el sesgo y la varianza de equilibrio. Aumentar el tamaño de la muestra los resultados en un "menos al azar" del bosque, por lo que tiene una tendencia a overfit. Disminuyendo el tamaño de la muestra aumenta, la variación en los árboles individuales en el bosque, la prevención de sobreajuste, pero por lo general a expensas del funcionamiento del modelo. Un efecto útil es menor que el tamaño de las muestras a reducir el tiempo necesario para entrenar el modelo.

La costumbre de la regla de oro para el mejor tamaño de la muestra es un "bootstrap" de muestra", una muestra de igual tamaño que el conjunto de datos original, pero seleccionados con reemplazo, de modo que algunas filas no están seleccionados, y otros son seleccionados más de una vez. Normalmente, esto proporciona cerca de rendimiento óptimo, y es el valor predeterminado en el estándar R aplicación. Sin embargo, usted puede encontrar en aplicaciones del mundo real que ajustar el tamaño de la muestra puede conducir a un mejor desempeño. En caso de duda, seleccione el tamaño apropiado de la muestra (y otros parámetros del modelo) mediante la validación cruzada.

2voto

Corrí 4500 bosques aleatorios durante la noche con algún azar paremeter-configuración:

regresión problema Ysignal = x1^2+sin(x2)*pi) + x3 * x4 + x5 donde x se toman muestras independientes de una distribución normal, sd=1, media=1

Ytotal = Ysignal + Yerror

donde Yerror = rnorm(n.observaciones,sd=sd(Ysignal))*ruido.factor de

teórico.explicable.varianza"TEV" = var(Ysignal= / var(Ytotal)

randomForest.rendimiento = explicó.la varianza(OOB de validación cruzada) / TEV

los conjuntos de datos fueron muestreados de la regresión problema y ruido añadido n.obs era un número aleatorio entre 1000 y 5000 n.extra.ficticio.las variables entre 1 y 20

ntree siempre 1000

sample_replacement siempre verdadero

mtry es de 5 a 25, limitado por n.obs de ruido.factor entre 0 y 9

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

todos los modelos fueron entrenados como orp = randomForest(x=X,y=Ytotal,más args)

el randomForest.rendimiento, su capacidad para explicar la mayor fracción de la TEV aumenta, en general, cuando samplesize disminuye cuando el TEV es menor de 50% y disminuyen cuando TEV es mayor del 50%.

Por lo tanto, si su randomForest-modelfit informes por ejemplo, el 15% de la variación explicada por OOB-CV, y este es un modelo aceptable de precisión para usted, entonces usted probablemente puede ajustar el rendimiento un poco mayor por la reducción de sampsize a un tercio del número de observaciones, dado ntree>1000.

Estado de ánimo: muy ruidoso datos es mejor de-correlacionar los árboles de menor sesgo por la creciente máxima tamaño de los árboles.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X