12 votos

El muestreo con reemplazo en R randomForest

El randomForest aplicación no permite un muestreo más allá del número de observaciones, incluso cuando el muestreo con reemplazo. ¿Por qué es esto?

Funciona bien:

rf <- randomForest(Species ~ ., iris, sampsize=c(1, 1, 1), replace=TRUE)
rf <- randomForest(Species ~ ., iris, sampsize=3, replace=TRUE)

Lo que quiero hacer:

rf <- randomForest(Species ~ ., iris, sampsize=c(51, 1, 1), replace=TRUE)
Error in randomForest.default(m, y, ...) : 
  sampsize can not be larger than class frequency

De error Similar sin muestreo estratificado:

rf <- randomForest(Species ~ ., iris, sampsize=151, replace=TRUE)
Error in randomForest.default(m, y, ...) : sampsize too large

Desde que yo estaba esperando el método para tomar muestras bootstrap cuando se administra replace=TRUE en ambos casos, no me esperaba este límite.

Mi objetivo es utilizar esta con el muestreo estratificado opción, con el fin de sacar una suficientemente amplia muestra de una forma relativamente rara de la clase.

5voto

cohoz Puntos 276

Esto no responde a por qué, pero para conseguir todo esto, uno puede duplicar los datos de la clase rara en los datos de entrenamiento, y tomar una muestra estratificada de el resultado.

Dos de los inconvenientes de este enfoque, en comparación con un "natural" sobremuestreo:

  • la salida de bolsa de las estimaciones no son significativas
  • más recursos son necesarios para almacenar el objeto y tomar muestras al azar

pero nos permite construir el bosque con la clase deseada proporciones.

4voto

Dillie-O Puntos 193

Tengo la misma pregunta y encontré esto en el changelog para randomForest:

Cambios en 4.1-0:

  • En randomForest(), si sampsize, el muestreo se hace ahora sin sustitución, además de la estratificado por clase. Por lo tanto sampsize no puede ser mayor que el de la clase de frecuencias.

Configuración replace=TRUE manualmente también no parecen anular este.

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