Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:ia:saa:6_optimizacion_modelo:sobreajuste [2022/02/17 10:10]
cesguiro
— (actual)
Línea 1: Línea 1:
-====== 06 - Sobreajuste ====== 
  
-En temas anteriores vimos la regresión polinomial. Vamos a construir datos con un polinomio de grado 2: 
- 
-<sxh python> 
-import numpy as np 
- 
-import matplotlib.pyplot as plt 
- 
-from sklearn.linear_model import LinearRegression 
-from sklearn.model_selection import train_test_split 
-from sklearn.metrics import mean_squared_error 
-from sklearn.preprocessing import PolynomialFeatures 
-</sxh> 
- 
-<sxh python> 
-m = 100 
-X = 6 * np.random.rand(m, 1) -3 
-y = 0.5 * X**2 + X + 2 +np.random.rand(m, 1) 
-</sxh> 
- 
-Mostramos los datos en una gráfica: 
- 
-{{:clase:ia:saa:6_optimizacion_modelo:output.png?400|}} 
- 
-Separamos los datos en entrenamiento y test y mostramos los datos de entrenamiento en una gráfica: 
- 
-<sxh> 
-X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) 
-</sxh>  
- 
-{{:clase:ia:saa:6_optimizacion_modelo:output2.png?400|}} 
- 
-Creamos un modelo de regresión lineal simple: 
- 
-<sxh python> 
-model = LinearRegression() 
- 
-model.fit(X_train, y_train) 
- 
-y_predict = model.predict(X_train) 
-</sxh> 
- 
-{{:clase:ia:saa:6_optimizacion_modelo:output3_1.png?400|}} 
- 
-Como vemos, la recta no se ajusta de forma óptima a nuestros datos. Vamos a ver el MSE: 
- 
-<sxh python> 
-rmse = mean_squared_error(y_true = y_train, y_pred = y_predict) 
-print("MSE entrenamiento: %.2f" % rmse) 
- 
-y_predict = model.predict(X_test) 
-rmse = mean_squared_error(y_true = y_test, y_pred = y_predict) 
-print("MSE test: %.2f" % rmse) 
-</sxh> 
- 
-<sxh base> 
-MSE entrenamiento: 1.56 
-MSE test: 1.49 
-</sxh> 
  • clase/ia/saa/6_optimizacion_modelo/sobreajuste.1645089023.txt.gz
  • Última modificación: 2022/02/17 10:10
  • por cesguiro