We are focused on developing a movie recommendation model that incorporates user ratings to provide personalized recommendations. The project involves exploring and analyzing a dataset of user ratings and movie information, Which will allow us to better understand individual preferences and provide tailored recommendations that align with each user's unique taste and interests. As a bonus we also utilized a content and collaborative based filtering to recommend new movies based on the movie of your choice.
User Input Retrieva & Filtering:
- Retrieves the user ID for whom recommendations are to be generated
- Filters out movies that the user has already rated, preparing a list of potential recommendations.
Generate Movie Recommendations:
- It employs a collaborative filtering algorithm, utilizing the Surprise library, to predict ratings for unrated movies for the specified user.
- Predicts the user's ratings for each unrated movie, and a list of tuples containing movie IDs and their estimated ratings is created.
- It sorts and displays the top 5 recommended movies, including their titles and estimated ratings.
Before you begin, ensure you have the following installed:
- Python 3.x
- Required Python packages (pandas, numpy, Surprise, sklearn, ipywidgets)
Install the necessary packages and download the files from GroupLens called ml-latest.zip. Extract the files and place all csv files inside a MovieLens-resources folder on your desktop.
By entering a movie title, the system utilizes content-based filtering to recommend movies based on similar titles.
By entering a movie title and leveraging collaborative filtering, the system utilizes ratings to assign an overall score and provides quick suggestions for additional movies we might like.
This image shows each user with their avg rating total for all the movies, while also showing the total number of movies they’ve rated. The vertical line shows the average total for all the user ratings
This image shows each movie with it’s avg rating total, while also showing the total number of users that have rated the movie.