# Hybrid Recommender System
This repository contains the implementation of a Hybrid Recommender System that utilizes both item-based and user-based collaborative filtering methods to predict and recommend products. The system is designed to leverage data from the "Online Retail II" dataset detailing transactions from a UK-based retail company specializing in gift items. The dataset covers transactions from December 1, 2009, to December 9, 2011.
## Dataset Story
The "Online Retail II" dataset features sales transactions from an online retail company based in the UK, operating between December 1, 2009, and December 9, 2011. The company's product catalog mainly consists of gift items, and it primarily serves wholesale customers.
### Data Overview
- **Variables**: 8
- **Observations**: 541,909
- **Size**: 45.6 MB
### Data Fields
- **InvoiceNo**: Invoice number (A code starting with 'C' indicates a cancelled transaction)
- **StockCode**: Unique product code
- **Description**: Product name
- **Quantity**: Quantity of each product per invoice
- **InvoiceDate**: Date of the invoice
- **UnitPrice**: Price per unit in GBP (£)
- **CustomerID**: Unique customer identifier
- **Country**: Country name
The dataset also includes customer service transactions categorized by type and timestamp.
- **UserId**: Customer number
- **ServiceId**: Anonymized services under different categories (e.g., upholstery cleaning under the cleaning category)
- **CategoryId**: Anonymized categories (e.g., Cleaning, Transportation, Renovation)
- **CreateDate**: Date the service was purchased
## Project Objective
Implement a hybrid recommender system that provides predictions using both item-based and user-based collaborative filtering methods. For a given user ID, the system should generate:
- 5 recommendations from the user-based model
- 5 recommendations from the item-based model
- A final list of 10 recommendations combining both models
## Setup and Installation
To run this project, you will need Python and the following libraries installed:
- pandas
- numpy
- scikit-learn
You can install these packages using pip:
```bash
pip install pandas numpy scikit-learn
Instructions on how to use the recommender system and examples of output can be found in the Jupyter notebooks included in this repository.
Contributions to this project are welcome. Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License - see the LICENSE.md file for details.
This README.md file provides a comprehensive overview of your project, the dataset used, project objectives, setup instructions, usage details, and guidelines for contributing to the project. Make sure to tailor the specifics such as setup instructions or dependency details according to the actual structure and requirements of your repository.