"Because Netflix isn't going to recommend itself..."
- About
- Model Details
- Dataset Used
- Approach
- How to Run
- Demo Screenshots / Video
- Features
- Contributing
- License
Welcome to the Hybrid Recommendation System!
This project is a not-so-humble attempt to combine the best of collaborative and content-based filtering, because why settle for one when you can have both (and twice the bugs)?
Built with Python, Streamlit, and a healthy dose of sarcasm.
-
Collaborative Filtering:
Uses user-item interaction matrices to find users who are suspiciously similar to you (statistically, not emotionally).- Implemented with matrix factorization and nearest neighbors.
- Handles cold start about as well as your average barista handles a complicated coffee order.
-
Content-Based Filtering:
Recommends movies based on their features (genres, tags, etc.), because sometimes you just want more of the same.- Uses TF-IDF and cosine similarity.
- Ignores your actual taste, but hey, at least it’s explainable.
-
Hybrid Model:
Combines both approaches, so you get the worst of both worlds (just kidding, it’s actually pretty good).- Weighted blending of collaborative and content-based scores.
- Tunable weights, because you love tweaking knobs.
- MovieLens (100k, 1M, or 10M, depending on how much RAM you want to sacrifice)
- GroupLens MovieLens Datasets
- Includes user ratings, movie metadata, and enough missing values to keep things interesting.
-
Data Preprocessing:
- Download and clean MovieLens data.
- Encode user and item IDs (because models don’t like strings).
- Engineer content features (genres, tags, etc.).
- Split into train/test, because we’re not savages.
-
Model Training:
- Train collaborative filtering model on user-item matrix.
- Train content-based model on movie features.
- Combine both in a hybrid model, because synergy.
-
Evaluation:
- Precision, recall, F1, NDCG, RMSE, coverage, diversity, novelty, and other metrics you’ll probably ignore.
- Interactive analytics dashboard, so you can pretend to care about the numbers.
-
Web Interface:
- Built with Streamlit, because everyone loves sliders and buttons.
- Real-time recommendations, analytics, and data exploration.
- Sidebar navigation, because tabs are too mainstream.
-
Clone this repo
git clone https://github.com/DevanshSrajput/hybrid-recommendation-system.git cd hybrid-recommendation-system
-
Install dependencies
pip install -r requirements.txt
-
Launch the web interface
python main.py
Or, if you’re feeling old-school:
streamlit run src/web_interface.py
-
Profit
(Just kidding, this is open source.)
"A picture is worth a thousand words, but a screenshot is worth at least a bug report."
![]() 🏡Home Dashboard |
![]() 📤 Recommendation Page |
![]() 📊 Recommendation Preview |
![]() đź’¬ Analytics |
![]() 🤖 Analytics Preview |
![]() 📊 Explore Data |
![]() ⚙️ Data Preview |
![]() About |
Movie_Recommendation_System.mp4
- Hybrid recommendations (because two is better than one)
- Interactive Streamlit web UI
- Model evaluation and analytics
- Data exploration tools
- CLI mode for the terminally inclined
- Sarcastic comments (optional, but recommended)
Pull requests are welcome!
If you find a bug, congratulations—you’re now a contributor.
Open an issue or submit a PR.
Just don’t break the build (seriously).
MIT License.
Because lawyers need jobs too.
Made with ❤️ and a dash of cynicism by DevanshSrajput