Selección de funciones para máquinas de vectores de soporte

9

Mi pregunta es triple

En el contexto de máquinas de vectores de soporte "Kernelized"

  1. Es deseable la selección de variables / características, especialmente porque regularizamos el parámetro C para evitar el sobreajuste y el motivo principal detrás de la introducción de núcleos en una SVM es aumentar la dimensionalidad del problema, en tal caso, reducir las dimensiones mediante la reducción de parámetros parece contraintuitivo
  2. Si la respuesta a la primera pregunta es "NO", entonces, ¿en qué condiciones cambiaría la respuesta que se debe tener en cuenta?
  3. ¿Hay algún buen método que se haya intentado para lograr la reducción de funciones para SVM en la biblioteca scikit-learn de python? He probado el método SelectFpr y estoy buscando personas con experiencias con diferentes métodos.
Nitin Srivastava
fuente
1
La selección de funciones siempre será útil a menos que, para empezar, las características iniciales sean de muy alta calidad. Sklearn ofrece muchas bibliotecas de selección de funciones diferentes ( scikit-learn.org/stable/modules/feature_selection.html ). Soy parcial para RFE.
David
1
No mencionó su contexto: tenga en cuenta que si se trata de un contexto comercial, cada característica que permanezca en el modelo requerirá mantenimiento en algún nivel; hay un costo de dinero literal involucrado si tiene más variables, en el sentido de que requiere, por ejemplo, más esfuerzo de recopilación de datos, tiempo de DBA y tiempo de programación. Obviamente, esta consideración no se aplica si se trata de una compilación de Kaggle o similar, y si usar un extra de 200 de las funciones disponibles en el conjunto de datos le da un aumento del 0.01% en el rendimiento, usted está en el dinero.
Robert de Graaf

Respuestas:

3

Personalmente, me gusta dividir la selección de funciones en dos:

  • selección de funciones sin supervisión
  • selección de funciones supervisadas

La selección de funciones sin supervisión son cosas como la agrupación en clúster o PCA donde selecciona la gama de funciones menos redundante (o crea funciones con poca redundancia). La selección de funciones supervisadas son cosas como Lasso, donde selecciona las funciones con mayor poder predictivo.

Personalmente, prefiero lo que llamo selección de funciones supervisadas. Entonces, cuando uso una regresión lineal, seleccionaría características basadas en Lasso. Existen métodos similares para inducir la escasez en las redes neuronales.

Pero, de hecho, no veo cómo haría eso en un método que usa kernels, por lo que probablemente sea mejor usar lo que yo llamo selección de funciones sin supervisión.

EDITAR: también preguntaste sobre la regularización. Veo que la regularización ayuda principalmente porque trabajamos con muestras finitas y, por lo tanto, la distribución de capacitación y pruebas siempre diferirá un poco, y desea que su modelo no se ajuste demasiado. No estoy seguro de que elimine la necesidad de evitar la selección de funciones (si realmente tiene demasiadas). Creo que seleccionar características (o crear un subconjunto más pequeño de ellas) ayuda al hacer que las características que tiene sean más robustas y evite que el modelo aprenda de correlaciones espurias. Entonces, la regularización ayuda, pero no estoy seguro de que sea una alternativa completa. Pero no he pensado lo suficiente sobre esto.

Ricardo Cruz
fuente