Contents
Evaluating Regression Models
Regression models predict numerical values, such as sales revenue, property prices, or delivery times. Several metrics help measure the difference between predicted and actual values.
Common Regression Metrics
Metric | Meaning | Interpretation |
| Mean Absolute Error (MAE) | Average absolute prediction error | Lower is better |
| Mean Squared Error (MSE) | Average squared prediction error | Lower is better |
| Root Mean Squared Error (RMSE) | Square root of MSE | Lower is better |
| R-squared (R²) | Measures performance relative to predicting the target mean | Higher is generally better |
MAE is easy to interpret because it uses the same units as the target. MSE penalizes larger errors more heavily. RMSE also emphasizes large errors but returns to the target's original units.
R² can be negative when a model performs worse than a baseline that always predicts the mean of the target values.
Calculating Regression Metrics
from sklearn.metrics import (
mean_absolute_error,
mean_squared_error,
r2_score
)
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np
X = df[["area", "bedrooms"]]
y = df["price"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
mae = mean_absolute_error(y_test, predictions)
mse = mean_squared_error(y_test, predictions)
rmse = np.sqrt(mse)
r2 = r2_score(y_test, predictions)
print("MAE:", mae)
print("MSE:", mse)
print("RMSE:", rmse)
print("R²:", r2)
This example assumes df contains the columns area, bedrooms, and price.
When comparing two regression models, use the same test data and examine the metrics together. A lower RMSE may indicate fewer large errors, while MAE can provide a clearer picture of the typical absolute error.
Python for Data Science
Vishalini A








