TGViewer
Data Science & Machine Learning Data Science & Machine Learning @datasciencefun · 77.8K subscribers
Post #3964 4.34K
Data Science Project Series Part 5: Recommendation System ✅

Project goal
Recommend items users are likely to like.

Business value
• Higher engagement
• Higher sales
• Strong ML interview topic

Use cases
• Movies
• Products
• Courses
• Videos

Dataset
User item ratings. Typical columns
• user_id
• item_id
• rating

Approach used
Collaborative filtering. User based similarity.

Step 1. Import libraries

import pandas as pd
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity


Step 2. Load data

df = pd.read_csv("ratings.csv")
df.head()


Example data
user_id | item_id | rating
1 | 101 | 5
1 | 102 | 3

Step 3. Create user item matrix

user_item_matrix = df.pivot_table(
index='user_id',
columns='item_id',
values='rating'
)


Matrix shape
Rows users
Columns items
Values ratings

Step 4. Handle missing values
user_item_matrix.fillna(0, inplace=True)


Why? Cosine similarity needs numbers.

Step 5. Compute user similarity
user_similarity = cosine_similarity(user_item_matrix)
user_similarity_df = pd.DataFrame(
user_similarity,
index=user_item_matrix.index,
columns=user_item_matrix.index
)


Step 6. Find similar users

user_id = 1

similar_users = user_similarity_df[user_id].sort_values(ascending=False)
similar_users.head()


Top result User itself score 1. Ignore it.

Step 7. Recommend items

Get items rated by similar users

similar_users = similar_users[similar_users.index != user_id]
weighted_ratings = user_item_matrix.loc[similar_users.index].T.dot(similar_users)
recommendations = weighted_ratings.sort_values(ascending=False)


Remove already rated items.
already_rated = user_item_matrix.loc[user_id]
already_rated = already_rated[already_rated > 0].index
recommendations = recommendations.drop(already_rated)
recommendations.head(5)


Output Top 5 recommended item IDs.

Step 8. Why cosine similarity
• Focuses on rating pattern
• Ignores scale differences
• Fast and simple

Limitations
• Cold start problem
• Sparse matrix
• No item features

Improvements
• Item based filtering
• Matrix factorization
• Hybrid models

Resume bullet example
• Built recommendation system using collaborative filtering
• Used cosine similarity on user item matrix
• Generated personalized item recommendations

Interview explanation flow
• Difference between content based and collaborative
• Why sparsity hurts
• Cold start solutions

Mini task for you
• Convert to item based filtering
• Add minimum similarity threshold
• Evaluate using precision at K

Double Tap ♥️ For More
  • ❤ 9
  • 👏 1
More from @datasciencefun
  1. Oct 16, 2026𝗗𝗮𝘁𝗮 𝘀𝗰𝗶𝗲𝗻𝗰𝗲 𝗖𝗲𝗿𝘁𝗶𝗳𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗪𝗶𝘁𝗵 𝗔𝗜😍 Future Ready Data Scien…
  2. Oct 15, 2026Post #4665
  3. Oct 15, 2026Post #4664
  4. Oct 15, 2026Post #4663
  5. Oct 15, 2026Post #4662
  6. Oct 13, 2026𝗧𝗢𝗣 𝗙𝗥𝗘𝗘 𝗖𝗢𝗨𝗥𝗦𝗘𝗦 𝗧𝗢 𝗕𝗢𝗢𝗦𝗧 𝗬𝗢𝗨𝗥 𝗦𝗞𝗜𝗟𝗟𝗦 𝗜𝗡 𝟮𝟬𝟮𝟲! Explor…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →