This project aims to develop a recommendation platform for a leading insurance provider. The platform includes three types of recommender systems: popularity-based, content-based, and collaborative filtering. The system is designed to help users find the best insurance products tailored to their needs and preferences.
-
Popularity-based Recommender System:
- Recommend top N products within a specific insurance type (g).
- Consider products with a minimum rating threshold (t).
- Order products by ratings in descending order, ensuring each product has at least (t) reviews.
-
Content-based Recommender System:
- Recommend top N products based on similar product types.
-
Collaborative-based Recommender System:
- Recommend top N products based on "K" similar users for a target user "u".
- Import Libraries and Load Dataset:
- Import necessary Python libraries for data manipulation, visualization, and modeling.
- Load the dataset containing insurance product information and user reviews.
- Understanding Feature Distribution:
- Analyze the distribution of various features in the dataset.
- Unique Users and Products:
- Identify the number of unique users and products in the dataset.
- Average Rating and Total Products by Insurance Type:
- Calculate the average rating and total number of products for each insurance type.
- Unique Insurances:
- Determine the unique insurance types considered in the dataset.
-
Popularity-based Recommender System:
- Filter products based on the insurance type and minimum rating threshold.
- Sort products by ratings in descending order.
- Recommend the top N products.
-
Content-based Recommender System:
- Use product features to find similar products.
- Recommend top N products based on similarity to a given product type.
-
Collaborative-based Recommender System:
- Identify similar users based on their ratings and preferences.
- Recommend top N products for a target user based on the preferences of similar users.
- Create a user-friendly interface using Streamlit to interact with the recommendation modules.
- Allow users to input parameters such as insurance type, minimum rating threshold, number of recommendations, product type, and target user.
data/
: Contains the dataset used for the project.notebooks/
: Jupyter notebooks for data analysis, modeling, and testing.src/
: Python scripts for the recommendation modules and Streamlit app.api/
: Api code (if any).models/
: Trained models and saved results.docs/
: Output files including recommendation results and evaluation metrics.
-
Clone the Repository:
git clone https://github.com/MariahFerns/Product-Recommender---Insurance.git cd Product-Recommender---Insurance
-
Install the required libraries:
pip install -r requirements.txt
-
Run Jupyter Notebooks: Navigate to the notebooks/ folder and open the notebooks to explore data analysis and model development.
-
Run Streamlit Application:
streamlit run src/app.py