10 votos

¿Sigue siendo válida la validación cruzada cuando el tamaño de la muestra es pequeño?

Tengo lo que parece ser una confusión muy básica sobre la validación cruzada.

Digamos que estoy construyendo un clasificador binario lineal y quiero utilizar la validación cruzada para estimar la precisión de la clasificación. Imaginemos ahora que el tamaño de mi muestra $N$ es pequeño, pero el número $k$ de características es grande. Incluso cuando las características y las clases se generan aleatoriamente (es decir, la precisión de clasificación "real" debería ser del 50%), puede ocurrir que una de las características perfectamente predecir la clase binaria. Si $N$ es pequeño y $k >> N$ tal situación no es improbable. En este escenario obtendré una precisión de clasificación del 100% con cualquier cantidad de pliegues de validación cruzada, lo que obviamente no representa la potencia real de mi clasificador, en el sentido de que la probabilidad de clasificar correctamente una nueva muestra sigue siendo sólo del 50%. [Actualización equivocado . Véase mi respuesta más abajo para la demostración de por qué es incorrecto].

¿Existen métodos comunes para hacer frente a una situación así?

Por ejemplo, si quiero evaluar la diferencia estadística entre mis dos clases, podría ejecutar MANOVA, que en el caso de dos grupos se reduce a calcular la T de Hotelling. Incluso si algunas de las características producen diferencias univariantes significativas ("falsos positivos"), debería obtener una diferencia multivariante global no significativa. Sin embargo, no veo nada en el procedimiento de validación cruzada que pueda explicar esos falsos positivos ("falsos discriminantes"). ¿Qué me falta?

Una cosa que se me ocurre a mí, sería hacer una validación cruzada más funciones Por ejemplo, para seleccionar un subconjunto aleatorio de características (además de seleccionar aleatoriamente un conjunto de prueba) en cada pliegue de validación cruzada. Pero no creo que este enfoque se utilice a menudo (¿alguna vez?).

Actualización: Apartado 7.10.3 de " Los elementos del aprendizaje estadístico " titulado "¿Funciona realmente la validación cruzada?" se hace exactamente la misma pregunta y afirma que esa situación nunca puede darse (la precisión de la validación cruzada será del 50%, no del 100%). De momento no me convence, voy a hacer algunas simulaciones yo mismo. [Actualización: tienen razón; véase más abajo].

12voto

cbeleites Puntos 12461

No creo que haya mucha confusión en tus pensamientos, estás poniendo el dedo en un problema muy importante de la validación de clasificadores: no sólo el entrenamiento de clasificadores, sino también la validación de clasificadores tiene ciertas necesidades de tamaño de muestra.


Bueno, viendo la edición: puede que haya alguna confusión después de todo... Lo que te dicen los "Elementos" es que en la práctica la causa más probable de tal observación es que haya una fuga entre el entrenamiento y la prueba, por ejemplo porque los datos de "prueba" se utilizaron para optimizar el modelo (que es un formación tarea)

La sección de los Elementos se ocupa de un sesgo optimista causado por esto. Pero también existe la incertidumbre de la varianza e, incluso haciendo todas las divisiones correctamente, se pueden observar resultados extremos.


IIRC la problemática de la varianza no se discute en gran detalle en los Elementos (hay más que lo que los Elementos discuten en la sección 7.10.1), así que te daré un comienzo aquí:

Sí, puede ocurrir, y de hecho ocurre, que accidentalmente tengas un predictor que prediga a la perfección este pequeño conjunto de datos en particular (conjunto de entrenamiento y prueba). Puede que incluso obtenga una división que conduzca accidentalmente a resultados aparentemente perfectos, mientras que el error de resustitución sería > 0.

Esto también puede ocurrir con una validación cruzada correcta (y, por tanto, insesgada), ya que los resultados también están sujetos a varianza.

En mi humilde opinión es un problema que la gente no tenga en cuenta esta incertidumbre de la varianza (por el contrario, el sesgo se discute a menudo en gran longitud; he visto difícilmente cualquier papel que discute la incertidumbre de la varianza de sus resultados aunque en mi campo con generalmente < 100, con frecuencia incluso < 20 pacientes en un estudio es la fuente predominante de incertidumbre). No es tan difícil realizar algunas comprobaciones básicas de cordura que evitarían la mayoría de estos problemas.

Aquí hay dos puntos:

  • Con muy pocos casos de entrenamiento (muestras de entrenamiento, complejidad del modelo y número de variantes), los modelos se vuelven inestables. Su poder predictivo puede ser muy variable. Por término medio, no es tan bueno, pero puede serlo accidentalmente. verdaderamente Bien.
    Puede medir la influencia de la inestabilidad del modelo en las predicciones de forma muy sencilla utilizando los resultados de una $k$ -Validación cruzada doble: en cada iteración, cada caso se predice exactamente una vez. Como el caso permanece invariable, cualquier variación en estas predicciones se debe a la inestabilidad de los modelos sustitutos, es decir, a la reacción del modelo al intercambio de unos pocos casos de entrenamiento.
    Véase, por ejemplo, Beleites, C. & Salzer, R.: Assessing and improving the stability of chemometric models in small sample size situations, Anal Bioanal Chem, 390, 1261-1271 (2008).
    DOI: 10.1007/s00216-007-1818-6

    En mi opinión, comprobar si los modelos alternativos son estables es una comprobación de cordura que debería hacerse siempre en situaciones de muestras pequeñas. Sobre todo porque tiene un coste casi nulo: sólo necesita una agregación ligeramente diferente de los resultados de la validación cruzada (y $k$ -La validación cruzada doble debe iterarse de todos modos, a menos que se demuestre que los modelos son estables).

  • Como tú dices: Con muy pocos casos de prueba, sus éxitos y fracasos observados pueden estar por todas partes. Si calculas proporciones como la tasa de error o la tasa de aciertos, etc., también estarán por todas partes. Esto se conoce como que estas proporciones están sujetas a una alta varianza.
    Por ejemplo, si el modelo tiene realmente un porcentaje de aciertos del 50%, la probabilidad de observar 3 predicciones correctas de 3 es $0.5^3 = 12.5 \%$ (distribución binomial). Sin embargo, es posible calcular intervalos de confianza para proporciones, y éstos tienen en cuenta cuántos casos se analizaron. Hay mucha literatura sobre cómo calcularlos y qué aproximaciones funcionan bien o no en qué situaciones. Para el tamaño de muestra extremadamente pequeño de 3 casos de prueba de mi ejemplo:

    binom.confint (x=3, n=3, prior.shape1=1, prior.shape2=1)
    #           method x n mean     lower     upper
    # 1  agresti-coull 3 3  1.0 0.3825284 1.0559745  
    # 2     asymptotic 3 3  1.0 1.0000000 1.0000000  
    # 3          bayes 3 3  0.8 0.4728708 1.0000000  
    # 4        cloglog 3 3  1.0 0.2924018 1.0000000
    # 5          exact 3 3  1.0 0.2924018 1.0000000
    # 6          logit 3 3  1.0 0.2924018 1.0000000
    # 7         probit 3 3  1.0 0.2924018 1.0000000
    # 8        profile 3 3  1.0 0.4043869 1.0000000 # generates warnings
    # 9            lrt 3 3  1.0 0.5271642 1.0000000
    # 10     prop.test 3 3  1.0 0.3099881 0.9682443
    # 11        wilson 3 3  1.0 0.4385030 1.0000000

    Observará que hay bastante variación, sobre todo en el límite inferior. Esto es un indicador de que el tamaño de la muestra es tan pequeño que apenas se puede concluir nada a partir de los resultados de la prueba.
    Sin embargo, en la práctica apenas importa si el intervalo de confianza abarca desde "adivinar" hasta "perfecto" o desde "peor que adivinar" hasta "perfecto".

  • conclusión 1: pensar de antemano en la precisión que deben tener los resultados de rendimiento para permitir una interpretación útil. A partir de ahí, puede calcular aproximadamente el tamaño de la muestra (de prueba) necesaria.

  • conclusión 2: calcular intervalos de confianza para sus estimaciones de rendimiento

  • Para comparar modelos en función de predicciones correctas/erróneas, ni se te ocurra hacerlo con menos de varios cientos de casos de prueba para cada clasificador.
    Eche un vistazo a la prueba de McNemar (para situaciones emparejadas, es decir, puede probar los mismos casos con ambos clasificadores). Si no puedes hacer la comparación emparejada, busca "comparación de proporciones", necesitarás aún más casos, consulta el documento que enlazo más abajo para ver ejemplos.

  • Quizá le interese nuestro documento sobre estos problemas:
    Beleites, C. et al. : Planificación del tamaño de la muestra para modelos de clasificación, Anal Chim Acta, 760, 25-33 (2013). DOI: 10.1016/j.aca.2012.11.007 ; arXiv: 1211.1323


segunda actualización sobre la selección aleatoria de características: el bagging realizado para los bosques aleatorios utiliza regularmente esta estrategia. Fuera de ese contexto creo que es poco frecuente, pero es una posibilidad válida.

5voto

zowens Puntos 1417

Ya sé lo que pasa: Hastie et al. tenían (por supuesto) razón, y mi intuición estaba equivocada. He aquí la demostración de mi fallo lógico.

Supongamos que tenemos 10 muestras, las cinco primeras son de clase 1 y las cinco últimas de clase 2. Generemos 200 características aleatorias. Varios de ellos son propensos a predecir la clase perfectamente, los hice negrita en el siguiente gráfico:

Cross-Validation validity

Si realizamos las pruebas t entre clases utilizando cada una de estas tres características, obtenemos tres valores p significativos: 0,0047, 0,011 y 0,0039. Se trata, por supuesto, de falsos positivos debidos a una selección selectiva. Si realizamos una prueba de Hotelling utilizando las 200 características, obtenemos un p=0,61 no significativo, como era de esperar.

Ahora intentemos la validación cruzada. Hago una validación cruzada estratificada de 5 veces, sacando 1 muestra de cada clase para clasificar. El clasificador será LDA en las 200 características. Repito este procedimiento 100 veces con diferentes características aleatorias, y el número medio de clases correctamente decodificadas que obtengo es 4,9, es decir, ¡nivel de azar!

Pues bien, LDA con 10 clases y 200 características se ajusta mal. Seleccionemos sólo las características con separación perfecta de clases en la prueba de entrenamiento en cada pliegue de validación cruzada. La precisión media resultante es de 5,1, todavía un nivel de azar. ¿Por qué? Porque resulta que el número de características que utilizo en cada pliegue es mayor que el número de características "perfectas" de todo el conjunto de datos. Hay características que parecen perfectas en el conjunto de entrenamiento, pero que tienen un poder predictivo nulo en el conjunto de prueba. Y estropean la clasificación.

Este es exactamente el punto que no había apreciado antes.

Por último, sólo se pueden utilizar las características con perfecta separación de clases en todo el conjunto de datos . Entonces la precisión media es de 9,3, ¡pero esto es hacer trampa! Por supuesto, no se nos permite utilizar ningún conocimiento sobre el conjunto de datos al realizar la validación cruzada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X