- Project Description
- Project Goal
- Initial Thoughts
- Plan
- Data Dictionary
- Steps to Reproduce
- Conclusions
- Analyzing Customer Churn Factors for Predictive Insights
The Telco Telecommunication company provides phone, internet, streaming and other add-on services to their customers. This project will involve analysis of the various elements of customer churns to determine if they increase or decrease the probability of customer churn
- Identify drivers for churn of Telco customers
- Utilze drivers to develop a Machine Learning model to classify churn as a customer ending their contract or not ending their contract with Telco.
- The details of could provide further insight on which customer elements contribute to or detract from a customer churning.
My initial hypothesis is that the drive of churn may be impacted by customers not opting for online security as part of their contract services.
-
Acquire data from Codeup MySQL Database
-
Prepare data
- Feature Engineer columns from existing data
- online_security
- online_backup
- device_protection
- tech_support
- streaming_tv
- streaming_movies
- tech_support
- Feature Engineer columns from existing data
-
Explore data in search of impactful drivers of churn
- Answer the following initial questions,
- Is Churn independent from online Security?
- Is Churn independent from internet service types?
- Is there a difference in churn based on monthly charges? Total charges?
- Does having more than one add-on affect churn?
- Does the contract type affect churn?
- Answer the following initial questions,
-
Develop a Model to predict if a customer will churn
- Use drivers identified in explore to help build predictive models of different types
- Evaluate models on train and validate data
- Select the best model based on highest accuracy
- Evaluate the best performing model on test data
-
Draw conclusions
Feature | Values | Definition |
---|---|---|
customer_id | Alpha-numeric | Unique ID for each customer |
gender | Female/Male | Gender of customer |
senior_citizen | True=1/False=0 | Whether customer is a senior citizen or not |
partner | True=1/False=0 | True=1/False=0, whether customer has a partner or not |
dependents | True=1/False=0 | True=1/False=0, whether customer has dependents or not |
phone_service | True=1/False=0 | True=1/False=0, whether customer has phone service or not |
multiple_lines | Yes/No/No phone service | Whether customer has multiple lines or not |
internet_service_type | None/DSL/Fiber Optic | Which internet service customer has |
online_security | Yes/No/No internet service | Whether customer has online_security |
online_backup | Yes/No/No internet service | Whether customer has online_backup |
device_protection | Yes/No/No internet service | Whether customer has device_protection |
tech_support | Yes/No/No internet service | Whether customer has tech_support |
streaming_tv | Yes/No/No internet service | Whether customer has streaming_tv |
streaming_movies | Yes/No/No internet service | Whether customer has streaming_movies |
contract_type | 3 options | Month-to-Month/One-year/Two-year, term of contract |
payment_type | 4 options (2 auto) | Customer payment method |
paperless_billing | True=1/False=0 | Whether a customer has paperless billing enabled |
monthly_charges | Numeric USD | Amount customer is charged monthly |
total_charges | Numeric USD | Total amount customer has been charged |
tenure | Numeric | Number of months customer has stayed |
churn (target) | True=1/False=0 | Whether or not the customer has churned |
Additional Features | True=1/False=0 | Encoded values for categorical data |
- Clone this repo following the code link at the top
- If you have granted access to the Codeup MySQL DB:
- Save env.py in the repo with
user
,password
, andhost
variables and add to .gitignore file - Run jupyter notebook or VS Code file
- Save env.py in the repo with
- If you don't have granted access:
- Request access from Codeup staff
- Return to step 2
- Phone service was found to be a driver of churn.
- Internet service was not a driver of churn.
- Monthly charges was found to be a driver of churn, higher charges for churn.
- Check with the finance department to figure out if there are issues with the phone service option.
- Check to see if multiple phone lines have a impact on churn.
- Given more time I could check what is causing the phone service leading to high churn.