What if you could instantly know how good your predictions really are, without guessing?
Why Regression evaluation (MSE, RMSE, R²) in ML Python? - Purpose & Use Cases
Imagine you are trying to guess house prices by looking at a few examples and writing down your guesses on paper.
You want to know how close your guesses are to the real prices, but you have no simple way to measure your mistakes quickly.
Checking each guess by hand is slow and tiring.
You might forget some errors or mix up numbers, making your results unreliable.
Without a clear score, you can't tell if your guesses are improving or getting worse.
Regression evaluation metrics like MSE, RMSE, and R² give you clear numbers to measure how good your guesses (predictions) are.
They quickly show the average size of your mistakes and how well your guesses explain the real prices.
This helps you improve your model step by step with confidence.
errors = [] for i in range(len(predictions)): errors.append(abs(predictions[i] - actual[i])) average_error = sum(errors) / len(errors)
from sklearn.metrics import mean_squared_error, r2_score mse = mean_squared_error(actual, predictions) rmse = mse ** 0.5 r2 = r2_score(actual, predictions)
It enables you to measure and improve your prediction models with clear, reliable scores.
Real estate agents can use these scores to know how well their price predictions match actual market prices, helping buyers and sellers make smarter decisions.
Manual checking of prediction errors is slow and unreliable.
Regression metrics give quick, clear measures of prediction quality.
These scores help improve models and make better decisions.
Practice
Solution
Step 1: Understand MSE definition
MSE calculates the average of squared differences between predicted and actual values to measure error size.Step 2: Compare options to definition
Only The average of the squared differences between predicted and actual values correctly describes MSE as average squared error; others describe unrelated concepts.Final Answer:
The average of the squared differences between predicted and actual values -> Option BQuick Check:
MSE = average squared error [OK]
- Confusing MSE with accuracy
- Thinking MSE measures correlation
- Mixing MSE with count of data points
y_true and predicted values y_pred?Solution
Step 1: Recall RMSE formula
RMSE is the square root of the mean of squared differences between true and predicted values.Step 2: Match code to formula
import numpy as np rmse = np.sqrt(np.mean((y_true - y_pred)**2)) correctly computes squared differences, averages them, then takes square root. Others miss steps or use wrong operations.Final Answer:
import numpy as np rmse = np.sqrt(np.mean((y_true - y_pred)**2)) -> Option CQuick Check:
RMSE = sqrt(mean squared error) [OK]
- Using sum instead of mean
- Taking sqrt before mean
- Using absolute difference instead of squared
y_true = [3, -0.5, 2, 7] and predicted values y_pred = [2.5, 0.0, 2, 8], what is the R² score?Solution
Step 1: Calculate R² score formula
R² = 1 - (sum of squared residuals / total sum of squares). Calculate residuals and totals:Step 2: Compute sums
Residuals squared: (3-2.5)^2 + (-0.5-0)^2 + (2-2)^2 + (7-8)^2 = 0.25 + 0.25 + 0 + 1 = 1.5
Total sum squares: sum((y_true - mean(y_true))^2) with mean= (3-0.5+2+7)/4=2.875
Totals: (3-2.875)^2 + (-0.5-2.875)^2 + (2-2.875)^2 + (7-2.875)^2 = 0.015625 + 11.390625 + 0.765625 + 17.015625 = 29.1875Step 3: Calculate R²
R² = 1 - (1.5 / 29.1875) ≈ 1 - 0.0514 = 0.9486Final Answer:
0.948 -> Option DQuick Check:
R² ≈ 0.95 means good fit [OK]
- Using sum of residuals instead of squared residuals
- Forgetting to subtract mean in total sum squares
- Mixing up numerator and denominator
def mse(y_true, y_pred):
return sum(y_true - y_pred)**2 / len(y_true)What is the error?
Solution
Step 1: Analyze the code operation order
The code does sum(y_true - y_pred) first, then squares the total sum, which is incorrect for MSE.Step 2: Correct MSE calculation
MSE requires squaring each difference first, then averaging. The code should square element-wise before summing.Final Answer:
The subtraction is done element-wise but sum is outside, causing wrong squaring -> Option AQuick Check:
Square differences before sum for MSE [OK]
- Squaring sum instead of sum of squares
- Using absolute difference instead of squared
- Ignoring element-wise operations
Solution
Step 1: Understand MSE and R² meanings
MSE measures average squared error (lower is better). R² measures proportion of variance explained (higher is better).Step 2: Compare models on error and fit
Model B has lower MSE (2 < 4), so predictions are closer on average. Model A has higher R² but larger error, meaning it fits variance better but with bigger errors.Step 3: Prioritize error for prediction quality
Lower error (MSE) usually means better prediction accuracy, so Model B is better despite lower R².Final Answer:
Model B is better because it has lower MSE, indicating smaller average error -> Option AQuick Check:
Lower MSE means better prediction accuracy [OK]
- Choosing model with higher R² ignoring error size
- Thinking MSE and R² always agree
- Ignoring what metric matters for task
Ready to prove it?
Pass the test and this pattern moves unknown
