Estimaciones de varianza en k-fold cross-validation


27

La validación cruzada K-fold se puede utilizar para estimar la capacidad de generalización de un clasificador dado. ¿Puedo (o debería) también calcular una varianza agrupada de todas las ejecuciones de validación para obtener una mejor estimación de su varianza?

Si no, ¿por qué?

He encontrado documentos que usan la desviación estándar agrupada en las ejecuciones de validación cruzada . También he encontrado artículos que declaran explícitamente que no existe un estimador universal para la varianza de validación . Sin embargo, también he encontrado documentos que muestran algunos estimadores de varianza para el error de generalización (todavía estoy leyendo y tratando de comprender este). ¿Qué hace la gente realmente (o informa) en la práctica?

EDITAR: cuando se utiliza CV para medir el error de clasificación bruto (es decir, una muestra se ha etiquetado correctamente o no; p. Ej., Verdadero o falso), entonces puede que no tenga sentido hablar de una varianza agrupada. Sin embargo, estoy hablando del caso en el que la estadística que estamos estimando tiene una variación definida. Entonces, para un pliegue dado, podemos terminar con un valor para la estadística y una estimación de varianza. No parece correcto descartar esta información y considerar solo la estadística promedio. Y aunque soy consciente de que podría construir una estimación de varianza utilizando métodos bootstrap, (si no estoy muy equivocado) hacerlo ignoraría las variaciones de pliegue y tomaría en cuenta solo las estimaciones estadísticas (además de requerir mucha más potencia de cálculo).


¿Calculó la varianza considerando las dos formas posibles de ver si difieren mucho entre sí?
zeferino

Sí, lo hice. En algunos experimentos hubo un cambio de aproximadamente un orden de magnitud entre la varianza y la varianza agrupada para las muestras de entrenamiento. No hubo mucha diferencia para las muestras de validación. Los cambios más grandes parecían estar asociados con modelos menos precisos.
Cesar

1
@ César: buena observación: sus modelos son muy inestables (alta variación entre iteraciones). En la clasificación (a menos que el clasificador sea peor que adivinar), las predicciones inestables conducirán a predicciones incorrectas. Un pensamiento ilustrativo para eso es que una desviación de una predicción correcta siempre estará en la dirección "incorrecta", no hay demasiado alto que se cancelaría con demasiado bajo.
cbeleites apoya a Monica el

1
@cbeleites: ¿no sería algo esperado entonces, ya que los grandes cambios de varianza ocurren principalmente con modelos que muestran tasas de error más altas? Por cierto, buena actualización en su respuesta. Todavía tengo que leerlo con más cuidado, pero ya estoy muy agradecido. Gracias.
Cesar

1
@ César: Thx. Claro que es de esperar, una forma menos ilustrativa de afirmar que es la fórmula de la varianza para las proporciones (ver mi respuesta): cuanto más extrema es la tasa de error real, menor es la varianza, la varianza máxima está en la tasa de error = 50%.
cbeleites apoya a Monica el

Respuestas:


13

Pregunta muy interesante, tendré que leer los documentos que me da ... Pero tal vez esto nos lleve a una respuesta:

Por lo general, abordo este problema de una manera muy pragmática: itero la validación cruzada k-fold con nuevas divisiones aleatorias y calculo el rendimiento de la manera habitual para cada iteración. Las muestras de prueba generales son las mismas para cada iteración, y las diferencias provienen de diferentes divisiones de los datos.

Esto informo, por ejemplo, como el percentil 5 al 95 del rendimiento observado wrt. intercambiando hasta muestras por nuevas muestras y analícelo como una medida para la inestabilidad del modelo.nk1

Nota al margen: de todos modos, no puedo usar fórmulas que necesiten el tamaño de la muestra. Como mis datos están agrupados o tienen una estructura jerárquica (muchas mediciones similares pero no repetidas del mismo caso, generalmente varias [cientos] ubicaciones diferentes del mismo espécimen), no sé el tamaño efectivo de la muestra.

comparación con bootstrapping:

  • Las iteraciones usan nuevas divisiones aleatorias.

  • la principal diferencia es volver a muestrear con (bootstrap) o sin reemplazo (cv).

  • el costo computacional es casi el mismo, ya que elegiría no de iteraciones de cv no de iteraciones de arranque / k, es decir, calcularía el mismo número total de modelos.

  • bootstrap tiene ventajas sobre cv en términos de algunas propiedades estadísticas (asintóticamente correcto, posiblemente necesite menos iteraciones para obtener una buena estimación)

  • sin embargo, con cv tienes la ventaja de que tienes garantizado que

    • la cantidad de muestras de entrenamiento distintas es la misma para todos los modelos (importante si desea calcular curvas de aprendizaje)
    • cada muestra se prueba exactamente una vez en cada iteración
  • algunos métodos de clasificación descartarán muestras repetidas, por lo que el arranque no tiene sentido

Variación para el rendimiento

respuesta corta: sí, tiene sentido hablar de la variación en una situación en la que solo existen resultados {0,1}.

Eche un vistazo a la distribución binomial (k = éxitos, n = pruebas, p = probabilidad real de éxito = promedio k / n):

σ2(k)=np(1p)

La varianza de las proporciones (como la tasa de aciertos, la tasa de error, la sensibilidad, el TPR, ..., usaré de ahora en adelante y para el valor observado en una prueba) es un tema que llena libros completos. .pp^

  • Fleiss: métodos estadísticos para tasas y proporciones
  • Forthofer y Lee: Bioestadística tiene una buena introducción.

Ahora, y por lo tanto:p^=kn

σ2(p^)=p(1p)n

Esto significa que la incertidumbre para medir el rendimiento del clasificador depende solo del rendimiento real p del modelo probado y del número de muestras de prueba.

En la validación cruzada, asumes

  1. que los k modelos "sustitutos" tienen el mismo rendimiento verdadero que el modelo "real" que generalmente construye a partir de todas las muestras. (El desglose de esta suposición es el conocido sesgo pesimista).

  2. que los k modelos "sustitutos" tienen el mismo rendimiento real (son equivalentes, tienen predicciones estables), por lo que se le permite agrupar los resultados de las k pruebas.
    Por supuesto, no solo se pueden agrupar los modelos k "sustitutos" de una iteración de cv, sino también los modelos ki de las iteraciones i de k-fold cv.

¿Por qué iterar?

Lo principal que le dicen las iteraciones es la inestabilidad del modelo (predicción), es decir, la varianza de las predicciones de diferentes modelos para la misma muestra.

Puede informar directamente la inestabilidad como, por ejemplo, la varianza en la predicción de un caso de prueba dado, independientemente de si la predicción es correcta o un poco más indirectamente como la varianza de para diferentes iteraciones cv.p^

Y sí, esta es información importante.

Ahora, si sus modelos son perfectamente estables, todos o producirían exactamente la misma predicción para una muestra dada. En otras palabras, todas las iteraciones tendrían el mismo resultado. La varianza de la estimación no se reduciría por la iteración (suponiendo que ). En ese caso, se cumple el supuesto 2 anterior y usted está sujeto solo a siendo n el número total de muestras analizadas en todos k pliegues del cv. En ese caso, no se necesitan iteraciones (que no sean para demostrar estabilidad). k n i t e r . c v n - 1 n σ 2 ( p ) = p ( 1 - p )nbootstrapkniter. cvn1nσ2(p^)=p(1p)n

Luego puede construir intervalos de confianza para el verdadero rendimiento partir del no observado de éxitos en las pruebas. Por lo tanto, estrictamente, no es necesario informar la incertidumbre de la varianza si se informan y . Sin embargo, en mi campo, no muchas personas son conscientes de eso o incluso tienen un control intuitivo de cuán grande es la incertidumbre con qué tamaño de muestra. Así que recomendaría informarlo de todos modos.k n p npknp^n

Si observa la inestabilidad del modelo, el promedio agrupado es una mejor estimación del rendimiento real. La variación entre las iteraciones es una información importante, y podría compararla con la variación mínima esperada para un conjunto de prueba de tamaño n con un rendimiento promedio de rendimiento real en todas las iteraciones.


¿Se itera con nuevas divisiones aleatorias, con reemplazo, como en bootstrap? ¿O repite la validación cruzada k-fold varias veces? Esto es interesante, porque no parece un programa de arranque, pero puede funcionar así. Pero, ¿cuántas réplicas realizas? Esto podría ser muy costoso fácilmente.
Cesar

@ César: es muy similar a bootstrap, vea la respuesta ampliada.
cbeleites apoya a Monica el

¿Cómo deja el CV el "mismo número de muestras de entrenamiento distintas" para cada modelo, pero el bootstrapping no? No lo sigo, ya que los "conjuntos de datos de réplica" de CV son una combinación diferente de observaciones: ¿cómo pueden proporcionar el mismo número de observaciones distintas? ¿Quizás está asumiendo que cada registro es distinto en el conjunto de entrenamiento original?
probabilityislogic

@probabilityislogic: los conjuntos de datos de réplica de CV son más pequeños que el conjunto de datos original. Por lo tanto, se pueden producir diferentes réplicas de este tipo incluso con remuestreo sin reemplazo. Al volver a muestrear con reemplazo, puede dibujar el mismo registro varias veces. Por lo tanto, el número de registros únicos puede variar. Sí, supongo que los registros originales son distintos. Para mantener la independencia estadística, que es crucial para muchas aplicaciones, el remuestreo debe realizarse en el nivel más alto de la jerarquía de datos. (Por ejemplo, trabajo con datos de pacientes con cientos de filas para cada paciente => muestrear pacientes)
cbeleites apoya a Monica el

1
El problema con la estimación de la varianza (y luego con los intervalos de confianza) es que los modelos y pruebas de validación cruzada (sobre iteraciones) no son independientes: al final solo tiene casos independientes. Los modelos no deberían ser independientes en absoluto; de hecho, la evaluación habitual de CV supone que son iguales. Pero independientemente de cuántas iteraciones tenga, cada caso ya se ha probado en la primera iteración. Y siempre está la cuestión de cuán representativo es su pequeño conjunto de datos. n
cbeleites apoya a Monica el

1

Recuerde que el CV es solo una estimación y nunca puede representar el error de generalización "real". Dependiendo del tamaño de su muestra (lo que afectará su número de pliegues o tamaño de pliegue), puede verse severamente limitado en su capacidad para calcular cualquier estimación de parámetros de la distribución del error de generalización. En mi opinión (y lo he visto en varios libros de texto, 'Knowledge Discovery with Support Vector Machines'-Lutz Hamel) puedes hacer una variante de arranque de CV para estimar la distribución del error de generalización, pero un estándar 10- 1 (por ejemplo) una vez apagado CV no le dará suficientes puntos de datos para hacer inferencias sobre el verdadero error gen. Bootstrapping requiere que tome múltiples muestras con reemplazo de su entrenamiento / prueba / val haciendo efectivamente múltiples (digamos 1000) 10-1 (o lo que sea) pruebas de CV. Luego, toma su distribución de promedios de muestra para cada prueba de CV como una estimación de la distribución de muestreo de la media para la población de errores de CV y ​​a partir de esto puede estimar parámetros de distribución, es decir, media, mediana, std min max Q1 Q3, etc. Es un poco de trabajo, y en mi opinión, solo es realmente necesario si su aplicación es lo suficientemente importante / arriesgada como para garantizar el trabajo adicional. es decir, tal vez en un entorno de marketing en el que la empresa simplemente está contenta de ser mejor que aleatoria, entonces tal vez no sea necesaria. PERO si está tratando de evaluar las reacciones de los pacientes a medicamentos de alto riesgo o predecir expectativas de ingresos para grandes inversiones, puede ser prudente llevarlo a cabo.


Es una estimación, pero podría decirse sobre prácticamente cualquier uso de una estadística. Sin embargo, cuando cada pliegue ya tiene una estimación de varianza, no parece correcto descartar esta información. He actualizado la pregunta con aclaraciones.
Cesar

Quizás no lo entiendo. Realmente no entiendo por qué estás agonizando por la variación de un solo pliegue
clancy

Ejecutar un solo CV de 10 veces no es exactamente barato para el problema particular que estoy tratando de abordar. Tiene razón, podría estimar la varianza tomando múltiples muestras con reemplazo como en bootstrap. Pero tomar una gran cantidad de CV, incluso unos pocos cientos, podría ser muy poco práctico en mi caso. Estoy buscando una forma (si hay alguna) de combinar estimaciones de varianza de pliegue individuales para poder al menos reducir la cantidad de muestras de bootstrap necesarias. Y además, curiosidad.
Cesar

Ah bien. Quizás entonces la varianza de cada una de las medias de 10 veces de la media total de veces sea una variable aleatoria seleccionada de la distribución de muestreo para las variaciones ... (que creo que es un chi sq dist o F dist)
clancy

@clancy: con 10-1 ¿te refieres a un cv de dejar uno para n = 10 muestras? Tenga en cuenta que para las iteraciones de dejar uno fuera no tiene sentido.
cbeleites apoya a Monica el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.