Característica de construcción en R

8

Me pregunto si hay algún algoritmo (quizás algoritmos genéticos) en R para la construcción de características (derivar predictores candidatos de predictores existentes). Estoy pensando en una rutina para probar potencias de orden superior, interacciones, relaciones y combinaciones lineales y funciones no lineales de variables existentes (sin, cos, atan, etc.).

Esto podría ser una rutina de filtro o envoltura (es decir, no usar un algoritmo de aprendizaje o usar uno para definir la idoneidad de la función).

Mi objetivo es "descubrir" proporciones potencialmente significativas y similares de predictores existentes.

¡Gracias!

B_Miner
fuente
¿Has probado el paquete "Oblique.tree"? cran.r-project.org/web/packages/oblique.tree/index.html best

Respuestas:

3

Me parece que esto te dejaría altamente vulnerable a problemas como la correlación espuria e incluso el sobreajuste. Olvidé el nombre del principio que establece que cuantos más modelos intentes, mayor será tu riesgo de toparte con uno malo: si pruebas tantos modelos como para ejecutar un algoritmo genético, puedes imaginar cómo se viola ese principio.

Guillermo
fuente
1
Creo que el OP está hablando de usar un algoritmo genético para extraer o diseñar características, no para encontrar modelos.
Aman el
2

Podría hacerlo así: a partir de un data.frame, agrega un conjunto 'razonable' de predictores transformados o incluso interacciones a sus datos (model.matrix y similares deberían ser capaces de lograr esto).

Una vez que esté allí, cualquier método de selección de variables podría funcionar. glmnetviene a la mente, pero hay muchas opciones. Una desventaja de esta forma de trabajo es que será difícil garantizar que el efecto principal esté en el modelo cuando se produce una interacción. Quizás algunas formas de selección de variables apoyan esto, pero no conozco otras obvias además de los procedimientos paso a paso (que desafiarían el propósito).

Nick Sabbe
fuente
1

Podría comenzar con algo simple como encontrar componentes principales o componentes independientes . También podría volverse un poco loco y generar todas las interacciones bidireccionales de sus variables. Obviamente, a medida que genera y prueba más características, necesita un algoritmo de selección de características que sea más robusto contra el sobreajuste.

Algunos algoritmos de modelado, como MARS , bosques aleatorios y SVM no lineales, encuentran automáticamente ciertas interacciones entre sus características originales.

Zach
fuente
1
(+1) Me parece que el problema con los RF o SVM (y, en general, cualquier método de conjunto) es que tales interacciones rara vez se pueden interpretar de manera directa. Se han propuesto algunas variaciones en torno al ensacado que permiten realizar la selección de características en un tipo específico de predictores, ver, por ejemplo, el paquete logicFS .
chl