Tengo datos con un número mínimo de características que no cambian, y algunas características adicionales que pueden cambiar y tener un gran impacto en el resultado. Mi conjunto de datos se ve así:
Las características son A, B, C (siempre presente) y D, E, F, G, H (a veces presente)
A = 10, B = 10, C = 10 outcome = 10
A = 8, B = 7, C = 8 outcome = 8.5
A = 10, B = 5, C = 11, D = 15 outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18 outcome = 19
A = 10, B = 8, C = 9, E = 8, F = 4 outcome = 250
A = 10, B = 11, C = 13, E = 8, F = 4 outcome = 320
...
Quiero predecir el valor del resultado, y la combinación de parámetros adicionales es muy importante para determinar el resultado. En este ejemplo, la presencia de E y F conduce a un gran resultado, mientras que la presencia de E y G no. ¿Qué algoritmos o técnicas de aprendizaje automático son buenos para capturar este fenómeno?
machine-learning
feature-selection
Benjamin Crouzier
fuente
fuente
Respuestas:
Esta es una de las principales áreas de investigación en Machine Learning y se conoce como Selección de características .
En general, la única forma de decir cuál es el mejor subconjunto de características (para ingresar en algún modelo predictivo que pueda combinarlas), es probar todos los subconjuntos posibles. Esto suele ser imposible, por lo que las personas intentan muestrear el espacio de subconjuntos de características mediante diversas heurísticas (consulte el artículo para conocer algunos enfoques típicos).
fuente
Según tengo entendido, está buscando una medida de importancia variable. Estos vienen en varios sabores basados en varios enfoques teóricos diferentes, pero todos tienen fuertes vínculos con los métodos utilizados para optimizar el algoritmo del que habla. En general, cada algoritmo de aprendizaje automático tendrá un método de optimización canónica; propagación hacia atrás para redes neuronales, optimización mínima secuencial para SVM, diversos criterios de información y pruebas de significación estadística para árboles de decisión, incluida la significación chi cuadrado o la impureza de Gini. Por supuesto, con frecuencia se proponen otros métodos de optimización más novedosos para cada uno de los algoritmos.
Estos métodos de optimización para cada algoritmo definen esencialmente la importancia variable para el modelo en cuestión. Esencialmente, está buscando una aproximación o representación interpretable de los resultados de ese paso de optimización que está llevando a cabo el algoritmo. Sin embargo, esto es problemático por varias razones.
La dificultad de determinar la influencia de una variable dada en la selección de la forma del modelo, dado que la selección es a menudo un proceso estocástico en sí mismo. Las variables influyen en la selección del modelo hasta cierto punto, de modo que incluso si una variable no es importante para la predicción final en un modelo , puede haber dado forma crucial al modelo en sí. Dado que la generación del modelo en sí es a menudo estocástica (optimizada mediante la optimización del enjambre de partículas o un método de embolsado, etc.), es difícil entender exactamente cómo una variable dada puede haber moldeado su forma.
La dificultad de extraer la importancia de una sola variable dado que puede ser importante solo en conjunción o interacción con otra variable.
Algunas variables solo pueden ser importantes para algunas observaciones. La falta de importancia en otras observaciones puede confundir la medición de la importancia general al promediar una diferencia real.
También es difícil obtener una métrica inmediatamente interpretable para la importancia variable exactamente como lo define el modelo, ya que puede no producir un solo número (especialmente en el caso de embolsado). En cambio, en estos casos hay una distribución de importancia para cada variable.
Una forma de superar estos problemas podría ser utilizar la perturbación. Esta es una forma de analizar su modelo final agregando ruido aleatorio a sus variables y luego verificando cómo esto afecta los resultados. La ventaja es que le permite encontrar qué variables son más importantes empíricamente a través de la simulación, respondiendo a la pregunta de qué variables destruirían más la predicción si se eliminan. La desventaja es que existe una buena posibilidad de que, incluso si las variables se eliminaron / perturbaron, el modelo (si se vuelve a entrenar) podría usar las otras variables para reconstruir su efecto, lo que significa que la medida de "importancia variable" que usted obtiene todavía solo es verdadera indica la importancia en su modelo entrenado, pero no la importancia general en todos los modelos posibles.
fuente
Como @Bitwise menciona, la selección de características o la extracción de características es un área enorme de investigación en sí misma y hay innumerables formas de hacerlo.
Las otras respuestas son todas válidas en mi opinión, pero al final, probablemente te gustará más y elegir el método que sea más intuitivo para ti y que entiendas mejor. Todavía agregaría dos opciones posibles.
La regresión múltiple es probablemente la técnica más antigua. La idea es ajustar un modelo para describir la respuesta de los predictores y mantener solo los predictores que tienen un gran impacto en la respuesta (un gran coeficiente de proporcionalidad). Aquí probablemente habría que recodificar la ausencia de D, E, F y G como
D=0
,E=0
,F=0
, G=0
o algo por el estilo.Otra técnica que nunca ganó la popularidad que merece es el análisis de co-inercia (una variante del análisis canónico ). No hay una aplicación de la misma, por lo que yo sé, y que tendría que empezar desde cero ( no por ejemplo). Es un método lineal que encuentra la mejor combinación lineal de características que coincide con su (s) resultado (s). Esta publicación de blog muestra un ejemplo de cómo se puede usar.
fuente
Yo uso la ganancia de información (también conocida como información mutua). Mi asesor y yo usamos regularmente el enfoque descrito en este documento Cohen, 2008 para analizar las características para la clasificación por SVM.
fuente
Los bosques aleatorios pueden ser muy útiles para lo que quieres hacer. El paquete randomForest para R tiene una función que calcula 2 medidas de importancia. También tiene la capacidad de crear algunas gráficas de dependencia parcial para que pueda inspeccionar visualmente el efecto marginal que el predictor puede tener en la respuesta.
fuente
Estoy siendo desagradable aquí pero por una razón. ¿Ha pensado en reemplazar las observaciones no uniformes por una variable indicadora presente | not_present? Según su descripción, parece que este valor del indicador es una característica válida ya que la presencia de los factores D a H no es informativa: es decir, su presencia solo indica resultados más grandes.
fuente