项目背景
AT&T数据,⽤户个⼈,通话,上⽹等信息数据,充分利⽤数据预测客户的流失情况,帮助挽留⽤户,保证⽤户基数和活跃程度。
数据信息
数据集下载:电信客户数据集
- CustomerID 客户ID
- Gender 性别
- partneratt 配偶是否也为att⽤户
- dependents_att 家⼈是否也是att⽤户
- landline 是否使⽤att固话服务
- internet_att/internet_other 是否使⽤att的互联⽹服务
- Paymentbank/creditcard/electroinc 付款⽅式
- MonthlyCharges 每⽉话费
- TotalCharges 累计话费
- Contract_month/1year ⽤户使⽤⽉度/年度合约
- StreamingTv/streamingMovies 是否使⽤在线视频或者电影app
- Churn 客户转化的flag
处理流程
- 基本数据处理
- 基本数据信息
- 缺失值和异常值处理
- 描述性分析(单变量分析)
- 连续型变量的指标
- 离散型变量的类别
- 预测样本比例
- 相关性分析(多变量相关性)
- 连续变量的相关性分析
- 相关性热力图
- 特征工程
- 数据分割
- 数据标准化处理
- 逻辑回归模型
- 逻辑回归应用
- 模型评估
具体代码如下
导入所有用到的包
# 导入包
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
from sklearn.metrics import roc_auc_score
from sklearn.linear_model import LogisticRegression
1.基本数据处理
导入数据并查看数据信息
# 导入数据集,并查看数据基本信息
df = pd.read_csv('churn.csv', sep=',', encoding='utf-8')
df.info()
离散变量数值化,并去除没用的特征
# 离散型变量转化为数值型
churn_df = pd.get_dummies(df)
# 去除重复的数据
churn_df.drop(['Churn_No', 'gender_Female'], axis=1, in