Bird
Raised Fist0
ML Pythonml~20 mins

Collaborative filtering in ML Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Collaborative Filtering Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
๐Ÿง  Conceptual
intermediate
2:00remaining
Understanding User-Based Collaborative Filtering

In user-based collaborative filtering, how are recommendations typically generated?

ABy analyzing item features and recommending items with similar attributes
BBy clustering items and recommending items from the largest cluster
CBy randomly selecting popular items from the dataset
DBy finding users similar to the target user and recommending items they liked
Attempts:
2 left
๐Ÿ’ก Hint

Think about how users' preferences help suggest new items.

โ“ Predict Output
intermediate
2:00remaining
Output of Cosine Similarity Calculation

What is the output of the following Python code that calculates cosine similarity between two user rating vectors?

ML Python
import numpy as np
from numpy.linalg import norm

user1 = np.array([4, 0, 3, 5])
user2 = np.array([5, 1, 2, 5])
cos_sim = np.dot(user1, user2) / (norm(user1) * norm(user2))
print(round(cos_sim, 2))
A0.85
B1.00
C0.97
D0.75
Attempts:
2 left
๐Ÿ’ก Hint

Calculate dot product and norms carefully.

โ“ Model Choice
advanced
2:00remaining
Choosing the Best Collaborative Filtering Model for Sparse Data

You have a very sparse user-item rating matrix with many missing values. Which collaborative filtering approach is generally better suited to handle this sparsity?

AItem-based collaborative filtering with cosine similarity
BMatrix factorization techniques like Singular Value Decomposition (SVD)
CRandom recommendation based on item popularity
DUser-based collaborative filtering using simple nearest neighbors
Attempts:
2 left
๐Ÿ’ก Hint

Consider methods that can learn latent features from sparse data.

โ“ Hyperparameter
advanced
2:00remaining
Effect of Number of Latent Factors in Matrix Factorization

In matrix factorization for collaborative filtering, what is the effect of increasing the number of latent factors (dimensions)?

AIt can improve accuracy but may cause overfitting if too large
BIt always improves model accuracy without any downside
CIt reduces model complexity and speeds up training
DIt has no effect on the model's performance
Attempts:
2 left
๐Ÿ’ก Hint

Think about model complexity and generalization.

โ“ Metrics
expert
2:00remaining
Evaluating Collaborative Filtering with RMSE

You trained a collaborative filtering model and computed the Root Mean Squared Error (RMSE) on a test set. Which statement about RMSE is correct?

AA lower RMSE means the model's predictions are closer to actual ratings
BRMSE measures how many recommendations are correct
CA higher RMSE indicates better model performance
DRMSE is not suitable for rating prediction tasks
Attempts:
2 left
๐Ÿ’ก Hint

Recall what RMSE measures in prediction tasks.

Practice

(1/5)
1. What is the main idea behind collaborative filtering in recommendation systems?
easy
A. It recommends items based on the user's location.
B. It recommends items based on similar users' preferences.
C. It randomly suggests items without user data.
D. It uses item descriptions to recommend similar items.

Solution

  1. Step 1: Understand collaborative filtering concept

    Collaborative filtering finds users with similar tastes and recommends items they liked.
  2. Step 2: Compare options to definition

    Only It recommends items based on similar users' preferences. matches this idea; others describe different methods or unrelated ideas.
  3. Final Answer:

    It recommends items based on similar users' preferences. -> Option B
  4. Quick Check:

    Collaborative filtering = similar users' preferences [OK]
Hint: Focus on user similarity for collaborative filtering [OK]
Common Mistakes:
  • Confusing collaborative filtering with content-based filtering
  • Thinking it uses item descriptions only
  • Assuming it recommends randomly
2. Which of the following is the correct way to compute cosine similarity between two user vectors u and v in Python using NumPy?
easy
A. np.dot(u, v) * (np.linalg.norm(u) + np.linalg.norm(v))
B. np.dot(u, v) * (np.linalg.norm(u) * np.linalg.norm(v))
C. np.dot(u, v) / (np.linalg.norm(u) + np.linalg.norm(v))
D. np.dot(u, v) / (np.linalg.norm(u) * np.linalg.norm(v))

Solution

  1. Step 1: Recall cosine similarity formula

    Cosine similarity = dot product of vectors divided by product of their norms.
  2. Step 2: Match formula to code

    np.dot(u, v) / (np.linalg.norm(u) * np.linalg.norm(v)) correctly implements this formula using NumPy functions.
  3. Final Answer:

    np.dot(u, v) / (np.linalg.norm(u) * np.linalg.norm(v)) -> Option D
  4. Quick Check:

    Cosine similarity formula = np.dot(u, v) / (np.linalg.norm(u) * np.linalg.norm(v)) [OK]
Hint: Cosine similarity = dot product รท product of norms [OK]
Common Mistakes:
  • Adding norms instead of multiplying
  • Multiplying dot product by norms
  • Dividing by sum of norms
3. Given the user-item rating matrix below, what is the predicted rating for User 1 on Item C using user-based collaborative filtering with cosine similarity?

User 1: [5, 3, ?]
User 2: [4, 2, 1]
User 3: [1, 5, 4]


Assume similarity weights are:
User 1 & User 2: 0.9
User 1 & User 3: 0.1

Use weighted average: (0.9*1 + 0.1*4) / (0.9 + 0.1)
medium
A. 2.5
B. 1.9
C. 1.3
D. 3.0

Solution

  1. Step 1: Calculate weighted sum of ratings

    Weighted sum = (0.9 * 1) + (0.1 * 4) = 0.9 + 0.4 = 1.3
  2. Step 2: Calculate sum of weights and divide

    Sum weights = 0.9 + 0.1 = 1.0; Predicted rating = 1.3 / 1.0 = 1.3
  3. Final Answer:

    1.3 -> Option C
  4. Quick Check:

    Weighted average = 1.3 [OK]
Hint: Multiply ratings by similarity, sum, then divide by total similarity [OK]
Common Mistakes:
  • Forgetting to divide by sum of weights
  • Mixing up user similarities
  • Using unweighted average
4. You have this Python code snippet for item-based collaborative filtering similarity calculation:
import numpy as np

item1 = np.array([5, 3, 0])
item2 = np.array([4, 0, 1])
similarity = np.dot(item1, item2) / (np.linalg.norm(item1) + np.linalg.norm(item2))
print(similarity)

What is the error in this code?
medium
A. Using addition instead of multiplication in denominator for cosine similarity.
B. Using np.dot instead of np.cross for similarity.
C. Missing normalization of item vectors before dot product.
D. Using zero values in vectors causes division by zero.

Solution

  1. Step 1: Review cosine similarity formula

    Cosine similarity divides dot product by product of norms, not sum.
  2. Step 2: Identify code mistake

    Code uses addition in denominator instead of multiplication, causing wrong similarity value.
  3. Final Answer:

    Using addition instead of multiplication in denominator for cosine similarity. -> Option A
  4. Quick Check:

    Denominator must multiply norms, not add [OK]
Hint: Denominator in cosine similarity = product of norms, not sum [OK]
Common Mistakes:
  • Adding norms instead of multiplying
  • Confusing dot and cross product
  • Assuming zero values cause errors
5. You want to improve a movie recommendation system using collaborative filtering. The user-item matrix is very sparse (many missing ratings). Which approach can best handle this sparsity to improve recommendations?
hard
A. Use matrix factorization techniques like Singular Value Decomposition (SVD).
B. Fill missing ratings with zeros before computing similarities.
C. Ignore users with missing ratings and use only complete data.
D. Use random recommendations to cover missing data.

Solution

  1. Step 1: Understand sparsity problem in collaborative filtering

    Sparse matrices have many missing values, making similarity calculations unreliable.
  2. Step 2: Identify best method to handle sparsity

    Matrix factorization like SVD reduces dimensionality and predicts missing ratings effectively.
  3. Final Answer:

    Use matrix factorization techniques like Singular Value Decomposition (SVD). -> Option A
  4. Quick Check:

    SVD handles sparsity well [OK]
Hint: Use matrix factorization to predict missing ratings [OK]
Common Mistakes:
  • Filling missing ratings with zeros biases similarity
  • Ignoring incomplete users loses valuable data
  • Random recommendations ignore user preferences
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