Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Sobreajuste | Elegir el Mejor Modelo
Regresión Lineal con Python

Sobreajuste

Desliza para mostrar el menú

Sobreajuste

Considera las dos líneas de regresión a continuación. ¿Cuál es mejor?

EjemploDeSobreajuste

Las métricas sugieren que el segundo modelo es mejor, por lo que lo usamos para predecir X_new = [0.2, 0.5, 2.7]. Pero después de comparar las predicciones con los valores reales, el primer modelo tiene un mejor desempeño.

Predicción de sobreajuste

Esto ocurre porque el segundo modelo sobreajusta: es demasiado complejo y se ajusta demasiado a los datos de entrenamiento, sin lograr generalizar a nuevos casos.

Subajuste

El subajuste ocurre cuando un modelo es demasiado simple para ajustarse incluso a los datos de entrenamiento, lo que también conduce a malas predicciones sobre datos no vistos.

UnderfittingExample

Por lo tanto, es posible intentar determinar visualmente si el modelo sufre de subajuste o sobreajuste.

UnderGoodOver

Dado que no podemos visualizar modelos de alta dimensión, necesitamos otra manera de detectar sobreajuste o subajuste.

División de entrenamiento y prueba

Para estimar el rendimiento en datos no vistos, dividimos el conjunto de datos en un conjunto de entrenamiento y un conjunto de prueba con objetivos conocidos.

casas entrenamiento prueba

Entrenamiento en el conjunto de entrenamiento y cálculo de métricas en ambos conjuntos, de entrenamiento y de prueba, para comparar el rendimiento.

resultadosentrenamientoprueba
VideoEntrenamientoPrueba

La división debe ser aleatoria. Normalmente, el 20–30% se destina al conjunto de prueba y el 70–80% se utiliza para entrenamiento. Scikit-learn ofrece una forma sencilla de realizar esto.

Función de entrenamiento y prueba

Por ejemplo, para dividir el conjunto de entrenamiento en 70% entrenamiento/30% prueba, se puede utilizar el siguiente código:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Según los valores de MSE de los modelos, determina si sobreajustan/subajustan el conjunto de entrenamiento (el conjunto de datos es el mismo).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Haz clic o arrastra y suelta elementos y completa los espacios

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 2
some-alt