Python Data Science Jobs & Interviews
20.3K subscribers
188 photos
4 videos
25 files
325 links
Your go-to hub for Python and Data Science—featuring questions, answers, quizzes, and interview tips to sharpen your skills and boost your career in the data-driven world.

Admin: @Hussein_Sheikho
Download Telegram
How can you implement a basic recommendation system in Python using collaborative filtering and content-based filtering to suggest items based on user preferences? Provide a simple code example demonstrating how to calculate similarity between users or items, generate recommendations, and handle new user data.

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

# Sample user-item interaction matrix (rows: users, cols: items)
ratings = np.array([
[5, 3, 0, 1, 4],
[4, 0, 0, 1, 2],
[1, 1, 0, 5, 1],
[1, 0, 0, 5, 4]
])

# Simulated item features (e.g., genre, category)
item_features = {
0: ["action", "adventure"],
1: ["drama", "romance"],
2: ["comedy", "fantasy"],
3: ["action", "sci-fi"],
4: ["drama", "thriller"]
}

def get_user_similarity(user_id, ratings):
"""Calculate similarity between users using cosine similarity."""
return cosine_similarity(ratings[user_id].reshape(1, -1), ratings)[0]

def get_item_similarity(item_id, ratings):
"""Calculate similarity between items."""
return cosine_similarity(ratings.T[item_id].reshape(1, -1), ratings.T)[0]

def recommend_items(user_id, ratings, item_features):
"""Generate recommendations for a user."""
# Collaborative filtering: find similar users
similarities = get_user_similarity(user_id, ratings)
similar_users = np.argsort(similarities)[-3:] # Top 3 similar users

# Get items liked by similar users but not by current user
recommended_items = set()
for u in similar_users:
if u != user_id:
for i in range(len(ratings[u])):
if ratings[u][i] > 0 and ratings[user_id][i] == 0:
recommended_items.add(i)

# Content-based filtering: recommend similar items
user_likes = []
for i in range(len(ratings[user_id])):
if ratings[user_id][i] > 0:
user_likes.extend(item_features[i])

for item_id, features in item_features.items():
if item_id not in recommended_items:
common = len(set(user_likes) & set(features))
if common > 0:
recommended_items.add(item_id)

return list(recommended_items)

# Example usage
print("Recommendations for user 0:", recommend_items(0, ratings, item_features))


#AI #RecommendationSystem #CollaborativeFiltering #ContentBasedFiltering #MachineLearning #Python #BeginnerAI #UserPreferences #SimpleAlgorithm #BasicML

By: @DataScienceQ 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
3