¿Todavía necesitamos hacer una selección de características mientras usamos algoritmos de regularización?

20

Tengo una pregunta con respecto a la necesidad de utilizar métodos de selección de características (los bosques aleatorios tienen un valor de importancia de características o métodos de selección de características univariadas, etc.) antes de ejecutar un algoritmo de aprendizaje estadístico.

Sabemos que para evitar el sobreajuste podemos introducir una penalización de regularización en los vectores de peso.

Entonces, si quiero hacer una regresión lineal, entonces podría introducir los parámetros de regularización neta L2 o L1 o incluso Elastic. Para obtener soluciones dispersas, la penalización L1 ayuda en la selección de funciones.

Entonces, ¿es necesario hacer una selección de funciones antes de ejecutar la regresión de regularización L1 como Lasso ?. Técnicamente, Lasso me está ayudando a reducir las funciones mediante la penalización L1, ¿por qué es necesaria la selección de funciones antes de ejecutar el algo?

Leí un artículo de investigación que decía que hacer Anova y luego SVM proporciona un mejor rendimiento que usar SVM solo. Ahora la pregunta es: SVM inherentemente realiza la regularización usando la norma L2. Para maximizar el margen, está minimizando la norma del vector de peso. Entonces está haciendo regularización en su función objetivo. Entonces, técnicamente, los algoritmos como SVM no deberían preocuparse por los métodos de selección de características. Pero el informe aún dice que hacer una selección de características univariantes antes de que SVM normal sea más poderoso.

¿Alguien con pensamientos?

Baktaawar
fuente
Una pregunta que plantearía es ¿cómo funciona la regularización de SVM con los métodos del núcleo? El registro de la norma L2 se basa en la normalización de las entradas. Sin embargo, si utiliza un núcleo (por ejemplo, polinomio), sus entradas efectivas (es decir, las potencias polinómicas) ya no se normalizarán.
seanv507

Respuestas:

17

La selección de funciones a veces mejora el rendimiento de los modelos regularizados, pero en mi experiencia generalmente empeora el rendimiento de generalización. La razón de esto es que cuantas más elecciones hagamos con respecto a nuestro modelo (incluidos los valores de los parámetros, la elección de características, la configuración de hiperparámetros, la elección del kernel ...), más datos necesitamos hacer. Estas elecciones son confiables. En general, hacemos estas elecciones minimizando algunos criterios evaluados sobre un conjunto finito de datos, lo que significa que el criterio inevitablemente tiene una varianza distinta de cero. Como resultado, si minimizamos el criterio de manera demasiado agresiva, podemos ajustarlo en exceso, es decir, podemos tomar decisiones que minimicen el criterio debido a características que dependen de la muestra particular en la que se evalúa, en lugar de porque producirá un Mejora genuina en el rendimiento.

Ahora, el SVM es una implementación aproximada de un límite en el rendimiento de generalización que no depende de la dimensionalidad, por lo que, en principio, podemos esperar un buen rendimiento sin la selección de características, siempre que los parámetros de regularización se elijan correctamente. La mayoría de los métodos de selección de funciones no tienen tales "garantías" de rendimiento.

Para los métodos L1, ciertamente no me molestaría con la selección de funciones, ya que el criterio L1 generalmente es efectivo para recortar funciones. La razón por la que es eficaz es que induce un orden en el que las características entran y salen del modelo, lo que reduce el número de opciones disponibles al seleccionar características y, por lo tanto, es menos propenso a un ajuste excesivo.

La mejor razón para la selección de funciones es descubrir qué funciones son relevantes / importantes. La peor razón para la selección de funciones es mejorar el rendimiento, para los modelos regularizados, generalmente empeora las cosas. Sin embargo, para algunos conjuntos de datos, puede hacer una gran diferencia, por lo que lo mejor que puede hacer es probarlo y usar un esquema de evaluación de rendimiento sólido e imparcial (por ejemplo, validación cruzada anidada) para averiguar si el suyo es uno de esos conjuntos de datos.

Dikran Marsupial
fuente
¿Qué quiere decir con valdiación cruzada anidada? ¿Aplica la validación cruzada k-fold N veces?
yasin.yazici
5

Mucha gente piensa que la regularización es suficiente para encargarse de las variables extrañas y que no se necesita una selección de variables si se regulariza adecuadamente , se realiza una agrupación parcial, se crean modelos jerárquicos, etc., cuando el objetivo es la precisión predictiva. Por ejemplo, si una estimación de parámetro para una variable particular se regulariza hasta o se elimina por completo del modelo ( ) realmente no ' No hace una gran diferencia en los problemas de predicción.β j = 0,0001 β j = 0jβ^j=.0001β^j=0 0

Sin embargo, todavía hay razones para eliminar por completo una variable.

  1. A veces el objetivo no es la precisión predictiva sino la explicación de un fenómeno mundial. A veces, desea saber qué variables afectan y no afectan a una determinada variable dependiente. En este tipo de situaciones, un modelo parsimonioso es una forma preferida de entender e interpretar
  2. Te estás poniendo en riesgo. Si deja una variable que realmente no tiene ningún efecto, entonces se está preparando para la posibilidad de que si recopila datos diferentes, la variable impacta los resultados. Esto es especialmente pertinente para modelos que se reacondicionan una y otra vez con diferentes aplicaciones.β^j
  3. Razones computacionales: un modelo con menos variables generalmente se ejecuta más rápido y no tiene que almacenar los datos para esas variables extrañas.
TrynnaDoStat
fuente
2
Hola, TrynnaDoStat, estoy totalmente de acuerdo con tu punto 1 y 3. Pero el argumento 2 realmente no da en el blanco. Si realiza la selección de características con el mismo conjunto de datos, también corre el riesgo de haber elegido el conjunto de características incorrecto. Porque una variable aleatoria podría correlacionarse bien con la variable objetivo en los datos.
gstar2002
Supongo que lo que digo con el punto 2 es que si reajusta un modelo una y otra vez (digamos cientos de veces) de vez en cuando obtendrá un que tiene un valor lo suficientemente grande como para afectar los resultados. A pesar de que la gran mayoría de las veces obtienes un pequeño valor. Me doy cuenta de que esto es un poco artificial, cualquiera puede no suceder muy a menudo en el mundo real. β^j
TrynnaDoStat
0

No creo que el sobreajuste sea la razón por la que necesitamos selección de características en primer lugar. De hecho, el sobreajuste es algo que sucede si no le damos a nuestro modelo suficientes datos, y la selección de características reduce aún más la cantidad de datos que le pasamos a nuestro algoritmo.

En cambio, diría que la selección de características es necesaria como un paso de preprocesamiento para los modelos que no tienen el poder de determinar la importancia de las características por sí mismas, o para los algoritmos que se vuelven mucho menos eficientes si tienen que hacer esta ponderación de importancia por su cuenta. .

Tomemos, por ejemplo, un simple algoritmo vecino k-más cercano basado en la distancia euclidiana. Siempre considerará que todas las características tienen el mismo peso o importancia para la clasificación final. Entonces, si le da 100 características pero solo tres de ellas son relevantes para su problema de clasificación, entonces todo el ruido de estas características adicionales ahogará por completo la información de las tres características importantes, y no obtendrá predicciones útiles. Si, en cambio, determina las características críticas de antemano y pasa solo aquellas al clasificador, funcionará mucho mejor (sin mencionar que será mucho más rápido).

Por otro lado, mira un clasificador de bosque aleatorio. Durante el entrenamiento, determinará automáticamente qué funciones son las más útiles al encontrar una división óptima al elegir entre un subconjunto de todas las funciones. Por lo tanto, será mucho mejor examinar las 97 funciones inútiles para encontrar las tres buenas. Por supuesto, aún se ejecutará más rápido si realiza la selección de antemano, pero su poder de clasificación generalmente no se verá afectado al darle muchas características adicionales, incluso si no son relevantes.

Finalmente, mira las redes neuronales. Nuevamente, este es un modelo que tiene el poder de ignorar características irrelevantes, y el entrenamiento por propagación hacia atrás generalmente convergerá en el uso de características interesantes. Sin embargo, se sabe que el algoritmo de entrenamiento estándar converge mucho más rápido si las entradas son "blanqueadas", es decir, escaladas a la varianza de la unidad y con correlación cruzada eliminada (LeCun et al, 1998) . Por lo tanto, aunque no es estrictamente necesario hacer una selección de funciones, puede pagar en términos de rendimiento puro para realizar el preprocesamiento de los datos de entrada.

En resumen, diría que la selección de características tiene menos que ver con el sobreajuste y más con mejorar el poder de clasificación y la eficiencia computacional de un método de aprendizaje. Cuánto se necesita depende mucho del método en cuestión.

cfh
fuente
3
(1) No estoy de acuerdo con tu primera propuesta. La selección de funciones no reduce la cantidad de datos, pero reduce la cantidad de funciones. El número de instancias (muestras) sigue siendo el mismo, y puede ayudar a sobreajustar porque el clasificador necesita menos parámetros (si es un modelo paramétrico) para ajustarse a los datos. Menos parámetros significan menos poder de representación, por lo que es menos probable que se sobreajuste. (2) ¿Cuál es el tipo de algoritmo de selección de características que mencionó usar antes de KNN? ¿Cómo sabe qué características serán más efectivas?
yasin.yazici
@ yasin.yazici: Digamos que está haciendo una clasificación de dígitos escritos a mano y tira todos menos el píxel superior izquierdo. ¿No acabas de reducir la cantidad de datos que tenías?
cfh
@chf No, solo reduce la cantidad de funciones. Para decir que el conjunto de datos es MNIST, hay 784 características para cada muestra y 60000 muestras. Si descarta alguna parte de sus funciones, todavía tiene 60000 muestras.
yasin.yazici
@ yasin.yazici: Mi punto es que el número de muestras no es lo mismo que la cantidad de datos. Los datos son la matriz completa de "muestras x características".
cfh
La selección de características puede (y a menudo lo hará) sobreajustar. Si está utilizando estudiantes regulares y no le importa la importancia de la función, entonces, a menos que tenga muchos datos y un esquema de validación sólido, no veo mucho uso para la selección de funciones.
Firebug
0

Creo que si no tiene una cantidad suficiente de puntos de datos para optimizar de manera sólida los parámetros, puede hacer una selección de características para eliminar algunas variables. Pero no sugeriría hacer demasiado, ya que puede perder la señal que desea modelar.

Además, es posible que haya ciertas características que no desee en sus modelos en función de la comprensión empresarial que desee eliminar.

DeepakML
fuente
0

En el caso del lazo, el preprocesamiento de los datos para eliminar las características molestas es bastante común. Para un artículo reciente que discute formas de hacer esto, consulte las Pruebas de detección de Xiang et al . Para problemas de lazo . La motivación común mencionada en los documentos que he visto es reducir la carga computacional de calcular la solución.

usuario795305
fuente