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?
fuente
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.
fuente
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.
fuente