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.
#AI #RecommendationSystem #CollaborativeFiltering #ContentBasedFiltering #MachineLearning #Python #BeginnerAI #UserPreferences #SimpleAlgorithm #BasicML
By: @DataScienceQ🚀 
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