- Introduction
- Features
- Getting Started
- Data Understanding
- Exploratory Data Analysis
- Modeling
- Conclusion
- Contributing
- Authors
This Movie Recommendation System is a Python-based project that provides movie recommendations to users based on various recommendation techniques. It combines Data Understanding, Data Preparation, Exploratory Data Analysis(EDA), Content-Based, Collaborative Filtering and Model-Based recommendation approaches to offer personalized movie suggestions.
- Data Understanding
- Data Preparation
- Exploratory Data Analysis
- Modeling (Recommendation System generation)
- User-friendly interface
- Easy-to-use API
To run this project, you need the following prerequisites:
- Python 3.x
- Pandas
- Scikit-learn
- Surprise
- Flask (for the web interface)
You can install these packages using pip:
pip install pandas scikit-learn scikit-surprise flask
Clone this repository:
git clone https://github.com/your-username/movie-recommendation-system.git
Change to the project directory:
cd movie-recommendation-system
The dataset used in this project contains 100,836 ratings and 3,683 tag applications across 9,742 movies. It includes information about movies, user ratings, and tags. Key data files include:
movies.csv
: Contains movie information (movieId, title, genres).ratings.csv
: Contains user ratings (userId, movieId, rating).
- Explored different movie genres and their counts.
- Visualized the Top 5 movie genres and their percentage ratios.
- Analyzed top-watched movies.
- Analyzed top-rated movies.
- Visualized the rating distribution.
We utilized the following approaches:
-
Content-Based Recommendation Our content-based recommendation system uses movie genres and user preferences to suggest similar movies. It calculates the TF-IDF (Term Frequency-Inverse Document Frequency) matrix and uses the sigmoid kernel for similarity scores.
-
Collaborative Filtering The collaborative filtering technique provides movie recommendations based on user-user similarity. It uses a user-item matrix and computes the similarity between users. You can choose between user-based and item-based collaborative filtering.
-
Model-Based(SVD) Recommendation Our model-based recommendation uses matrix factorization and the SVD algorithm to predict movie ratings for users. It fine-tunes the model parameters for optimal performance.
Model-based collaborative filtering techniques offer a powerful and scalable approach to recommendation systems, leveraging advanced algorithms and machine learning models. Their ability to handle sparsity, recognize complex patterns, and scale with growing datasets makes them valuable for large-scale applications.
We welcome contributions from the community. If you'd like to contribute to this project, please follow these steps:
-
Create a new branch for your feature:
git checkout -b feature-name.
-
Make your changes and commit them:
git commit -m 'Add feature-name'.
-
Push to the branch:
git push origin feature-name.
-
Create a pull request.