¿Cuándo registrar / explicar sus variables cuando usa modelos de bosque aleatorio?

13

Estoy haciendo una regresión usando Random Forests para predecir precios basados ​​en varios atributos. El código está escrito en Python usando Scikit-learn.

¿Cómo decide si debe transformar sus variables usando exp/ logantes de usarlo para ajustar el modelo de regresión? ¿Es necesario cuando se utiliza un enfoque de conjunto como Random Forest?

Nyxynyx
fuente
3
Creo que esto es un poco diferente de esa pregunta, debido al aspecto aleatorio del bosque / conjunto, pero la pregunta quizás podría reformularse después de mirar la otra publicación.
Peter Flom - Restablece a Monica
@PeterFlom, ¿podría ayudarme a reformular la pregunta? No soy lo suficientemente competente en este campo :)
Nyxynyx
La forma en que la mayoría de la gente usa el término RF "conjunto" es solo 1 entrada potencial a un conjunto.
Hack-R

Respuestas:

16

La forma en que se construyen los bosques aleatorios es invariable a las transformaciones monótonas de las variables independientes. Las divisiones serán completamente análogas. Si solo apunta a la precisión, no verá ninguna mejora en ella. De hecho, dado que los bosques aleatorios pueden encontrar relaciones complejas no lineales (¿por qué llama a esto regresión lineal?) E interacciones variables sobre la marcha, si transforma sus variables independientes, puede suavizar la información que permite que este algoritmo lo haga esto correctamente

A veces, los bosques aleatorios no se tratan como una caja negra y se usan para inferencia. Por ejemplo, puede interpretar las medidas de importancia variable que proporciona, o calcular algún tipo de efecto marginal de su variable independiente en su variable dependiente. Esto generalmente se visualiza como gráficos de dependencia parcial. Estoy bastante seguro de que esto último está muy influenciado por la escala de las variables, lo cual es un problema cuando se trata de obtener información de naturaleza más descriptiva de Random Forests. En este caso, podría ayudarlo a transformar sus variables (estandarizar), lo que podría hacer que las gráficas de dependencia parcial sean comparables. No estoy completamente seguro de esto, tendrá que pensarlo.

No hace mucho tiempo intenté predecir los datos de conteo usando un bosque aleatorio, retroceder en la raíz cuadrada y el registro natural de la variable dependiente me ayudó un poco, no mucho, y no lo suficiente como para permitirme mantener el modelo.

Algunos paquetes donde puede usar bosques aleatorios para inferencia:

https://uc-r.github.io/lime

https://cran.r-project.org/web/packages/randomForestExplainer/index.html

https://pbiecek.github.io/DALEX_docs/2-2-useCaseApartmetns.html

JEquihua
fuente
6

Haciéndose eco de @JEquihua, la precisión de predicción de Random Forest no mejorará.

También tenga en cuenta que si mantiene el predictor original y el predictor transformado (como se hace a menudo en regresión lineal), puede causar problemas. Esto se debe a que RF elige aleatoriamente un subconjunto de las variables para hacer crecer cada árbol, y esencialmente ha colocado la variable transformada en dos veces. Si es un predictor fuerte, se utilizará, y sus bosques aleatorios no estarán tan mal relacionados como podrían haber estado, lo que conducirá a una mayor variación.

Scott Kaiser
fuente
1
Poner un predictor transformado y no transformado en cualquier modelo es una idea terrible. Son perfectamente colineales y ciertamente se meterán con su modelo, ya sea bosque aleatorio o regresión lineal.
mkt - Restablecer Monica