La construcción de un modelo de aprendizaje automático no se trata solo de alimentar los datos, hay muchas deficiencias que afectan la precisión de cualquier modelo. Sobreajuste en es una de esas deficiencias en el aprendizaje automático que dificulta la precisión y el rendimiento del modelo. En este artículo se tratan los siguientes temas:
- ¿Qué es el sobreajuste en el aprendizaje automático?
- Ejemplos de sobreajuste
- Señal vs ruido
- ¿Qué es Underfitting?
- ¿Cómo detectar el sobreajuste?
- Cómo evitar el sobreajuste en el aprendizaje automático
- ¿Qué es Bondad de ajuste?
- La compensación entre sesgo y varianza
¿Qué es el sobreajuste en el aprendizaje automático?
Se dice que un modelo estadístico está sobreajustado cuando lo alimentamos con muchos más datos de los necesarios. Para que se pueda identificar, imagina que intentas ponerte ropa de gran tamaño.
Cuando un modelo se ajusta a más datos de los que realmente necesita, comienza a captar datos ruidosos y valores inexactos en los datos. Como resultado, la eficiencia y precisión del modelo disminuyen. Echemos un vistazo a algunos ejemplos de sobreajuste para comprender cómo sucede realmente.
Ejemplos de sobreajuste
Ejemplo 1
Si tomamos un ejemplo de simple regresión lineal , entrenar los datos consiste en encontrar el costo mínimo entre la línea de mejor ajuste y los puntos de datos. Pasa por una serie de iteraciones para encontrar el mejor ajuste óptimo, minimizando el costo. Aquí es donde entra en juego el sobreajuste.
La línea que se ve en la imagen de arriba puede dar un resultado muy eficiente para un nuevo punto de datos. En el caso de sobreajuste, cuando ejecutamos el algoritmo de entrenamiento en el conjunto de datos, permitimos que el costo se reduzca con cada número de iteraciones.
Ejecutando esto durante demasiado tiempo significará un costo reducido, pero también se ajustará a los datos ruidosos del conjunto de datos. El resultado se parecería al gráfico siguiente.
Esto puede parecer eficaz, pero en realidad no lo es. El objetivo principal de un algoritmo como regresión lineal es encontrar una tendencia dominante y ajustar los puntos de datos en consecuencia. Pero en este caso, la línea se ajusta a todos los puntos de datos, lo cual es irrelevante para la eficiencia del modelo en la predicción de resultados óptimos para nuevos puntos de datos de entrada.
Consideremos ahora un ejemplo más descriptivo con la ayuda de un enunciado de problema.
Ejemplo 2
Planteamiento del problema: Consideremos que queremos predecir si un jugador de fútbol conseguirá un puesto en un club de fútbol de nivel 1 en función de su rendimiento actual en la liga de nivel 2.
Ahora imagina, entrenamos y ajustamos el modelo con 10,000 jugadores con resultados. Cuando tratamos de predecir el resultado en el conjunto de datos original, digamos que obtuvimos una precisión del 99%. Pero la precisión en un conjunto de datos diferente es de alrededor del 50 por ciento. Esto significa que el modelo no se generaliza bien a partir de nuestros datos de entrenamiento y datos invisibles.
Así es como se ve el sobreajuste. Es un problema muy común en Machine Learning e incluso en ciencia de datos. Ahora entendamos la señal y el ruido.
Señal vs ruido
En el modelado predictivo, la señal se refiere al verdadero patrón subyacente que ayuda al modelo a aprender los datos. Por otro lado, el ruido es datos irrelevantes y aleatorios en el conjunto de datos. Para comprender el concepto de ruido y señal, tomemos un ejemplo de la vida real.
Supongamos que queremos modelar la edad frente a la alfabetización entre los adultos. Si tomamos muestras de una gran parte de la población, encontraremos una relación clara. Esta es la señal, mientras que el ruido interfiere con la señal. Si hacemos lo mismo con una población local, la relación se volverá turbia. Se vería afectado por valores atípicos y aleatoriedad, por ejemplo, un adulto fue a la escuela temprano o algún adulto no podría pagar la educación, etc.
Hablando de ruido y señal en términos de aprendizaje automático, un buen algoritmo de aprendizaje automático separará automáticamente las señales del ruido. Si el algoritmo es demasiado complejo o ineficaz, es posible que también aprenda el ruido. Por lo tanto, sobreajuste del modelo. También entendamos el desajuste en el aprendizaje automático.
¿Qué es Underfitting?
Para evitar un sobreajuste, podríamos detener el entrenamiento en una etapa anterior. Pero también puede hacer que el modelo no pueda aprender lo suficiente de los datos de entrenamiento, por lo que puede tener dificultades para capturar la tendencia dominante. Esto se conoce como desajuste. El resultado es el mismo que el sobreajuste, la ineficiencia en la predicción de resultados.
Ahora que hemos entendido qué es realmente el desajuste y el sobreajuste en Machine Learning, intentemos comprender cómo podemos detectar el sobreajuste en Machine Learning.
¿Cómo detectar el sobreajuste?
El principal desafío del sobreajuste es estimar la precisión del rendimiento de nuestro modelo con nuevos datos. No podríamos estimar la precisión hasta que la probemos.
Para abordar este problema, podemos dividir el conjunto de datos inicial en conjuntos de datos de prueba y entrenamiento separados. Con esta técnica, podemos aproximarnos realmente qué tan bien funcionará nuestro modelo con los nuevos datos.
Entendamos esto con un ejemplo, imaginemos que obtenemos una precisión del 90% en el conjunto de entrenamiento y una precisión del 50% en el conjunto de prueba. Entonces, automáticamente sería una bandera roja para el modelo.
Otra forma de detectar el sobreajuste es comenzar con un modelo simplista que servirá como punto de referencia.
Con este enfoque, si prueba algoritmos más complejos, podrá comprender si la complejidad adicional vale la pena para el modelo o no. También se conoce como Prueba de la navaja de Occam , básicamente elige el modelo simplista en caso de rendimiento comparable en el caso de dos modelos. Aunque detectar el sobreajuste es una buena práctica,pero también existen varias técnicas para evitar el sobreajuste. Echemos un vistazo a cómo podemos evitar el sobreajuste en Machine Learning.
¿Cómo evitar el sobreajuste en el aprendizaje automático?
Hay varias técnicas para evitar el sobreajuste en Machine Learning que se enumeran a continuación.
1. Validación cruzada
Una de las funciones más poderosas para evitar / prevenir el sobreajuste es la validación cruzada. La idea detrás de esto es usar los datos de entrenamiento inicial para generar mini train-test-splits, y luego usar estos splits para ajustar su modelo.
En una validación estándar de k-fold, los datos se dividen en k-subconjuntos también conocidos como folds. Después de esto, el algoritmo se entrena iterativamente en k-1 pliegues mientras usa los pliegues restantes como el conjunto de prueba, también conocido como pliegue retenido.
La validación cruzada nos ayuda a ajustar los hiperparámetros solo con el conjunto de entrenamiento original. Básicamente, mantiene el conjunto de prueba por separado como un verdadero conjunto de datos invisibles para seleccionar el modelo final. Por lo tanto, evitar el sobreajuste por completo.
2. Entrenamiento con más datos
Es posible que esta técnica no funcione todas las veces, como también hemos discutido en el ejemplo anterior, donde el entrenamiento con una cantidad significativa de población ayuda al modelo. Básicamente, ayuda al modelo a identificar mejor la señal.
Pero en algunos casos, el aumento de los datos también puede significar alimentar más ruido al modelo. Cuando entrenamos el modelo con más datos, debemos asegurarnos de que los datos estén limpios y libres de aleatoriedad e inconsistencias.
3. Eliminación de funciones
Aunque algunos algoritmos tienen una selección automática de funciones. Para un número significativo de aquellos que no tienen una selección de características incorporada, podemos eliminar manualmente algunas características irrelevantes de las características de entrada para mejorar la generalización.
Una forma de hacerlo es derivar una conclusión sobre cómo encaja una característica en el modelo. Es bastante similar a depurar el código línea por línea.
En caso de que una característica no pueda explicar la relevancia en el modelo, simplemente podemos identificar esas características. Incluso podemos usar algunas heurísticas de selección de características para un buen punto de partida.
4. Detención anticipada
Cuando el modelo se está entrenando, realmente puede medir qué tan bien se desempeña el modelo en función de cada iteración. Podemos hacer esto hasta un punto en el que las iteraciones mejoren el rendimiento del modelo. Después de esto, el modelo sobreajusta los datos de entrenamiento a medida que la generalización se debilita después de cada iteración.
Entonces, básicamente, la detención anticipada significa detener el proceso de entrenamiento antes de que el modelo pase el punto en el que el modelo comienza a sobreajustarse a los datos de entrenamiento. Esta técnica se utiliza principalmente en aprendizaje profundo .
5. Regularización
Básicamente significa forzar artificialmente su modelo a ser más simple mediante el uso de una gama más amplia de técnicas. Depende totalmente del tipo de alumno que estemos usando. Por ejemplo, podemos podar un , use un abandono en un red neuronal o agregue un parámetro de penalización a la función de costo en regresión.
Muy a menudo, la regularización también es un hiperparámetro. Significa que también se puede ajustar mediante validación cruzada.
6. Ensamblaje
Esta técnica básicamente combina predicciones de diferentes modelos de Machine Learning. A continuación se enumeran dos de los métodos más comunes para ensamblar:
El embolsado intenta reducir la posibilidad de sobreajuste de los modelos
Impulsar los intentos de mejorar la flexibilidad predictiva de modelos más simples
Aunque ambos son métodos conjuntos, el enfoque comienza totalmente en direcciones opuestas. Bagging usa modelos base complejos e intenta suavizar sus predicciones mientras que el impulso usa modelos base simples e intenta aumentar su complejidad agregada.
¿Qué es Bondad de ajuste?
En el modelado estadístico, la bondad del ajuste se refiere a qué tan cerca los resultados o los valores predichos coinciden con los valores observados o verdaderos.Un modelo que ha aprendido el ruido en lugar de la señal está sobreajustado porque se ajustará al conjunto de datos de entrenamiento, pero tendrá una menor eficiencia con el nuevo conjunto de datos.
El compromiso entre sesgo y variación
Tanto la varianza como el sesgo son formas de error de predicción en . La compensación entre alta varianza y alto sesgo es un concepto muy importante en estadística y aprendizaje automático. Este es un concepto que afecta a todos los algoritmos supervisados de Machine Learning.
La compensación de sesgo-varianza tiene un impacto muy significativo en la determinación de la complejidad, el desajuste y el sobreajuste de cualquier modelo de aprendizaje automático.
Parcialidad
No es más que la diferencia entre los valores predichos y los valores reales o verdaderos en el modelo. No siempre es fácil para el modelo aprender de señales bastante complejas.
Imaginemos encajar un regresión lineal a un modelo con datos no lineales. No importa qué tan eficientemente el modelo aprenda las observaciones, no modelará las curvas de manera eficiente. Se lo conoce como desajuste.
Diferencia
Se refiere a la sensibilidad del modelo a conjuntos específicos en los datos de entrenamiento. Un algoritmo de alta varianza producirá un modelo extraño que es drásticamente diferente del conjunto de entrenamiento.
Imagine un algoritmo que se ajuste al modelo sin restricciones y súper flexible, también aprenderá del ruido en el conjunto de entrenamiento que causa el sobreajuste.
Compensación de sesgo-varianza
Un algoritmo de aprendizaje automático no puede percibirse como un método de una sola vez para entrenar el modelo, sino que es un proceso repetitivo.
Los algoritmos de baja varianza y alto sesgo son menos complejos, con una estructura simple y rígida.
Entrenarán los modelos que son consistentes, pero inexactos en promedio.
Estos incluyen algoritmos lineales o paramétricos, como regresión, , etc.
Los algoritmos de alta varianza y bajo sesgo tienden a ser más complejos, con una estructura flexible.
Entrenarán los modelos que son inconsistentes pero precisos en promedio.
diferencia entre pasar por valor y pasar por referencia en java
Estos incluyen algoritmos no lineales o no paramétricos como , , etc.
Esto nos lleva al final de este artículo donde hemos aprendido el sobreajuste en el aprendizaje automático y sobre diversas técnicas para evitarlo. Espero que tengas claro todo lo que se ha compartido contigo en este tutorial.
Si encuentra relevante este artículo sobre 'Sobreajuste en el aprendizaje automático', consulte la una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.
Estamos aquí para ayudarlo en cada paso de su viaje y crear un plan de estudios diseñado para estudiantes y profesionales que desean ser un . El curso está diseñado para darle una ventaja en la programación de Python y capacitarlo para los conceptos básicos y avanzados de Python junto con varios me gusta , , etc.
Si tiene alguna pregunta, no dude en hacer todas sus preguntas en la sección de comentarios de 'Sobreajuste en el aprendizaje automático' y nuestro equipo estará encantado de responder.