← Back to selected work

AI-Powered Insurance Recommendation System

View on GitHub

Undergraduate thesis project recommending personalized insurance policies from customer profiles, comparing Random Forest, XGBoost, Naive Bayes, Decision Trees, Artificial Neural Networks, and Bayesian Belief Networks against each other. Addresses class imbalance with SMOTE, ADASYN, and Borderline-SMOTE, evaluates CTGAN-generated synthetic data, and ships as a working web app for interactive recommendations.

PythonPyTorchXGBoostScikit-learn
The problem

Recommending insurance policies is harder than typical recommendation problems because of a cold start for new customers, class imbalance in who buys what, and customer profiles that are genuinely complex. This undergraduate thesis project set out to build and evaluate a personalized recommendation system that addresses those three problems directly rather than assuming clean, balanced data.

The approach

Six classifiers, Random Forest, XGBoost, Naive Bayes, Decision Trees, an Artificial Neural Network, and a Bayesian Belief Network, were trained and compared on the same customer data so the final model choice was evidence-based. Class imbalance was addressed with a set of oversampling and undersampling techniques (SMOTE, ADASYN, Borderline-SMOTE, Random Undersampling, TomekLinks, Edited Nearest Neighbors) tested individually and in hybrid combinations rather than applying one default method. A CTGAN model was separately evaluated for generating synthetic training data, checking whether synthetic augmentation could help beyond resampling alone. The final recommendation model was deployed in a Streamlit web app so a user profile could be entered and a policy recommendation returned interactively.

Results
6
classifiers compared, from Naive Bayes to a Bayesian Belief Network
6
resampling techniques evaluated for class imbalance
CTGAN
evaluated for synthetic training data generation
Streamlit
interactive web app for live recommendations
Stack
PythonPyTorchXGBoostCatBoostLightGBMScikit-learnStreamlit
👋 Hi, I'm a digital version of Lasantha. Ask me about my work.