This was a challenge by ZINDI. I have uploaded the code here only because the challenge was completed and the winners were rewarded.
I have used different approaches to solving the problem noting the scores of the models at the end of each .ipynb file as a comment
Below is the information about the challenge
Download the Train and Test data from below link https://zindi.africa/competitions/expresso-churn-prediction/data
############################################################################################################
Description Expresso is an African telecommunications company that provides customers with airtime and mobile data bundles. The objective of this challenge is to develop a machine learning model to predict the likelihood of each Expresso customer “churning,” i.e. becoming inactive and not making any transactions for 90 days.
This solution will help Expresso to better serve their customers by understanding which customers are at risk of leaving.
See more here : https://zindi.africa/competitions/expresso-churn-prediction