Back to Experience

Personal Finance Health Predictor

Personal Project

Machine Learning Engineer · Aug 2025 – Nov 2025 · Remote

PythonXGBoostLightGBMScikit-learnFastAPI
Illustration of an ROC curve, four customer clusters, and 285K+ records and 85.7% fraud recall stat tiles

Overview

This project looks at 285,000+ financial records to answer three business questions: which borrowers are likely to be a credit risk, which transactions are fraud, and what kinds of customers a financial company serves. The goal was to turn raw data into predictions a lender or marketing team can act on.

Challenge

Fraud is rare, so it's easy to miss. Reviewing loans by hand takes time, and marketing campaigns often go to everyone instead of the right customers. The results also had to be usable by other systems, not just sit in a notebook.

Solution

I built models that score credit risk, flag likely fraud, and sort customers into groups, then made them available through an API so other tools can use the predictions. I also made 40+ charts to explain what drives the results in plain terms.

Key Features

Credit risk prediction to flag risky borrowers

Fraud detection that catches rare, costly events

Customer personas for more personalized recommendations

40+ charts that explain what drives each prediction

A ready-to-use API for loan review and marketing teams

Work Done

  1. 1

    Three datasets, three problems

    Lending Club data for credit risk, a credit card fraud dataset for fraud detection, and German Credit data as an additional credit check, together over 285,000 records.

  2. 2

    Credit risk

    Compared logistic regression, random forest, XGBoost, and LightGBM to find the model that best separates safe borrowers from risky ones.

  3. 3

    Fraud detection

    Fraud is rare, so the data is heavily imbalanced. I balanced it with SMOTE and trained XGBoost and Isolation Forest, reaching 85.7% recall.

  4. 4

    Customer segmentation

    Used PCA with K-means, hierarchical clustering, and DBSCAN to find 4 customer personas.

  5. 5

    Features and evaluation

    Engineered 26+ features and evaluated models with 40+ visualizations, including ROC curves, confusion matrices, and feature plots.

  6. 6

    Serving predictions

    Exposed the models through a FastAPI service with 3 prediction endpoints and Pydantic request validation.

Impact

Caught 85.7% of fraud cases in the fraud detection model

Reduced manual loan review effort by 30%

Improved marketing conversion by 15 to 20% by identifying 4 distinct customer personas

Analyzed more than 285,000 financial records across three datasets

Explained results with 40+ visualizations that non-technical teams can read

Delivered 3 prediction endpoints that other tools can call

Technology Stack

Frontend

Jupyter NotebooksMatplotlibSeaborn

Backend

PythonFastAPIPydantic

Database

Lending ClubCredit Card FraudGerman Credit

Tools

Scikit-learnXGBoostLightGBMImbalanced-learnPandasNumPyGit/GitHub