¿Por qué la estimación de CV del error de prueba subestima el error de prueba real?

10

Tengo entendido que la estimación de validación cruzada k-fold del error de prueba generalmente subestima el error de prueba real. Estoy confundido por qué este es el caso. ¡Veo por qué el error de entrenamiento es generalmente más bajo que el error de prueba, porque estás entrenando el modelo con los mismos datos en los que estás estimando el error! Pero ese no es el caso de la validación cruzada: el pliegue en el que mide el error se omite específicamente durante el proceso de capacitación.

Además, ¿es correcto decir que la estimación de validación cruzada del error de prueba está sesgada hacia abajo?

Rachel Kogan
fuente
1
¿Dónde ves esto declarado? ¿Puedes dar algunas referencias?
horaceT
1
(+1) Vi la misma declaración y creo que es correcta, pero tampoco entiendo la lógica
KevinKim,

Respuestas:

9

Para dar un ejemplo: informar solo el error de CV de un modelo es problemático en caso de que originalmente tenga varios modelos (cada uno con un cierto error de CV y ​​varianza de error), luego use este error para elegir el modelo más adecuado para su aplicación. Esto es problemático porque con cada modelo todavía tienes una cierta posibilidad de que tengas suerte / mala suerte (y obtengas mejores / peores resultados), y al elegir un modelo, es probable que también elijas el que tuvo más suerte. Por lo tanto, informar este error como estimación de error final tiende a ser demasiado optimista.

Si desea profundizar en los detalles: esta respuesta enlaza con algunos documentos fáciles de leer sobre este problema: Uso indebido de validación cruzada (informe de rendimiento para el mejor valor de hiperparámetro)

Como señala @cbeleites: esto es problemático en el caso de que uno use el error de CV k-fold obtenido para, por ejemplo, a) elegir el mejor modelo de múltiples modelos para usar, por ejemplo, diferentes hiperparámetros, que es parte del proceso de capacitación, yb) luego informa el mismo error que el error de prueba en lugar de usar un conjunto de prueba separado y retenido. Si, en cambio, pretendía solicitar el error CV puro en sí mismo, sin usarlo para elegir ningún modelo, es más probable que la respuesta de @cbeleites sea ​​lo que está buscando.

geekoverdose
fuente
Una vez más, el problema aquí es informar un error de capacitación (capacitación como en: esta estimación se usa en el proceso de obtención del modelo final) estimación de error de generalización, independientemente de si este error se calculó mediante validación cruzada, espera o lo que sea Otro método de estimación de errores.
cbeleites descontento con SX
1
@cbeleites Nuevamente, punto verdadero: por lo general, supongo que los resultados de CV se usarán de alguna manera para la selección del modelo (que para algunos es la razón de usar CV en primer lugar), por lo tanto, señale esto. He actualizado mi respuesta en consecuencia.
geekoverdose
9

k

Hacerlo correctamente significa que dividir en conjuntos de prueba y entrenamiento dentro de la validación cruzada en realidad conduce a casos de prueba que son verdaderamente independientes del modelo.

Sin embargo, hay una serie de dificultades que comprometen esta independencia . Dependiendo de cuán gravemente se vean comprometidos los datos de la prueba y cuánto se sobreajuste el modelo, esta falta de independencia significa que el error de validación cruzada se convierte en un error de entrenamiento. Es decir, en general, puede terminar con un sesgo optimista severo (subestimando el error de generalización real).
En mi humilde opinión, es importante comprender que la mayoría de estos problemas no son exclusivos de la validación cruzada, sino que se caracterizan mejor por la división incorrecta en el tren y el conjunto de pruebas : pueden (y suceden) lo mismo con otros esquemas de validación como la suspensión o la independencia conjuntos de pruebas que de hecho no son tan independientes como se supone.

Aquí hay ejemplos de los errores más comunes en la división que veo:

  • La respuesta de @egeoverdose da un ejemplo de uso descarado de una estimación de error de entrenamiento interno (!) como error de prueba.
    Más en general, cualquier tipo de estimación de error utilizado para la optimización del modelo basado en datos es un error de capacitación, ya que todavía hay capacitación en curso usando esta estimación de error.
  • Variables de confusión no tomadas en cuenta para la división.
    Una fila en la matriz de datos no constituye necesariamente un caso independiente, p. Ej.
    • Tratar mediciones repetidas del mismo caso / sujeto / paciente como "independientes"
    • en general, pasar por alto / ignorar la agrupación fuerte en los datos
    • no ser consciente de la deriva en curso en el proceso de generación de datos (futuros casos desconocidos versus casos desconocidos), ...

cbeleites descontentos con SX
fuente
0

Primero permítanme aclarar los términos utilizados en la pregunta según tengo entendido. Normalmente comenzamos con un conjunto de datos de entrenamiento, utilizamos la validación cruzada k-fold para probar diferentes modelos (o conjuntos de hiperparámetros) y seleccionamos el mejor modelo con el error CV más bajo. Entonces, la 'estimación de validación cruzada del error de prueba' significa usar el error CV más bajo como error de prueba, no solo el error CV de un modelo aleatorio (que es el caso discutido por cbeleites, pero no es lo que normalmente hacemos). El 'error de prueba real' en cuestión es el error que obtenemos al aplicar el mejor modelo de CV a un conjunto de datos de prueba infinito, suponiendo que podamos obtenerlo. El error de CV depende del conjunto de datos particular que tenemos, y el error de prueba real depende del mejor modelo de CV seleccionado, que también depende del conjunto de datos de entrenamiento. Entonces, la diferencia entre el error CV y ​​el error de prueba depende de diferentes conjuntos de datos de entrenamiento. Entonces la pregunta es, si repetimos el proceso anterior muchas veces con diferentes conjuntos de datos de entrenamiento y promediamos los dos errores respectivamente, ¿por qué el error CV promedio es menor que el error de prueba promedio, es decir, el error CV está sesgado hacia abajo? Pero antes de eso, ¿esto siempre sucede?

Normalmente es imposible obtener muchos conjuntos de datos de entrenamiento y conjuntos de datos de prueba que contienen filas infinitas. Pero es posible hacerlo utilizando datos generados por simulación. En el "Capítulo 7 Evaluación y selección del modelo" del libro "Los elementos del aprendizaje estadístico" de Trevor Hastie, et al. , incluye dicho experimento de simulación.

La conclusión es que, usando CV o bootstrap, "... la estimación del error de prueba para un conjunto de entrenamiento en particular no es fácil en general, dados solo los datos de ese mismo conjunto de entrenamiento". Al decir "no es fácil", significan que el error CV podría subestimarse o sobreestimarse el error de prueba real dependiendo de diferentes conjuntos de datos de entrenamiento, es decir, la variación causada por diferentes conjuntos de datos de entrenamiento es bastante grande. ¿Qué hay de sesgo? El kNN y el modelo lineal que probaron casi no están sesgados: el error CV sobreestima el error de prueba verdadero en un 0-4%, pero algunos modelos "como árboles, validación cruzada y correa de arranque pueden subestimar el error verdadero en un 10%, porque la búsqueda del mejor árbol se ve fuertemente afectada por el conjunto de validación ".

En resumen, para un conjunto de datos de entrenamiento en particular, el error CV podría ser mayor o menor que el error de prueba real. Para el sesgo, el error medio de CV podría variar de un poco más alto a un error de prueba verdadero medio, dependiendo de los métodos de modelado.

La razón de la subestimación, como se mencionó anteriormente, es que la selección de hiperparámetros para el mejor modelo depende en última instancia del conjunto de datos de entrenamiento particular que obtenemos. Un pequeño detalle, deje que los mejores hiperparámetros sean M1 en este conjunto de datos de entrenamiento en particular. Pero, M1 podría no ser el mejor hiperparámetro en otro conjunto de datos de entrenamiento, lo que significa que el error CV mínimo es menor que el error CV de M1. Por lo tanto, los errores CV esperados que obtenemos del proceso de capacitación son muy probablemente menores que los errores CV esperados de M1. La única vez que el error CV mínimo de un conjunto de datos de entrenamiento en particular no está sesgado es cuando el mejor modelo es siempre el mejor independientemente de los conjuntos de datos de entrenamiento. Por otro lado, el error CV también podría sobreestimar un poco el verdadero error de prueba, según lo discutido por cbeleites. Esto se debe a que el error CV k se obtiene al usar un poco menos de datos de entrenamiento para entrenar el modelo (para 10 cv cv, usar datos del 90%), se inclina hacia arriba contra el error verdadero, pero no mucho. Entonces, hay dos sesgos que van en direcciones diferentes. Para el método de modelado tiende al sobreajuste, el uso de un CV de menos veces, por ejemplo, 5 veces frente a 10 veces, podría dar como resultado un sesgo menor.

Dicho todo esto, no ayuda demasiado en la práctica: generalmente solo obtenemos un conjunto de datos 'particular'. Si mantenemos del 15% al ​​30% como datos de prueba, y seleccionamos el mejor modelo por CV en el resto como datos de entrenamiento, es probable que el error de CV sea diferente del error de prueba, ya que ambos difieren del error de prueba esperado. Podríamos sospechar si el error de CV es mucho menor que el error de prueba, pero no sabremos cuál está más cerca del verdadero error de prueba. La mejor práctica podría ser solo presentar ambas métricas.

Ben2018
fuente