¿Cómo juzgar si un modelo de aprendizaje automático supervisado está sobreajustado o no?


27

¿Alguien puede decirme cómo juzgar si un modelo de aprendizaje automático supervisado está sobreajustado o no? Si no tengo un conjunto de datos de validación externo, quiero saber si puedo usar ROC de validación cruzada 10 veces para explicar el sobreajuste. Si tengo un conjunto de datos de validación externo, ¿qué debo hacer a continuación?

Respuestas:


29

En resumen: validando su modelo. La razón principal de la validación es afirmar que no se produce un sobreajuste y estimar el rendimiento generalizado del modelo.

Overfit

Primero echemos un vistazo a lo que realmente es el sobreajuste. Los modelos normalmente están entrenados para ajustarse a un conjunto de datos minimizando alguna función de pérdida en un conjunto de entrenamiento. Sin embargo, existe un límite en el que minimizar este error de entrenamiento ya no beneficiará el rendimiento real de los modelos, sino que solo minimizará el error en el conjunto específico de datos. Esto esencialmente significa que el modelo se ha ajustado demasiado a los puntos de datos específicos en el conjunto de entrenamiento, tratando de modelar patrones en los datos que se originan del ruido. Este concepto se llama sobreajuste . A continuación, se muestra un ejemplo de sobreajuste donde se ve el conjunto de entrenamiento en negro y un conjunto más grande de la población real en el fondo. En esta figura, puede ver que el modelo azul está demasiado ajustado al conjunto de entrenamiento, modelando el ruido subyacente. ingrese la descripción de la imagen aquí

Para juzgar si un modelo está sobreajustado o no, debemos estimar el error generalizado (o rendimiento) que el modelo tendrá en los datos futuros y compararlo con nuestro rendimiento en el conjunto de entrenamiento. La estimación de este error se puede hacer de varias maneras diferentes.

División de conjunto de datos

El enfoque más directo para estimar el rendimiento generalizado es dividir el conjunto de datos en tres partes, un conjunto de capacitación, un conjunto de validación y un conjunto de prueba. El conjunto de entrenamiento se usa para entrenar el modelo para que se ajuste a los datos, el conjunto de validación se usa para medir las diferencias en el rendimiento entre los modelos para seleccionar el mejor y el conjunto de prueba para afirmar que el proceso de selección del modelo no se ajusta demasiado al primero. dos conjuntos.

Para estimar la cantidad de sobreajuste, simplemente evalúe sus métricas de interés en el conjunto de pruebas como último paso y compárelo con su rendimiento en el conjunto de entrenamiento. Usted menciona ROC pero, en mi opinión, también debe mirar otras métricas, como por ejemplo, un puntaje más brillante o un gráfico de calibración para garantizar el rendimiento del modelo. Por supuesto, esto depende de su problema. Hay muchas métricas, pero esto no viene al caso aquí.

Este método es muy común y respetado, pero impone una gran demanda a la disponibilidad de datos. Si su conjunto de datos es demasiado pequeño, probablemente perderá mucho rendimiento y sus resultados estarán sesgados en la división.

Validación cruzada

Una forma de evitar el desperdicio de una gran parte de los datos para la validación y la prueba es utilizar la validación cruzada (CV) que estima el rendimiento generalizado utilizando los mismos datos que se utilizan para entrenar el modelo. La idea detrás de la validación cruzada es dividir el conjunto de datos en un cierto número de subconjuntos, y luego usar cada uno de estos subconjuntos como conjuntos de prueba extendidos a la vez mientras se usa el resto de los datos para entrenar el modelo. Al promediar la métrica en todos los pliegues, obtendrá una estimación del rendimiento del modelo. El modelo final se entrena generalmente usando todos los datos.

Sin embargo, la estimación de CV no es imparcial. Pero cuanto más pliegues use, menor será el sesgo, pero en su lugar obtendrá una mayor varianza.

Al igual que en la división del conjunto de datos, obtenemos una estimación del rendimiento del modelo y para estimar el sobreajuste, simplemente compara las métricas de tu CV con las obtenidas al evaluar las métricas de tu conjunto de entrenamiento.

Oreja

La idea detrás de bootstrap es similar a CV, pero en lugar de dividir el conjunto de datos en partes, introducimos aleatoriedad en el entrenamiento al extraer conjuntos de entrenamiento de todo el conjunto de datos repetidamente con reemplazo y realizar la fase de entrenamiento completo en cada una de estas muestras de bootstrap.

La forma más simple de validación de bootstrap simplemente evalúa las métricas de las muestras que no se encuentran en el conjunto de entrenamiento (es decir, las que quedan fuera) y promedia todas las repeticiones.

Este método le dará una estimación del rendimiento del modelo que, en la mayoría de los casos, es menos parcial que el CV. Una vez más, comparándolo con el rendimiento de su conjunto de entrenamiento y obtendrá el sobreajuste.

Hay formas de mejorar la validación de arranque. Se sabe que el método .632+ proporciona estimaciones mejores y más robustas del rendimiento generalizado del modelo, teniendo en cuenta el sobreajuste. (Si está interesado, el artículo original es una buena lectura: Mejoras en la validación cruzada: el método Bootstrap 632+ )

Espero que esto responda tu pregunta. Si está interesado en la validación del modelo, le recomiendo leer la parte sobre validación en el libro Los elementos del aprendizaje estadístico: minería de datos, inferencia y predicción que está disponible gratuitamente en línea.


2
Tenga en cuenta que su terminología de validación vs. prueba no se sigue en todos los campos. Por ejemplo, en mi campo (química analítica) la validación es un procedimiento que debería probar que el modelo funciona bien (y medir qué tan bien funciona). Se realiza con el modelo final , no se permiten más cambios después (o, si lo hace, debe validar nuevamente con datos independientes). Entonces llamaría a su conjunto de validación un "conjunto de prueba interna" o "conjunto de prueba de optimización". Los datos de prueba "externos" no evitan el sobreajuste, pero pueden usarse para medir el alcance del sobreajuste.
cbeleites apoya a Monica el

Ok, no tengo experiencia en tu campo. Gracias por la aclaración. Probablemente sea lo mismo en otros campos también. Simplemente utilicé la terminología utilizada en el libro al que me vinculé al final. Espero que no sea demasiado confuso.
mientras que el

7

Aquí le mostramos cómo puede estimar el alcance del sobreajuste:

  • Obtenga un estimado de error interno. O resubstitutio (= predecir datos de entrenamiento), o si realiza una "validación" cruzada interna para optimizar los hiperparámetros, también esa medida sería de interés.
  • Obtenga una estimación de error de conjunto de prueba independiente. Por lo general, se vuelve a muestrear (se recomienda la validación cruzada iterativa o fuera de lugar *). Pero debe tener cuidado de que no se produzcan fugas de datos. Es decir, el ciclo de remuestreo debe recalcular todos los pasos que tienen cálculos que abarcan más de un caso. pasos de procesamiento como el centrado, el escalado, etc. Además, asegúrese de dividir en el nivel más alto si tiene una estructura de datos "jerárquica" (también conocida como "agrupada"), como mediciones repetidas de, por ejemplo, el mismo paciente (=> muestrear pacientes )
  • Luego compare cuánto mejor se ve la estimación del error "interno" que la independiente.

Aquí hay un ejemplo:
sobreajuste
Trefferrate = tasa de aciertos (% de clasificación correcta), Variablenzahl = número de variables (= complejidad del modelo)
Símbolos:. resubstitución, + estimación interna de omisión del optimizador de hiperparámetros, o validación cruzada externa independiente a nivel del paciente

Esto funciona con ROC, o medidas de rendimiento como la puntuación de Brier, la sensibilidad, la especificidad, ...

* No recomiendo .632 o .632+ bootstrap aquí: ya se mezclan en el error de resustitución: de todos modos puede calcularlos más tarde a partir de sus estimaciones de resubstitución y fuera de arranque.


0

El sobreajuste es simplemente la consecuencia directa de considerar los parámetros estadísticos y, por lo tanto, los resultados obtenidos, como una información útil sin verificar que no se obtuvieron de forma aleatoria. Por lo tanto, para estimar la presencia de sobreajuste, tenemos que usar el algoritmo en una base de datos equivalente a la real pero con valores generados aleatoriamente, repitiendo esta operación muchas veces podemos estimar la probabilidad de obtener resultados iguales o mejores de manera aleatoria . Si esta probabilidad es alta, lo más probable es que estemos en una situación de sobreajuste. Por ejemplo, la probabilidad de que un polinomio de cuarto grado tenga una correlación de 1 con 5 puntos aleatorios en un plano es del 100%, por lo que esta correlación es inútil y estamos en una situación de sobreajuste.

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.