Customer churn, also known as attrition, occurs when a customer stops doing business with a company. Understanding and detecting churn is the first step to retaining these customers and improving the company's offerings. IBM created a dataset for a fictional telecommunication company which can be downloaded here. Conveniently, the dataset contains a column churn to determine whether the customer has churned.
For this problem, you should put yourself in the position of a Data Scientist working at Telco. Your goal is to build a model to predict a customer's likelihood of churn and provide recommendations on how Telco can reduce churn. The solution should include a detailed guide (including code) that makes it possible to replicate the model and recommendations.
In addition to the code and replication guidelines, please also detail:
Note: sample solutions are intended for demonstration purposes (they are not intended to be very detailed). We encourage anyone attempting these problems to dive deeper to answer the questions outlined above.