Skip to content

Predicting Customer Churn

Mô tả dữ liệu Churn.csv:

  • CustServ_Calls: số cuộc gọi dịch vụ mà khách hàng đã thực hiện
  • Vmail_Message: số tin nhắn thoại mà khách hàng đã thực hiện
  • Intl_Mins: thời lượng cuộc gọi quốc tế (phút)
  • Day_Mins: thới lượng cuộc gọi ngày (phút)
  • Night_Mins: thời lượng cuộc gọi đêm (phút)
  • Eve_Mins: thời lượng cuộc gọi tối (phút)
  • State: nơi ở của khách hàng (bang)
  • Intl_Plan: gói cước quốc tế (no: không và yes: có)
  • Vmail_Plan: gói cước tin nhắn thoại (no: không và yes: có)
  • Churn: cho biết khách hàng có bỏ dịch vụ không (no: không và yes: có)
# Import any packages you want to use here
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import StandardScaler

Add your notes here

# Add your code snippets here
telco = pd.read_csv('datasets/Churn.csv')
telco.head()
telco.info()

1. Exploratory Data Analysis

telco['Churn'].value_counts() # Xem có bao nhiêu người hủy dịch vụ (churner)

Có 2850 non-churners và 483 churners.

Ta xem xét sự khách nhau giữa khách hàng ở lớp 'yes' và lớp 'no'.

# Trung bình số cuộc gọi và số tin nhắn thoại 
telco.groupby(['Churn'])['CustServ_Calls', 'Vmail_Message'] .mean().round(2)
# Độ lệch chuẩn của số cuộc gọi và số tin nhắn thoại
telco.groupby(['Churn'])['CustServ_Calls', 'Vmail_Message'] .std().round(2)

Nhận xét: Những churner:

  • Thực hiện nhiều cuộc gọi hơn non-churner
  • Thực hiện ít tin nhắn thoại hơn non-churner
# Đếm số lượng churner theo bang
telco.groupby('State')['Churn'].value_counts()

Kiểm tra phân phối của một số biến.