Número óptimo de pliegues en la validación cruzada de - pliegues : ¿es el CV sin licencia siempre la mejor opción?


47

Dejando a un lado las consideraciones de poder de cálculo, ¿hay alguna razón para creer que aumentar el número de pliegues en la validación cruzada conduce a una mejor selección / validación del modelo (es decir, cuanto mayor sea el número de pliegues, mejor)?

Llevando el argumento al extremo, ¿la validación cruzada de dejar uno fuera necesariamente conduce a mejores modelos que la validación cruzada -fold?K

Algunos antecedentes sobre esta pregunta: estoy trabajando en un problema con muy pocas instancias (p. Ej., 10 positivos y 10 negativos), y me temo que mis modelos pueden no generalizarse bien / se adaptarían con tan poca información.



Esta pregunta no es un duplicado porque se limita a pequeños conjuntos de datos y a "Consideraciones de poder de computación a un lado". Esta es una limitación severa, lo que hace que la pregunta sea inaplicable para aquellos con grandes conjuntos de datos y el algoritmo de entrenamiento con complejidad computacional al menos lineal en el número de instancias (o predicción en al menos la raíz cuadrada del número de instancias).
Serge Rogatch

Respuestas:


46

La validación cruzada Leave-one-out generalmente no conduce a un mejor rendimiento que K-fold, y es más probable que sea peor , ya que tiene una variación relativamente alta (es decir, su valor cambia más para diferentes muestras de datos que el valor para k-fold validación cruzada). Esto es malo en un criterio de selección de modelo, ya que significa que el criterio de selección de modelo puede optimizarse de manera que simplemente explote la variación aleatoria en la muestra particular de datos, en lugar de realizar mejoras genuinas en el rendimiento, es decir, es más probable que se ajuste demasiado El criterio de selección del modelo. La razón por la cual la validación cruzada de dejar uno fuera se usa en la práctica es que para muchos modelos se puede evaluar de manera muy económica como un subproducto de la adaptación del modelo.

Si el gasto computacional no es principalmente un problema, un mejor enfoque es realizar una validación cruzada k-fold repetida, donde el procedimiento de validación cruzada k-fold se repite con diferentes particiones aleatorias en k subconjuntos disjuntos cada vez. Esto reduce la varianza.

Si solo tiene 20 patrones, es muy probable que experimente un ajuste excesivo del criterio de selección del modelo, que es un obstáculo muy descuidado en las estadísticas y el aprendizaje automático (enchufe descarado: vea mi artículo sobre el tema). Puede que sea mejor elegir un modelo relativamente simple e intentar no optimizarlo de manera muy agresiva, o adoptar un enfoque bayesiano y promediar todas las opciones de modelos, ponderadas por su plausibilidad. La optimización en mi humilde opinión es la raíz de todo mal en las estadísticas, por lo que es mejor no optimizar si no es necesario, y optimizar con precaución siempre que lo haga.

Tenga en cuenta también que si va a realizar la selección del modelo, debe usar algo como la validación cruzada anidada si también necesita una estimación del rendimiento (es decir, debe considerar la selección del modelo como parte integral del procedimiento de ajuste del modelo y validar de forma cruzada que también).


8
+1. Me gusta su "optimización es la raíz de todo el mal en las estadísticas" mensaje ...
S. Kolassa - Restablecer Mónica

55
Gracias @DikranMarsupial. No entiendo del todo. ¿Por qué los modelos aprendidos con Leave-One-Out tienen una mayor varianza que con la validación cruzada k-fold regular ? Mi intuición me dice que, dado que a través de los pliegues solo estamos cambiando un punto de datos, los conjuntos de entrenamiento a través de los pliegues se superponen en gran medida, por lo que esperaría ver poca variación entre los modelos. O yendo en la otra dirección, en K-fold, si K es bajo, los conjuntos de entrenamiento para cada pliegue serían bastante diferentes y es más probable que los modelos resultantes sean diferentes. ¿Me equivoco?
Amelio Vazquez-Reina

Esa es una muy buena pregunta en sí misma, así que le sugiero que la haga como una nueva pregunta, ¡y pensaré cómo responderla!
Dikran Marsupial

Gracias @DikranMarsupial Seguí tu consejo y comencé una pregunta por separado aquí .
Amelio Vazquez-Reina

1
@DikranMarsupial Pensé que mencionaría aquí que he comenzado un hilo más inspirado por su comentario de "optimización en estadísticas" en esta respuesta. Su comentario me hizo ver el sobreajuste desde una perspectiva más amplia a la que estoy acostumbrado.
Amelio Vazquez-Reina

8

Elegir el número K se pliega considerando la curva de aprendizaje

Me gustaría argumentar que elegir el número apropiado de pliegues depende mucho de la forma y posición de la curva de aprendizaje, principalmente debido a su impacto en el sesgo . Este argumento, que se extiende al CV de dejar uno afuera, está tomado en gran parte del libro "Elementos del aprendizaje estadístico", capítulo 7.10, página 243.K

Para discusiones sobre el impacto de en la varianza ver aquíK

En resumen, si la curva de aprendizaje tiene una pendiente considerable en el tamaño del conjunto de entrenamiento dado, la validación cruzada de cinco o diez veces sobreestimará el verdadero error de predicción. Si este sesgo es un inconveniente en la práctica depende del objetivo. Por otro lado, la validación cruzada de dejar uno fuera tiene un sesgo bajo pero puede tener una gran varianza.

Una visualización intuitiva con un ejemplo de juguete.

Para comprender este argumento visualmente, considere el siguiente ejemplo de juguete donde estamos ajustando un polinomio de grado 4 a una curva senoidal ruidosa:

ingrese la descripción de la imagen aquí

Intuitivamente y visualmente, esperamos que este modelo funcione mal para pequeños conjuntos de datos debido al sobreajuste. Este comportamiento se refleja en la curva de aprendizaje donde graficamos error cuadrático medio frente al tamaño del entrenamiento junto con 1 desviación estándar. Tenga en cuenta que elegí trazar 1 - MSE aquí para reproducir la ilustración utilizada en ESL página 243±1±

ingrese la descripción de la imagen aquí

Discutiendo el argumento

El rendimiento del modelo mejora significativamente a medida que el tamaño del entrenamiento aumenta a 50 observaciones. Aumentar aún más el número a 200, por ejemplo, solo trae pequeños beneficios. Considere los siguientes dos casos:

  1. Si nuestro conjunto de entrenamiento tuviera 200 observaciones, la validación cruzada veces estimaría el rendimiento sobre un tamaño de entrenamiento de 160, que es prácticamente el mismo que el rendimiento para el tamaño del conjunto de entrenamiento 200. Por lo tanto, la validación cruzada no sufriría demasiados sesgos y aumentaría a valores mayores no traerán mucho beneficio ( gráfico de la izquierda )K5K

  2. Sin embargo, si el conjunto de entrenamiento tenía observaciones, la validación cruzada veces estimaría el rendimiento del modelo sobre conjuntos de entrenamiento de tamaño 40, y desde la curva de aprendizaje esto conduciría a un resultado sesgado. Por lo tanto, aumentar en este caso tenderá a reducir el sesgo. ( diagrama de la derecha ).5 K505K

ingrese la descripción de la imagen aquí

[Actualización] - Comentarios sobre la metodología

Puede encontrar el código para esta simulación aquí . El enfoque fue el siguiente:

  1. Genere 50,000 puntos a partir de la distribución donde se conoce la verdadera varianza deϵsin(x)+ϵϵ
  2. Iterar veces (p. Ej. 100 o 200 veces). En cada iteración, cambie el conjunto de datos volviendo a muestrear puntos de la distribución originalNiN
  3. Para cada conjunto de datos : i
    • Realizar validación cruzada K-fold para un valor deK
    • Almacene el error cuadrático medio (MSE) promedio en los pliegues K
  4. Una vez que se completa el ciclo sobre , calcule la media y la desviación estándar del MSE en los conjuntos de datos para el mismo valor dei KiiK
  5. Repita los pasos anteriores para todas las en el rango hasta LOOCV{ 5 , . . . , N }K{5,...,N}

Un enfoque alternativo es no volver a muestrear un nuevo conjunto de datos en cada iteración y, en su lugar, reorganizar el mismo conjunto de datos cada vez. Esto parece dar resultados similares.



@¡Gracias por el codigo! He ejecutado el código pero no entiendo cómo sabes el verdadero (el en tu código). También creo que su código será más compacto si define dos funciones, una para muestras de bootstrap (Shuffle = False), una para KFold (Shuffle = True) :)1 - 11MSE1112
meTchaikovsky

@me_Tchaikovsky Recuerde que el MSE del predictor puede descomponerse como y suponiendo que no haya sesgo cuando el modelo coincide con la función subyacente verdadera, entonces nos queda la varianza del término de error . La varianza del rv uniforme es así que en este caso ε ~ U ( - 0,5 , 0,5 ) 1 / 12 ( b - a ) 2 1 / 12MSE=Var+Bias2ϵU(.5,.5)1/12(ba)21/12
Xavier Bourret Sicotte
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.