2012-01-22 51 views
31

Estoy haciendo una tarea de regresión. ¿Necesito normalizar (o escalar) datos para randomForest (paquete R)? ¿Y es necesario escalar también los valores objetivo? Y si - Quiero usar la función de escala del paquete caret, pero no encontré cómo recuperar los datos (descalcificar, desnormalizar). ¿No conoces alguna otra función (en cualquier paquete) que sea útil con la normalización/desnormalización? Gracias , Milán¿Necesito normalizar (o escalar) datos para randomForest (paquete R)?

+6

La función 'scale' no pertenece a' caret'. Es parte del paquete R "base". Hay una función 'unscale' que revertirá la transformación. –

Respuesta

1

no veo alguna sugerencia, ya sea en la página de ayuda o la viñeta que le sugiere la escala es necesaria para una variable de regresión en randomForest. This example at Stats Exchange tampoco usa escalado.

Copia de mi comentario: La función scale no pertenece a pkg: caret. Es parte del paquete R "base". Hay una función unscale en los paquetes grt y DMwR que revertirá la transformación, o puede simplemente multiplicar por el atributo de escala y luego agregar los valores del atributo central.

Su concepción de por qué debe hacerse la "normalización" puede requerir un examen crítico. La prueba de no normalidad solo es necesaria después de que se realizan las regresiones y puede que no se necesite en absoluto si no hay suposiciones de normalidad en la metodología de bondad de ajuste. Entonces: ¿Por qué estás preguntando? La búsqueda en SO y Stats.Exchange podría ser útil: citation #1; citation #2; citation #3

La función boxcox es una transformación comúnmente utilizada cuando uno no tiene conocimiento previo de qué debe ser una distribución y cuándo realmente necesita hacer una transformación. Existen muchas dificultades en la aplicación de transformaciones, por lo que el hecho de que tenga que hacer la pregunta genera dudas de que pueda necesitar más consultas o autoaprendizaje.

+0

Entiendo la normalización en mi pregunta como transformación lineal simple de datos a, p. intervalo 0-1. Esto debe hacerse, p. cuando se usan redes neuronales. Entonces, lo que necesitaba cuando pregunté fue respondido por Hong Ooi. No encontré la función unscale que sugirió. Pero gracias por tu esfuerzo. – gutompf

+0

Se agregaron citas para responder a su segunda pregunta. –

+0

Me disculpo - Pasé por alto que unscale es paquetes grt y DMwR – gutompf

31

No, la escala no es necesaria para los bosques aleatorios.

  • La naturaleza de RF es tal que problemas de convergencia y precisión numérica, que a veces puede tropezar los algoritmos utilizados en la regresión logística y lineal, así como las redes neuronales, no son tan importantes. Debido a esto, no necesita transformar las variables a una escala común como lo haría con un NN.

  • No hay ningún análogo de un coeficiente de regresión, que mide la relación entre cada variable de predicción y la respuesta. Debido a esto, tampoco es necesario considerar cómo interpretar dichos coeficientes, que es algo que se ve afectado por las escalas de medición variables.

+0

Muchas gracias – gutompf

+8

No solo no es necesario escalar, sino que puede suavizar la naturaleza no lineal de el modelo. Si tiene relaciones no lineales complejas en el espacio p-dimensional y ha transformado sus datos, cuando transfiere de nuevo y estas no linealidades no se reflejan en la estimación. –

+2

@JeffreyEvans, por favor, combine sus excelentes comentarios y publíquelos como respuesta. De lo contrario, esto se deslizará bajo el radar de todos. Usted está diciendo ** "No, no solo no es necesario, es dañino por las siguientes razones a) b) c) ..." ** – smci

1

Si se va a añadir interacciones de conjunto de datos - es decir, al ser nueva variable alguna función de otras variables (multiplicación generalmente simple), y que no se siente lo que nueva variable significa (no puedo interpretar ella), entonces deberías calcular esta variable usando variables escaladas.

+4

Random Forests es un modelo no lineal y la naturaleza de las cuentas estadísticas de división de nodos para interacciones de alta dimensión. Como tal, es innecesario y bastante indeseable intentar definir variables de interacción. –

0

Adivina, ¿qué pasará en el siguiente ejemplo? Imagínese, tiene 20 funciones predictivas, 18 de ellas están en el rango [0; 10] y las otras 2 en el rango [0; 1,000,000] (tomadas de un ejemplo de la vida real). Pregunta 1: qué importancias de características asignará Random Forest. Pregunta 2: ¿qué pasará con la importancia de la función después de escalar las 2 características de gran alcance?

El escalamiento es importante. Es que Random Forest es menos sensible a la escala que a otros algoritmos y puede trabajar con funciones "aproximadamente" escaladas.

Cuestiones relacionadas