Las tres transformaciones mencionadas por el OP son ejemplos de transformaciones monótonas: usted toma una función creciente ([math] f (x) = x – \ overline {x}, f (x) = x ^ 3, .. [/ math ]), y su función original, y transfórmela con la función creciente.
El algoritmo Random Forest es invariable para este tipo de transformación monótona . Si aplica dicha función a sus características, este efecto neto será solo un cambio de los puntos de división óptimos por la misma función.
Sin embargo, hay muchos ejemplos en los que la ingeniería de características todavía es importante para los bosques aleatorios, porque la mayoría de la ingeniería de características se extiende más allá de las transformaciones monótonas. Aquí hay unos ejemplos:
- ¿Cómo se debe contactar a los autores de los libros blancos (y cómo hacer que respondan)?
- Al aplicar redes neuronales para la clasificación binaria, ¿hay algún beneficio para el conjunto de entrenamiento que tiene un número igual de 0 y 1?
- ¿Existe una conexión entre la ciencia de datos y el aprendizaje automático?
- ¿Cuáles son los algoritmos / documentos de última generación sobre clasificación y recuperación de imágenes?
- ¿Cuáles son las diferencias en las aplicaciones de filtrado colaborativo en los datos de calificación y en los datos de compra?
- Cálculos aritméticos modulares, como calcular la hora del día o el día del mes a partir de una marca de tiempo. Si su modelo necesita aprender sobre algún comportamiento que ocurre todos los días a las 7 pm, será muy difícil sin introducir una función de hora del día.
- Como menciona Warren Smith, el algoritmo de RF funciona haciendo divisiones verticales y horizontales de los datos (es decir, para [math] (x_1, \ ldots, x_n) \ in \ mathbb {R} ^ n [/ math], crea medios espacios de la forma [math] \ {x_i> C \} [/ math]. Si sus datos viven en algún plano oblicuo, entonces el algoritmo de división tiene que trabajar más para capturar estas líneas diagonales, lo que podría justificar una rotación de los datos.
- Los datos categóricos son un área difícil para implementaciones como sklearn en python. Dichos datos primero deben convertirse en entradas numéricas, y puede hacerlo de dos maneras:
- Dados n niveles categóricos, cree una nueva característica tomando valores [matemática] 0,1, \ ldots, n-1 [/ matemática]. Este método tiene la desventaja de imponer relaciones artificiales entre los niveles.
- Dados n niveles categóricos, cree n-1 o n variables ficticias, cada una de las cuales es un indicador binario de uno de los niveles. Esto elimina el inconveniente de imponer relaciones entre los niveles categóricos, pero también diluye la fuerza de la función. Una RF en cada punto de división busca la característica más predictiva, pero si ha cambiado una columna a 5 o 10 de ellas, la potencia de cada nueva columna ficticia individualmente disminuye, por lo que tal vez la característica original nunca llegue a hablar.
- Finalmente, quizás el ejemplo más importante: en la práctica, los datos con los que comienzas no son los que entrarán en un modelo. Debe procesarse dramáticamente: por ejemplo, convertir eventos con marca de tiempo en características con las que un algoritmo puede trabajar. Esto no es endémico para los bosques aleatorios, pero las decisiones que tome con el preprocesamiento aquí son muy importantes.