"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鈥檚 explainable.
-
Hybrid Model:
Combines both approaches, so you get the worst of both worlds (just kidding, it鈥檚 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鈥檛 like strings).
- Engineer content features (genres, tags, etc.).
- Split into train/test, because we鈥檙e 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鈥檒l 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.pyOr, if you鈥檙e 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鈥攜ou鈥檙e now a contributor.
Open an issue or submit a PR.
Just don鈥檛 break the build (seriously).
MIT License.
Because lawyers need jobs too.







