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).
Respuestas:
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.nk−1
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
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):
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. .p p^
Ahora, y por lo tanto:p^=kn
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
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).
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 )nbootstrap k⋅niter. cv n−1≈n σ2(p^)=p(1−p)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 np k n p^ 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.
fuente
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.
fuente