This project is a movie recommendation system that utilizes various filtering techniques to provide personalized movie recommendations to users. The system plays a crucial role in enhancing user experience and engagement on movie streaming platforms by helping users discover new movies tailored to their preferences.
Collaborative Filtering identifies patterns in user behavior and recommends movies based on the preferences of users with similar tastes. For this, we utilize the Surprise library, a Python scikit for building and analyzing recommender systems. The specific modules used for collaborative filtering are:
- Dataset from Surprise: A module to load a dataset.
- Reader from Surprise: A module to define the format of the input file.
- SVD (Singular Value Decomposition) from Surprise: A collaborative filtering algorithm based on matrix factorization.
- model_selection from Surprise: A module providing tools for model selection and evaluation.
Popularity-based filtering recommends movies based on their popularity among users. The formula used to calculate popularity-weighted ratings (WR) is: WR = (v / (v + m)) * R + (m / (v + m)) * C Where:
- v is the number of votes for a movie,
- m is the minimum number of votes required,
- R is the average rating of the movie, and
- C is the average rating across all movies.
Content-based filtering recommends movies based on their features and similarities. We use a similarity matrix to get a list of similar movies based on the cosine similarity between movie vectors.
Hybrid-based filtering combines content-based and collaborative filtering techniques. It leverages a combination of content-based filtering, which analyzes item features, and collaborative filtering, which analyzes user behavior, to provide more accurate and diverse recommendations.
Data wrangling involves preprocessing and transforming raw data into a usable format for analysis and modeling. We employed data wrangling techniques to clean and prepare the movie dataset for recommendation system training.
Data modeling refers to the process of creating and refining models to analyze and interpret data. We utilized data modeling techniques to develop and optimize recommendation algorithms, ensuring robust performance.
Model evaluation entails assessing the performance and effectiveness of predictive models. We conducted rigorous model evaluation using metrics such as RMSE, and Mean Absolute Error (MAE) to gauge recommendation quality.
The dataset used for training and testing the recommendation system can be found at the following link: Dataset Link
For a detailed report on the "Recommendation Filtering Techniques", please refer to the report available here.