Bird
Raised Fist0
ML Pythonml~5 mins

Evaluation metrics (RMSE, precision@k) in ML Python

Choose your learning style10 modes available
Introduction

We use evaluation metrics to check how well a machine learning model is doing. RMSE tells us how close predictions are to actual values, and precision@k shows how many of the top k predictions are correct.

When predicting continuous numbers like house prices or temperatures (use RMSE).
When recommending top items to users, like movies or products (use precision@k).
When comparing different models to pick the best one.
When you want to understand if your model is improving during training.
When you want to explain model quality to others in simple terms.
Syntax
ML Python
RMSE = sqrt(mean((y_true - y_pred)**2))

precision@k = (Number of relevant items in top k predictions) / k

RMSE measures average error size in the same units as the target.

Precision@k focuses on the top k results, useful for ranking or recommendation tasks.

Examples
Calculate RMSE for simple numeric predictions.
ML Python
from sklearn.metrics import mean_squared_error
import numpy as np

y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
print(rmse)
Calculate precision@3 for a list of recommended items.
ML Python
def precision_at_k(y_true, y_pred, k):
    top_k = y_pred[:k]
    relevant = sum([1 for item in top_k if item in y_true])
    return relevant / k

# Example
relevant_items = ['apple', 'banana', 'orange']
predicted_items = ['banana', 'apple', 'grape', 'orange']
print(precision_at_k(relevant_items, predicted_items, 3))
Sample Model

This program calculates RMSE for numeric predictions and precision@3 for recommended items, showing how close predictions are and how many top recommendations are correct.

ML Python
from sklearn.metrics import mean_squared_error
import numpy as np

def precision_at_k(y_true, y_pred, k):
    top_k = y_pred[:k]
    relevant = sum([1 for item in top_k if item in y_true])
    return relevant / k

# RMSE example
actual = [10, 20, 30, 40, 50]
predicted = [12, 18, 33, 37, 52]
rmse_value = np.sqrt(mean_squared_error(actual, predicted))

# precision@k example
true_items = ['cat', 'dog', 'rabbit']
predicted_items = ['dog', 'rabbit', 'horse', 'cat', 'mouse']
precision_value = precision_at_k(true_items, predicted_items, 3)

print(f"RMSE: {rmse_value:.2f}")
print(f"Precision@3: {precision_value:.2f}")
OutputSuccess
Important Notes

RMSE is sensitive to large errors because it squares the differences.

Precision@k does not consider the order beyond the top k items or how many relevant items exist beyond k.

Always choose metrics that fit your problem type: regression or ranking.

Summary

RMSE measures average prediction error size for numbers.

Precision@k measures accuracy of top k predictions in ranking tasks.

Use these metrics to understand and improve your model's performance.

Practice

(1/5)
1. What does RMSE (Root Mean Squared Error) measure in a machine learning model?
easy
A. The average size of prediction errors for continuous values
B. The percentage of correct classifications
C. The number of true positives in classification
D. The speed of the model training process

Solution

  1. Step 1: Understand RMSE definition

    RMSE calculates the square root of the average squared differences between predicted and actual values, showing error size.
  2. Step 2: Identify what RMSE measures

    It measures how far predictions are from actual continuous values on average, not classification accuracy or speed.
  3. Final Answer:

    The average size of prediction errors for continuous values -> Option A
  4. Quick Check:

    RMSE = average error size [OK]
Hint: RMSE = error size for numbers, not classification [OK]
Common Mistakes:
  • Confusing RMSE with accuracy
  • Thinking RMSE measures classification counts
  • Assuming RMSE measures speed
2. Which of the following is the correct formula to calculate RMSE given predictions \(\hat{y}_i\) and true values \(y_i\) for \(n\) samples?
easy
A. \(\frac{\sum_{i=1}^n (y_i - \hat{y}_i)}{n}\)
B. \(\frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i|\)
C. \(\frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}}\)
D. \(\sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2}\)

Solution

  1. Step 1: Recall RMSE formula

    RMSE is the square root of the average squared differences between true and predicted values.
  2. Step 2: Match formula options

    \(\sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2}\) matches the RMSE formula exactly; others represent MAE, mean error, or precision.
  3. Final Answer:

    \(\sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2}\) -> Option D
  4. Quick Check:

    RMSE = sqrt(mean squared error) [OK]
Hint: RMSE = sqrt of average squared errors [OK]
Common Mistakes:
  • Confusing RMSE with MAE (mean absolute error)
  • Forgetting to square errors before averaging
  • Mixing precision formula with RMSE
3. Given the true labels \([1, 0, 1, 1, 0]\) and model predicted scores \([0.9, 0.2, 0.8, 0.4, 0.3]\), what is the precision@3?
medium
A. 1.0
B. 0.67
C. 0.33
D. 0.5

Solution

  1. Step 1: Identify top 3 predictions by score

    Top 3 scores are 0.9 (index 0), 0.8 (index 2), and 0.4 (index 3).
  2. Step 2: Count true positives in top 3

    True labels at these indices are 1 (index 0), 1 (index 2), 1 (index 3). Total true positives = 3.
  3. Step 3: Calculate precision@3

    Precision@3 = true positives / 3 = 3/3 = 1.0.
  4. Final Answer:

    1.0 -> Option A
  5. Quick Check:

    Precision@3 = 3/3 = 1.0 [OK]
Hint: Count true positives in top k predictions, divide by k [OK]
Common Mistakes:
  • Counting all positives, not just top k
  • Mixing precision@k with recall
  • Using predicted labels instead of scores for ranking
4. You have a ranking model and calculated precision@5 as 0.4, but you expected 0.6. Which of the following could fix this issue?
medium
A. Increase the number of items in the dataset
B. Improve the model to rank more relevant items in the top 5
C. Decrease the number of true positives in the top 5
D. Use RMSE instead of precision@5

Solution

  1. Step 1: Understand precision@5 meaning

    Precision@5 measures how many relevant items appear in the top 5 predictions.
  2. Step 2: Identify how to increase precision@5

    To increase precision@5, the model must rank more relevant items higher within the top 5.
  3. Step 3: Evaluate options

    Improve the model to rank more relevant items in the top 5 improves ranking of relevant items; A changes dataset size but not ranking; C reduces true positives, lowering precision; D changes metric but not model quality.
  4. Final Answer:

    Improve the model to rank more relevant items in the top 5 -> Option B
  5. Quick Check:

    Better ranking = higher precision@5 [OK]
Hint: Boost relevant items in top k to raise precision@k [OK]
Common Mistakes:
  • Changing dataset size instead of model quality
  • Reducing true positives mistakenly
  • Confusing RMSE with precision@k
5. A regression model has predictions \([2.5, 0.0, 2.1, 7.8]\) and true values \([3.0, -0.5, 2.0, 7.5]\). Calculate the RMSE and decide if the model's average error is less than 0.5.
hard
A. RMSE = 0.65, no the error is not less than 0.5
B. RMSE = 0.55, no the error is not less than 0.5
C. RMSE = 0.39, yes the error is less than 0.5
D. RMSE = 0.35, yes the error is less than 0.5

Solution

  1. Step 1: Calculate squared errors for each prediction

    (3.0-2.5)^2=0.25, (-0.5-0.0)^2=0.25, (2.0-2.1)^2=0.01, (7.5-7.8)^2=0.09. Sum=0.60.
  2. Step 2: Compute mean squared error and RMSE

    Mean squared error = 0.60/4 = 0.15; RMSE = \(\sqrt{0.15}\) \(\approx\) 0.39.
  3. Step 3: Compare RMSE with 0.5

    RMSE \(\approx\) 0.39 < 0.5, so average error is less than 0.5.
  4. Final Answer:

    RMSE = 0.39, yes the error is less than 0.5 -> Option C
  5. Quick Check:

    RMSE \(\approx\) 0.39 < 0.5 [OK]
Hint: Square errors, average, then sqrt for RMSE [OK]
Common Mistakes:
  • Forgetting to square errors
  • Incorrect averaging of squared errors
  • Mixing RMSE with MAE
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard