Contenido del curso
Cómo funciona la regresión lineal
Regresión lineal multivariable
Proyecto práctico
Pasos siguientes
Evaluando el modelo: R^2 y MSE
Contenido del curso
Evaluando el modelo: R^2 y MSE
Sandy Paola Atencio Hernández
studentDiego Jurado
studentJulián Cárdenas
studentDick Saide Suárez Blanco
studentRafael Rivera
studentHugo Montoya Diaz
studentJhon Freddy Tavera Blandon
studentCristian Enrique Cuevas Mercado
studentJeison Mesa Diez
studentFelix Gonzales
studentPaola Alapizco
studentIsaac Bryan Ascanoa Roncall
studentPatricia Carolina Perez Felibert
studentJuan Acevedo
studentMario Alexander Vargas Celis
studentOrlando Ramirez
studentAlejandro Torres Contreras
studentAntonio Demarco Bonino
studentJose Manuel Rivas Márquez
studentGilberto Gutiérrez Gordillo
studentMarlon Marin
studentMe pareció una explicación muy al punto y sencilla de entender, muchas veces al ver las formulas nos abrumamos pero si le damos sentido créanme que será muy fácil entenderlas.
Asi es, el tema es irse enfrentando de a poco e ir interiorizando cada concepto
A mi me parece que falto profundizar más
------>Evaluando el modelo: R^2 y MSE<--------
σ Entenderemos las dos metricas principales del curso, que tienen el fin de ver la manera en la que se ajusto el modelo hecho, en comparacion a los datos reales. Mas estas pueden ser usadas, para cualquier modelo de regresion. (O mas bien, intentando predecir valores numericos.) Estas metricas son: 1 . Mean Square Error (MSE) +Se usa para minimizar el costo dentro de tu funcion. OR / AND Se usa para evaluar la funcion de perdida. +Solo aplica la formula MSE, los resultados se comparan a las predeciciones. Mas de ver que no esta saliendo bien, quiere decir que las proyecciones no se estan ajustando. (Si el valor llega a ser muy grande, tiende a ser inpreciso). +Esta metrica tiene mayor valor cuando es usada en tres dimensiones, a comparacion de solo dos. 2 . Coeficiente de determinacion ( R^2 ). +Ayuda para mostrar los bueno que se ajustan el modelo con los datos que hay, asi como su variabilidad real. +Es una de las mas utilizadas. +Cuanto el resultado se acerce a " 1 ", mejor. σ Luis menciona que otras metricas son : R-agistada, Error maximo, Error absoluto promedio (MAE), Mediana de los errores absoluto, Raiz del promedio de los errores cuadrados (RMSE), Varianza explicada. σ Por ultmo, Luis explica otra manera (muy interesante) de evaluar un modelo a traves de graficas. +Teniendo una grafica, sea cual sea la direccion que tiene, se puede hacer zoom en ella, y rotarla a un angulo de 0, luego se dibuja una linea horizontal recta (la cual representa la prediccion) y se evalua que tan distanciados los datos de la linea horizontal
Gracias por el aporte.
R-cuadrado ajustada (R-squared adjusted):
Error máximo (Maximum Error):
Error absoluto promedio (Mean Absolute Error - MAE):
Mediana de los errores absolutos (Median Absolute Error):
Raíz del promedio de los errores cuadrados (Root Mean Squared Error - RMSE):
Varianza explicada:
Cuando se observa el grafico de valor ajustado vs residuos. el objetivo es identificar si los residuos son contante, si tienen alguna tendencia significa presencia de heterocedasticidad en los residuos y eso es un problema en el Modelo.
Claro, hay que validar los supuestos del modelo.
Cada vez que agrega una variable independiente a un modelo, el R cuadrado aumenta , incluso si la variable independiente es insignificante.Nunca decae.Mientras que el R cuadrado ajustado aumenta solo cuando la variable independiente es significativa y afecta a la variable dependiente.
📊 Ejemplo de la gráfica de residuales del modelo que entrenamos en clases previas.
⚠️ Agrego únicamente el código de evaluación del modelo y la gráfica de residuales, asumiendo que se conoce el código del entrenamiento del modelo de regresión lineal para predecir los valores de las viviendas de Boston.
Evaluamos el modelo con R^2 y MSE, utilizamos la librería scikit learn:
# Importamos los métodos para evaluar el modelo from sklearn.metrics import mean_squared_error, r2_score # Obtenemos los valores predichos por el modelo predicted_values = slr.predict(X_std) mse = mean_squared_error(X_std, predicted_values) r2 = r2_score(X_std, predicted_values) print("Evalucaicón del modelo con Mean Square Error: %.4f" % mse) print("Evalucaicón del modelo R^2: %.4f" % r2)
Obtendremos un output similar a este:
Evalucaicón del modelo con Mean Square Error: 0.0928 Evalucaicón del modelo R^2: 0.9072
Creamos los gráficos:
plt.figure(figsize=(12,10)) # Reescalamos los datos predichos a valores reales. trans_predictet_values = y_scaler.inverse_transform(predicted_values) # Calculamos los residuos (valor real - valor predicho) residuals = housing_df["MEDV"] - trans_predictet_values.reshape(506) # Estandarizamos los residuos residuals_std = x_scaler.fit_transform(np.array(residuals).reshape(-1,1)) plt.subplot(2, 2, 1) plt.scatter( trans_predictet_values.reshape(506), housing_df["MEDV"], alpha=.5 ) plt.xlabel("Valores predecidos para MEDV") plt.ylabel("Valores actuales de MEDV") plt.title("Predicción vs Reales") plt.subplot(2, 2, 2) plt.scatter( trans_predictet_values, residuals_std, alpha=.5 ) plt.ylabel("Residuos Estandarizados") plt.xlabel("Valores predichos") plt.title("Valores residuales") plt.axhline( y=0, color="black", linestyle="dashed" ) plt.show()
Resultado:
🎯 El objetivo de este gráfico es observar:
📢Para crear el gráfico de residuos me base en uno de los recursos que dejó el profesor en la clase (https://www.qualtrics.com/support/stats-iq/analyses/regression-guides/interpreting-residual-plots-improve-regression/#ExaminingPredictedResidual)
Espero este aporte les sea de ayuda!
Estas metricas sabia que son necesarias en el rango de machine learning pero las ignoraba por ingenuo. Ahora se que las necesito para tener los mejores graficos.
buen curso, me ha encantado!
MSE: Mean Squared Error Nos indica qué tan alejada está la predicción respecto al dato real. Esto se debe a que calcula la diferencia entre el valor predicho y el valor real, eleva al cuadrado dicha diferencia (para evitar que las diferencias negativas se cancelen), la suma para cada uno de los datos y, finalmente, la divide entre la cantidad total de elementos. El resultado nos da, en promedio, la diferencia entre el valor real y el predicho, permitiéndonos saber qué tan alejados estamos de lo real. Un MSE más bajo significa mayor precisión en las predicciones.
R²: Coeficiente de Determinación Nos indica qué tanto el modelo está capturando la varianza de los datos, es decir, qué tan bien la predicción ha aprendido los patrones presentes en la información. Su valor va normalmente de 0 a 1 (aunque puede ser negativo), donde un valor cercano a 1 significa que el modelo explica muy bien la variabilidad de los datos, mientras que un valor cercano a 0 indica un mal ajuste.
Al evaluar un modelo de regresión lineal, es fundamental medir qué tan bien predice los valores. Dos métricas ampliamente utilizadas son:
📊 1. Coeficiente de Determinación: R² (R-squared)
¿Qué es?
Fórmula:
R2=1−SSESSTR^2 = 1 - \frac{SSE}{SST}
Donde:
Interpretación:
📉 2. Error Cuadrático Medio: MSE (Mean Squared Error)
¿Qué es?
Fórmula:
MSE=1n∑i=1n(yi−y^i)2MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
Interpretación:
🧪 Ejemplo práctico con scikit-learn:
from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score from sklearn.model_selection import train_test_split
# Dividir datos X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Modelo modelo = LinearRegression() modelo.fit(X_train, y_train)
# Predicciones y_pred = modelo.predict(X_test)
# Métricas mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred)
print("MSE:", mse) print("R²:", r2)
Les dejo el código en latex de las formulas que se vieron en esta clase
MSE = \frac{1}{N} {\sum{(yi - \hat{y}i})}^2
R^2 = 1 - \frac{\sum(y_i - \hat{y_i})^2}{\sum(y_i - \bar{y})^2}
Este curso hasta le momento ha sido super bueno con la explicación de los conceptos uno por uno , muchos cursos que he tomado se resumen en: 1 vamos a aprender machine learning 2 proceden a tirar codigo, librerias y funciones con parametros 3 listo ya hicimos machine learning
Para que entiendan como se comportan estos modelos en sklearn les dejo este código:
from sklearn.metrics import mean_squared_error, r2_score y_true = [12.1, 9.7, 8.5, 11.3, 10.8, 9.9, 11.7, 8.8, 13.5, 10.2, 10.6, 7.9, 12.9, 9.2, 11.0, 10.3, 8.4, 10.5, 9.6, 11.4] y_pred = [11.5, 10.2, 8.9, 10.8, 10.5, 10.3, 12.0, 8.5, 13.1, 9.9, 9.8, 8.3, 12.5, 8.7, 10.6, 10.0, 8.1, 10.1, 9.9, 10.8] mse = mean_squared_error(y_true, y_pred) mse_round = np.round(mse, 4) print(f"Mean Squared Error (MSE): {mse_round}") r2 = r2_score(y_true, y_pred) r2_round = np.round(r2, 4) print(f"R²: {r2_round}")
MSE(Mean Square error): Error cuadratico medio, se utiliza par calcular la funcion de perdida
pensé que al menos pondría ejemplos mas reales en python
La gráfica de residuales parece la rotación del espacio lineal a 90° como lo vimos en el curso de Algebra Lineal para ML.
A*v = B, donde v es el vector transformador.