Procedimiento de selección variable para clasificación binaria.

29

¿Cuál es la selección de variables / características que prefiere para la clasificación binaria cuando hay muchas más variables / características que observaciones en el conjunto de aprendizaje? El objetivo aquí es discutir cuál es el procedimiento de selección de características que reduce mejor el error de clasificación.

Podemos corregir las anotaciones para mantener la coherencia: para , deje que sea ​​el conjunto de observaciones de aprendizaje del grupo . Entonces es el tamaño del conjunto de aprendizaje. Establecemos para que sea el número de características (es decir, la dimensión del espacio de características). Supongamos que x [i] denota la coordenada i -ésima de x \ in \ mathbb {R} ^ p .i{0,1}{x1i,,xnii}in0+n1=npx[i]yoxRp

Proporcione referencias completas si no puede dar los detalles.

EDITAR (actualizado continuamente): procedimientos propuestos en las respuestas a continuación

Como esta es una wiki comunitaria, puede haber más discusión y actualización.

Tengo un comentario: en cierto sentido, todos dan un procedimiento que permite ordenar las variables pero no la selección de variables (son bastante evasivos sobre cómo seleccionar el número de características, supongo que todos usan la validación cruzada). ¿Pueden mejorar? Las respuestas en esta dirección? (como se trata de una wiki comunitaria, no necesita ser el redactor de respuestas para agregar información sobre cómo seleccionar el número de variables. He abierto una pregunta en esta dirección aquí Validación cruzada en una dimensión muy alta (para seleccionar el número de variables utilizadas en clasificación dimensional muy alta) )

robin girard
fuente
¿Es una pregunta o una piscina? Si es lo último, debería ser wiki comunitario. Si es el primero, ¿da más detalles sobre lo que quiere lograr? Por ejemplo, ¿es relevante o una selección mínimamente óptima? Cuanto es muchos ¿Qué tan difícil es el problema de clasificación?
pool ... muchos significa 1000 características o más y menos de 100 observaciones.
robin girard

Respuestas:

18

Un enfoque muy popular es la regresión logística penalizada, en la que uno maximiza la suma de la probabilidad de registro y un término de penalización que consiste en la norma L1 ("lazo"), la norma L2 ("cresta"), una combinación de los dos ("elástico"), o una penalización asociada a grupos de variables ("lazo de grupo"). Este enfoque tiene varias ventajas:

  1. Tiene fuertes propiedades teóricas, por ejemplo, vea este documento de Candes & Plan y conexiones cercanas a la detección comprimida;
  2. Tiene exposiciones accesibles, por ejemplo, en Elementos de aprendizaje estadístico de Friedman-Hastie-Tibshirani (disponible en línea);
  3. Tiene software disponible para adaptarse a los modelos. R tiene el paquete glmnet que es muy rápido y funciona bien con conjuntos de datos bastante grandes. Python tiene scikit-learn , que incluye regresión logística penalizada por L1 y L2;
  4. Funciona muy bien en la práctica, como se muestra en muchos documentos de aplicación en reconocimiento de imágenes, procesamiento de señales, biometría y finanzas.
alegre
fuente
10

Tengo una ligera preferencia por los bosques aleatorios de Leo Breiman y Adele Cutleer por varias razones:

  • permite hacer frente a predictores categóricos y continuos, así como a un tamaño de muestra de clase desequilibrado;
  • como método conjunto / integrado, la validación cruzada está integrada y permite estimar un error de generalización;
  • es relativamente insensible a sus parámetros de ajuste (% de variables seleccionadas para cultivar un árbol, # de árboles construidos);
  • proporciona una medida original de importancia variable y puede descubrir interacciones complejas entre variables (aunque esto puede conducir a resultados difíciles de leer).

Algunos autores argumentaron que funcionaba tan bien como SVM o máquinas de refuerzo de gradiente penalizadas (ver, por ejemplo, Cutler et al., 2009, para el último punto).

Una cobertura completa de sus aplicaciones o ventajas puede estar fuera del tema, por lo que sugiero los Elementos de aprendizaje estadístico de Hastie et al. (cap. 15) y Sayes et al. (2007) para lecturas adicionales.

Por último, pero no menos importante, tiene una buena implementación en R, con el paquete randomForest . Otros paquetes de R también lo extienden o lo usan, por ejemplo, party y caret .

Referencias

Cutler, A., Cutler, DR, y Stevens, JR (2009). Métodos basados ​​en árboles, en Análisis de datos de alta dimensión en la investigación del cáncer , Li, X. y Xu, R. (eds.), Pp. 83-101, Springer.

Saeys, Y., Inza, I. y Larrañaga, P. (2007). Una revisión de las técnicas de selección de características en bioinformática. Bioinformática , 23 (19) : 2507-2517.

chl
fuente
7

Escaneo de metrópolis / MCMC

  • Seleccione algunas características al azar para comenzar, entrene el clasificador solo en ellas y obtenga el error.
  • Realice algunos cambios aleatorios en este conjunto de trabajo: elimine una característica, agregue otra al azar o reemplace alguna característica con una que no se esté utilizando actualmente.
  • Entrene al nuevo clasificador y obtenga su error; almacenar en dEla diferencia el error en el nuevo conjunto menos el error en el conjunto anterior.
  • Con probabilidad, min(1;exp(-beta*dE))acepte este cambio, de lo contrario rechazarlo e intentar otro cambio aleatorio.
  • Repítalo durante mucho tiempo y finalmente devuelva el conjunto de trabajo que globalmente ha logrado el error más pequeño.

Puede extenderlo con un control más sabio del betaparámetro. La forma más simple es usar recocido simulado cuando aumenta beta(baja la temperatura en analogía física) a lo largo del tiempo para reducir las fluctuaciones y llevar el algoritmo al mínimo. Más difícil es usar el intercambio de réplicas .

usuario88
fuente
5

Si solo está interesado en el rendimiento de generalización, probablemente sea mejor no realizar ninguna selección de funciones y utilizar la regularización (por ejemplo, regresión de cresta). Ha habido varios desafíos abiertos en la comunidad de aprendizaje automático sobre la selección de características, y los métodos que dependen de la regularización en lugar de la selección de características generalmente funcionan al menos tan bien, si no mejor.

Dikran Marsupial
fuente
3

Avariciosa selección.

Los pasos para este método son:

  • Asegúrese de tener un tren y un conjunto de validación
  • Repite lo siguiente
    • Entrene un clasificador con cada característica individual por separado que aún no esté seleccionada y con todas las características seleccionadas previamente
    • Si el resultado mejora, agregue la función de mejor rendimiento, de lo contrario, detenga el procedimiento
Peter Smit
fuente
¿Cómo "entrenas" a tu clasificador? Presumiblemente esto se hace en el conjunto de entrenamiento. Si se trata de una máquina de vectores de soporte (SVM), hay varios parámetros para probar durante el entrenamiento. ¿Se prueba cada uno con el conjunto de validación (prueba)? ¿O está utilizando la validación cruzada k-fold? ¿Cuántas veces está utilizando el conjunto de validación (prueba) para verificar su rendimiento? Presumiblemente esta es la precisión. Lamento ser pedante, pero esta es una respuesta mal definida y corre el riesgo de sobreajustar.
Thylacoleo
@Thylacoleo Este es un método básico y codicioso muy crudo. A menudo mantiene su configuración de validación igual durante las ejecuciones, pero lo que quiera está bien.
Peter Smit el
2

Eliminación hacia atrás.

Comience con el conjunto completo, luego capacite iterativamente al clasificador en las características restantes y elimine la característica con la menor importancia, pare cuando el error del clasificador aumente rápidamente / se vuelva inaceptable.

La importancia se puede obtener incluso eliminando iterativamente cada característica y verificando el aumento del error o adaptándolo desde el clasificador si lo produce (como en el caso de Random Forest).

usuario88
fuente
2
Pero la pregunta dice que hay más variables que observaciones. Por lo tanto, no es posible comenzar con el conjunto completo.
Rob Hyndman
¿Cuál es el problema?
2
No puede ajustar un modelo que tenga más variables que observaciones. No hay suficientes grados de libertad para la estimación de parámetros.
Rob Hyndman el
1
En el cálculo de Fisher F, calcula la F como (n - k - p) / (k - 1) * ...con nel número de observaciones, kel número de clases (2 aquí) y pel número de variables. n - 2 - p < 0cuándo n < p + 2(que es el caso aquí) que conduce a F < 0. ¿No sería eso un problema?
Matthieu
3
La regresión regularizada o completamente bayesiana permitiría obtener una solución única con el conjunto completo de predictores para comenzar, sin duda lo mismo ocurre con algunas otras técnicas de ML.
Scortchi - Restablece a Monica