Skip to content

Latest commit

History

History
167 lines (120 loc) 路 4.75 KB

File metadata and controls

167 lines (120 loc) 路 4.75 KB

馃幀 Hybrid Recommendation System

"Because Netflix isn't going to recommend itself..."


Table of Contents


About

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.


Model Details

  • 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.

Dataset Used

  • MovieLens (100k, 1M, or 10M, depending on how much RAM you want to sacrifice)

Approach

  1. 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.
  2. 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.
  3. 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.
  4. 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.

How to Run

  1. Clone this repo

    git clone https://github.com/DevanshSrajput/hybrid-recommendation-system.git
    cd hybrid-recommendation-system
    
  2. Install dependencies

    pip install -r requirements.txt
    
  3. Launch the web interface

    python main.py
    

    Or, if you鈥檙e feeling old-school:

    streamlit run src/web_interface.py
    
  4. Profit
    (Just kidding, this is open source.)


Demo Screenshots / Video

"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
  • WalkThrough Video:

Movie_Recommendation_System.mp4

Features

  • 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)

Contributing

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).


License

MIT License.
Because lawyers need jobs too.