Recientemente he estado leyendo mucho en este sitio (@Aniko, @Dikran Marsupial, @Erik) y en otros lugares sobre el problema del sobreajuste que ocurre con la validación cruzada - (Smialowski et al 2010 Bioinformática, Hastie, Elementos de aprendizaje estadístico). La sugerencia es que cualquier selección de características supervisadas (utilizando la correlación con las etiquetas de clase) realizada fuera de la estimación del rendimiento del modelo utilizando la validación cruzada (u otro método de estimación del modelo, como bootstrapping) puede resultar en un sobreajuste.
Esto me parece poco intuitivo: seguramente si selecciona un conjunto de características y luego evalúa su modelo utilizando solo las características seleccionadas mediante validación cruzada, obtendrá una estimación imparcial del rendimiento generalizado del modelo en esas características (esto supone que la muestra en estudio es representativa de la población)?
Con este procedimiento, por supuesto, no se puede reclamar un conjunto de características óptimo, pero ¿se puede informar el rendimiento del conjunto de características seleccionado en datos invisibles como válido?
Acepto que la selección de características basadas en todo el conjunto de datos puede provocar cierta fuga de datos entre los conjuntos de prueba y de tren. Pero si el conjunto de características es estático después de la selección inicial, y no se está realizando ningún otro ajuste, ¿seguramente es válido informar las métricas de rendimiento con validación cruzada?
En mi caso, tengo 56 funciones y 259 casos, por lo que #cases> #características. Las características se derivan de los datos del sensor.
Disculpas si mi pregunta parece derivada, pero este parece un punto importante para aclarar.
Editar: Al implementar la selección de características dentro de la validación cruzada en el conjunto de datos detallado anteriormente (gracias a las respuestas a continuación), puedo confirmar que la selección de características antes de la validación cruzada en este conjunto de datos introdujo un significativoparcialidad. Este sesgo / sobreajuste fue mayor cuando se hizo para una formulación de 3 clases, en comparación con la formulación de 2 clases. Creo que el hecho de que utilicé la regresión gradual para la selección de características aumentó este sobreajuste; para fines de comparación, en un conjunto de datos diferente pero relacionado, comparé una rutina de selección de características directas secuenciales realizada antes de la validación cruzada con los resultados que había obtenido previamente con la selección de características dentro de CV. Los resultados entre ambos métodos no difirieron dramáticamente. Esto puede significar que la regresión paso a paso es más propensa a un sobreajuste que el FS secuencial o puede ser una peculiaridad de este conjunto de datos.
fuente
Respuestas:
Si realiza la selección de características en todos los datos y luego realiza una validación cruzada, los datos de prueba en cada pliegue del procedimiento de validación cruzada también se usaron para elegir las características y esto es lo que sesga el análisis de rendimiento.
Considera este ejemplo. Generamos algunos datos objetivo lanzando una moneda 10 veces y registrando si cae como cara o cruz. A continuación, generamos 20 características volteando la moneda 10 veces para cada característica y anotamos lo que obtenemos. Luego realizamos la selección de características seleccionando la característica que coincide con los datos de destino lo más cerca posible y la usamos como nuestra predicción. Si luego validamos de forma cruzada, obtendremos una tasa de error esperada ligeramente inferior a 0.5. Esto se debe a que hemos elegido la función sobre la base de una correlación sobre el conjunto de entrenamiento y el conjunto de prueba en cada pliegue del procedimiento de validación cruzada. Sin embargo, la verdadera tasa de error será 0.5 ya que los datos objetivo son simplemente aleatorios. Si realiza la selección de características de forma independiente dentro de cada pliegue de la validación cruzada, el valor esperado de la tasa de error es 0.
La idea clave es que la validación cruzada es una forma de estimar el rendimiento de generalización de un proceso para construir un modelo, por lo que debe repetir todo el proceso en cada pliegue. De lo contrario, terminará con una estimación sesgada o una subestimación de la varianza de la estimación (o ambas).
HTH
Aquí hay un código MATLAB que realiza una simulación Monte-Carlo de esta configuración, con 56 características y 259 casos, para que coincida con su ejemplo, el resultado que proporciona es:
Estimador sesgado: borrar = 0.429210 (0.397683 - 0.451737)
Estimador imparcial: borrar = 0.499689 (0.397683 - 0.590734)
El estimador sesgado es aquel en el que la selección de características se realiza antes de la validación cruzada, el estimador imparcial es aquel en el que la selección de características se realiza independientemente en cada pliegue de la validación cruzada. Esto sugiere que el sesgo puede ser bastante severo en este caso, dependiendo de la naturaleza de la tarea de aprendizaje.
fuente
Para agregar una descripción ligeramente diferente y más general del problema:
Si realiza algún tipo de preprocesamiento basado en datos , p. Ej.
y desea utilizar la validación cruzada / validación cruzada (/ espera) para estimar el rendimiento del modelo final , el preprocesamiento basado en datos debe realizarse en los datos de entrenamiento sustituto, es decir, por separado para cada modelo sustituto.
Si el preprocesamiento basado en datos es del tipo 1., esto lleva a una validación cruzada "doble" o "anidada": la estimación del parámetro se realiza en una validación cruzada utilizando solo el conjunto de entrenamiento de la validación cruzada "externa". El ElemStatLearn tiene una ilustración ( https://web.stanford.edu/~hastie/Papers/ESLII.pdf Página 222 de impresión 5).
Puede decir que el preprocesamiento es realmente parte de la construcción del modelo. solo preprocesamiento que se realiza
se puede sacar del bucle de validación para guardar cálculos.
Entonces, al revés: si su modelo está completamente construido por el conocimiento externo al conjunto de datos en particular (por ejemplo, usted decide de antemano por su conocimiento experto que los canales de medición 63-79 no pueden ayudar a resolver el problema, por supuesto puede excluir estos canales , cree el modelo y valide de forma cruzada. Lo mismo, si hace una regresión PLS y decide por su experiencia que 3 variables latentes son una opción razonable (pero no juegue si 2 o 5 lv dan mejores resultados) entonces puede siga adelante con una validación normal fuera de arranque / cruzada.
fuente
Tratemos de hacerlo un poco intuitivo. Considere este ejemplo: tiene un binario dependiente y dos predictores binarios. Desea un modelo con solo un predictor. Ambos predictores tienen una probabilidad de decir 95% de ser igual al dependiente y una probabilidad de 5% de estar en desacuerdo con el dependiente.
Ahora, por casualidad en sus datos, un predictor es igual al dependiente de todos los datos en el 97% del tiempo y el otro solo en el 93% del tiempo. Escogerá el predictor con 97% y construirá sus modelos. En cada pliegue de la validación cruzada, tendrá el modelo dependiente = predictor, porque casi siempre es correcto. Por lo tanto, obtendrá un rendimiento cruzado previsto del 97%.
Ahora, podrías decir, ok, eso es solo mala suerte. Pero si los predictores se construyen como anteriormente, entonces tiene la posibilidad de que el 75% de al menos uno de ellos tenga una precisión> 95% en todo el conjunto de datos y ese es el que elegirá. Por lo tanto, tiene una probabilidad del 75% de sobreestimar el rendimiento.
En la práctica, no es nada trivial estimar el efecto. Es completamente posible que su selección de características seleccione las mismas características en cada pliegue como si lo hiciera en todo el conjunto de datos y luego no habrá sesgo. El efecto también se vuelve más pequeño si tiene muchas más muestras pero características. Puede ser instructivo usar ambas formas con sus datos y ver cómo difieren los resultados.
También puede reservar una cantidad de datos (digamos 20%), usar su forma y la forma correcta para obtener estimaciones de rendimiento mediante la validación cruzada en el 80% y ver qué predicción de rendimiento resulta más precisa cuando transfiere su modelo a 20 % de los datos reservados. Tenga en cuenta que para que esto funcione, su selección de características antes del CV también tendrá que hacerse solo en el 80% de los datos. De lo contrario, no simulará transferir su modelo a datos fuera de su muestra.
fuente