In today's digital banking, converting leads into customers presents a considerable challenge. Leads come from diverse channels like online searches, display ads, email campaigns and affiliate partnerships. Happy Customer Bank is also grappling with low conversion rates and seeks to improve its performance for a particular loan product.
This task originates from a competition hosted by Analytics Vidhya in 2015, though its details are no longer available.
The dataset contains information about leads, including details such as gender, date of birth, monthly income, employer name, loan amount, interaction data and more. A detailed description can be found in the "Project_main" notebook.
Several challenges are present, including:
- highly imbalanced classes,
- a large number of missing values,
- various data types,
- some variables with unknown meaning.
The primary task is to estimate the probability of loan disbursal, using ROC AUC as the evaluation metric. By identifying potential customers who are more likely to be approved for a loan, the bank can focus its efforts more effectively, thereby increasing its conversion rate.
An additional step involves assessing the classification skills of the tested models at different discrimination thresholds. Although the choice of threshold can be influenced by various business factors, a secondary objective is to determine the optimal threshold as a reference point.
The progress, results and comments are documented in the "Project-main" notebook. Utilities specifically developed for this project are located in the "src" module. Due to the extended duration of certain experiments, their results were saved in the "results_data" folder.
To recreate the environment using the included YAML file:
conda env create -f environment.yml
To activate the environment:
conda activate happy_customer_bank
To create the Jupyter environment kernel:
python -m ipykernel install --user --name=happy_customer_bank
The project encompassed an exploration of various aspects, including data preprocessing, class balancing, hyperparameter tuning and model selection.
In the initial testing phase, four models were identified that exhibited similar behavior and potential effectiveness for the problem. Following further optimization, the RandomForestClassifier achieved the highest ROC AUC score of 0.85. However, all of these models could be similarly effective. The final results are depicted below.
This solution could serve as a promising starting point for further efforts to enhance the customer conversion rate at the bank. However, it should be noted that the developed models may not be suitable for precise classification, irrespective of the chosen discrimination threshold.
The experiments conducted represent only an initial exploration in tackling this challenge. As the focus was primarily on tree-based ensembles, there is potential to explore other model types and different data transformations.