Recommendation systems are the important part of almost every modern consumer websites like Amazon and Netflix. The systems help drive customer interaction and sales by helping customers discover products and services they might not ever find themselves.
import numpy as np
import pandas as pd
import matrix_factorization_utilities
raw_dataset_df = pd.read_csv('movie_ratings_data_set.csv')
movies_df = pd.read_csv('movies.csv', index_col='movie_id')
ratings_df = pd.pivot_table(raw_dataset_df, index='user_id',
columns='movie_id',
aggfunc=np.max)
U, M = matrix_factorization_utilities.low_rank_matrix_factorization(ratings_df.as_matrix(),
num_features=15,
regularization_amount=0.1)
predicted_ratings = np.matmul(U, M)
print("Enter a user_id to get recommendations (Between 1 and 100):")
user_id_to_search = int(input())
print("Movies previously reviewed by user_id {}:".format(user_id_to_search))
reviewed_movies_df = raw_dataset_df[raw_dataset_df['user_id'] == user_id_to_search]
reviewed_movies_df = reviewed_movies_df.join(movies_df, on='movie_id')
print(reviewed_movies_df[['title', 'genre', 'value']])
input("Press enter to continue.")
print("Movies we will recommend:")
user_ratings = predicted_ratings[user_id_to_search - 1]
movies_df['rating'] = user_ratings
already_reviewed = reviewed_movies_df['movie_id']
recommended_df = movies_df[movies_df.index.isin(already_reviewed) == False]
recommended_df = recommended_df.sort_values(by=['rating'], ascending=False)
print(recommended_df[['title', 'genre', 'rating']].head(5))
In this project, we use machine learning to solve recommendation problems. What you learn can then be directly applied to your own projects.
Reference: Linkedin learning
https://www.linkedin.com/learning/machine-learning-ai-foundations-recommendations