¿Puedo realizar una búsqueda exhaustiva con validación cruzada para la selección de funciones?

8

He estado leyendo algunas de las publicaciones sobre selección de características y validación cruzada, pero todavía tengo preguntas sobre el procedimiento correcto.

Supongamos que tengo un conjunto de datos con 10 funciones y quiero seleccionar las mejores funciones. Supongamos también que estoy usando un clasificador vecino más cercano. ¿Puedo realizar una búsqueda exhaustiva mediante validación cruzada para estimar la tasa de error como guía para elegir las mejores funciones? Algo así como el siguiente pseudocódigo

for i=1:( 2^10 -1)
   error(i)= crossval(1-nn, selected_fetures(i))
end   

i=find(erro(i)==min(error(i));
selected_fetures= selected_features(i);

Lo que estoy tratando de explicar en este pseudocódigo es que estoy ejecutando la validación cruzada para todas las combinaciones posibles de características y elijo la combinación que da el error mínimo.

Creo que este procedimiento es correcto porque estoy realizando una búsqueda exhaustiva. La elección de las características no se basó en todo el conjunto de datos, sino en el error promedio en cada partición. ¿Estoy sobreajustando el modelo con tal selección de características?

Jorge Amaral
fuente

Respuestas:

10

Sí, es probable que termine con un ajuste excesivo en este caso, consulte mi respuesta a esta pregunta anterior . Lo importante a recordar es que la validación cruzada es una estimación del rendimiento de generalización basada en una muestra finita de datos. Como se basa en una muestra finita de datos, el estimador tiene una varianza distinta de cero, por lo que, en cierta medida, reducir el error de validación cruzada dará como resultado una combinación de opciones de modelo que realmente mejoran el error de generalización y las opciones de modelo que simplemente explotan peculiaridades aleatorias de la muestra particular de datos en la que se evalúa. Es probable que el último tipo de elección del modelo empeore el rendimiento de la generalización en lugar de mejorarlo.

El ajuste excesivo es un problema potencial siempre que minimice cualquier estadística basada en una muestra finita de datos, la validación cruzada no es diferente.

Dikran Marsupial
fuente
1
Quizás, pero la validación cruzada es un gran paso por encima de la resubstitutina, ya que evalúa el clasificador en un conjunto de datos no utilizados en el modelo ajustado.
Michael R. Chernick
2
Sí, es menos propenso al sobreajuste que el estimador de restitución, pero en mi experiencia todavía es generalmente un problema lo suficientemente grande como para que una búsqueda exhaustiva sea una mala idea. Millar en su monografía sobre "selección de subconjuntos en regresión" aconseja utilizar la regularización en lugar de la selección de características si el criterio predictivo es el rendimiento predictivo y la identificación de las características no es un objetivo principal (parafraseando un poco).
Dikran Marsupial
1
@ Michael No es CV lo que está mal, es la idea de minimizar estrictamente el error en un espacio de características usadas (o en el espacio de parámetros, que es una trampa relacionada). Incluso todo el conjunto de trenes es un subconjunto aleatorio de la realidad, por lo tanto, esta optimización es simplemente estocástica y debe tratarse en consecuencia, o seguramente terminará en una fluctuación no significativa; esto es claramente visible cuando se inicia el análisis completo. De esta manera, la única opción para una mejor precisión es una técnica de modelado robusta (regularizada o aleatoria) y para explicaciones explicativas, algunas pruebas de atributos son mejores que el ruido.
1
No estaba culpando a CV. El problema es la búsqueda exhaustiva, creo ...
Michael R. Chernick
Sí, valió la pena señalar que el CV es mucho mejor que la restitución para la selección de funciones, ya que eso a veces todavía se usa, pero el problema es la optimización excesiva.
Dikran Marsupial
0

Creo que este es un procedimiento válido para la selección de funciones que no es más propenso al sobreajuste que otros procedimientos de selección de funciones. El problema con este procedimiento es que tiene una gran complejidad computacional y apenas se puede usar para conjuntos de datos reales.

León
fuente
2
No creo que esto sea correcto. Si se logra la escasez a través de la regularización, por ejemplo, un enfoque LASSO, entonces el conjunto de subconjuntos de características que se pueden generar es probable que sea mucho más pequeño que el número investigado por una búsqueda exhaustiva. Esto significa que hay menos oportunidades de sobreajuste ya que el "espacio modelo" está más restringido. No recomendaría una búsqueda exhaustiva a menos que el conjunto de datos sea muy grande y el número de características sea muy pequeño (por supuesto, de todos modos, rápidamente se vuelve inviable computacionalmente con el número de características).
Dikran Marsupial
Estoy de acuerdo con los problemas que plantea Dikran en una búsqueda exhaustiva.
Michael R. Chernick
0

Creo que si seleccionas las funciones dentro de cada pliegue de la validación cruzada, estarás bien. Como se indica en los pósters anteriores, se sobreajustará en cualquier modelo utilizando las características seleccionadas obtenidas del procedimiento descrito anteriormente. Esto se debe a que todos los datos influyeron en la rutina de selección de características.

BGreene
fuente
1
Lamentablemente, esto también es incorrecto, es probable que surja el problema de un ajuste excesivo cada vez que minimiza una estadística sobre una muestra finita de datos. Si la estadística tiene una varianza distinta de cero, es inevitable cierto grado de sobreajuste si la estadística se minimiza por completo. Si realiza la selección de características de forma independiente en cada pliegue, la estimación de validación cruzada resultante es (casi) imparcial, pero eso no significa que el modelo no se ajuste demasiado, solo que la estimación de rendimiento explica los efectos del exceso -adecuado.
Dikran Marsupial