(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo evaluar un modelo de regresión en Machine Learning

João Barros 05 de July de 2026 4 min de lectura

Una vez que has entrenado un modelo que predice valores continuos — precios de casas, temperaturas o ventas —, la siguiente pregunta es siempre la misma: ¿son buenas las predicciones? Evaluar un modelo de regresión en Machine Learning con las métricas adecuadas te da una respuesta en números, mostrando cuán lejos están las predicciones de los valores reales. Las tres métricas más usadas para esto son MAE, RMSE y R², y es justo lo que vas a aprender a calcular e interpretar.

Requisitos previos

  • Python 3 instalado en tu ordenador.
  • Las librerías scikit-learn y pandas (instálalas con pip install scikit-learn pandas).
  • Saber separar los datos en entrenamiento y prueba con train_test_split.
  • Nociones básicas de cómo entrenar un modelo (usamos LinearRegression como ejemplo).

Paso 1: Entrenar un modelo para evaluar

Para tener predicciones que medir, primero entrenamos un modelo sencillo. Usamos el conjunto de datos California Housing que viene con scikit-learn, dividimos los datos en entrenamiento y prueba y entrenamos una regresión lineal. Las predicciones salen del conjunto de prueba, es decir, de datos que el modelo nunca ha visto.

from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

dados = fetch_california_housing()
X_treino, X_teste, y_treino, y_teste = train_test_split(
    dados.data, dados.target, test_size=0.2, random_state=42)

modelo = LinearRegression()
modelo.fit(X_treino, y_treino)
previsoes = modelo.predict(X_teste)

Paso 2: Calcular el MAE (error absoluto medio)

El MAE (Mean Absolute Error) es la media de las diferencias, en valor absoluto, entre el valor real y el predicho. Es la métrica más fácil de explicar: está en la misma unidad que el objetivo y dice, de media, cuánto se equivoca el modelo. Cuanto más bajo, mejor.

from sklearn.metrics import mean_absolute_error

mae = mean_absolute_error(y_teste, previsoes)
print(f"MAE: {mae:.3f}")

Paso 3: Calcular el RMSE (raíz del error cuadrático medio)

El RMSE (Root Mean Squared Error) también está en la unidad del objetivo, pero eleva los errores al cuadrado antes de sumarlos. En la práctica, esto hace que los errores grandes pesen mucho más que los pequeños: si el modelo falla mucho en algunos casos, el RMSE sube rápido. Desde scikit-learn 1.4 existe la función root_mean_squared_error, que es la forma actual de calcularlo.

from sklearn.metrics import root_mean_squared_error

rmse = root_mean_squared_error(y_teste, previsoes)
print(f"RMSE: {rmse:.3f}")

En versiones más antiguas se usaba mean_squared_error(y_teste, previsoes, squared=False), pero ese parámetro se ha descontinuado, así que es mejor usar la función nueva.

Paso 4: Calcular el R² (coeficiente de determinación)

El R² responde a otra pregunta: ¿qué porcentaje de la variación de los datos explica el modelo? Suele variar entre 0 y 1, donde 1 es una predicción perfecta. Un valor cercano a 0 significa que el modelo aporta poco frente a simplemente adivinar la media; los valores negativos indican un modelo peor que esa media.

from sklearn.metrics import r2_score

r2 = r2_score(y_teste, previsoes)
print(f"R2: {r2:.3f}")

Verificar el resultado

Al ejecutar el script deberías ver tres valores impresos. Con este conjunto de datos y una regresión lineal, el MAE suele rondar 0,53, el RMSE unos 0,75 y el R² alrededor de 0,58 (el objetivo está en cientos de miles de dólares). Los valores exactos pueden variar ligeramente según la versión de las librerías. Fíjate en que el RMSE es mayor que el MAE: siempre que esa diferencia sea amplia, es señal de que hay algunos errores grandes tirando de la media hacia arriba. Un R² de 0,58, por su parte, te dice que el modelo explica cerca del 58% de la variación de los precios — hay margen de mejora.

Conclusión

Con el MAE, el RMSE y el R² obtienes una imagen completa del rendimiento de un modelo de regresión: el error medio, el peso de los errores grandes y la calidad global del ajuste. El siguiente paso natural es usar estas mismas tres métricas para comparar modelos distintos — por ejemplo, cambiar LinearRegression por un RandomForestRegressor y ver qué números mejoran. Consejo: calcula siempre estas métricas con los datos de prueba, nunca con los de entrenamiento — solo así reflejan el rendimiento real. Y para tu propio problema, ¿qué es más importante: penalizar mucho los errores grandes (RMSE) o tratar todos los errores por igual (MAE)?