电信客户流失分析实战
分析目标
找到流失用户特点
预测用户是否流失
提出优化建议
源数据
数据预处理
数据清洗
import pandas as pdf = pd.read_csv(r'D:\Data\电信用户流失'r'\WA_Fn-UseC_-Telco-Customer-Churn - Copy.csv')#检索数据
print(pd.isnull(f).sum(), f.info())#按列检索数据
# for x in f.columns:
# test = f.loc[:, x].value_counts()
# print('{0} 的行数是:{1}'.format(x, test.sum()))
# print('{0} 的数据类型是:{1}'.format(x, f[x].dtypes))
# print('{0} 的内容是:\n{1}\n'.format(x, test))#object转为float
f['TotalCharges'] = f['TotalCharges'].convert_dtypes(float)
print(f.shape)#去空值
f.dropna(how='any', inplace=True)
#去重复
f.drop_duplicates(inplace=True)
#去' '
index = f[(f['TotalCharges'] == ' ')].index.tolist()
f.drop(index=index, inplace=True)
print(f.shape)
f.to_csv(r'D:\Data\电信用户流失'r'\WA_Fn-UseC_-Telco-Customer-Churn - Copy1.csv', index=False)
字段分析
字段 | 含义 |
---|---|
Customer ID | 用户ID |
Gender | 性别 |
Senior Citizen | 是否老年人 |
Partner | 是否结婚 |
Dependents | 是否有亲属 |
Tenure | 使用时长 |
Phone Service | 是否有电话服务 |
Multiple Lines | 是否多机号 |
Internet Service | 是否连接宽带 |
Online Security | 是否开通网络安全服务 |
Online Backup | 是否有线上备份 |
Device Protection | 是否有设备保护 |
Tech Support | 是否有技术支持 |
Streaming TV | 是否订购电视 |
Streaming Movies | 是否订购电影 |
Contract | 合同时长 |
Paperless Billing | 是否有电子账单 |
Payment Method | 客户支付方式 |
Monthly Charges | 每月消费金额 |
Total Charges | 累计消费金额 |
Churn | 是否流失 |
目标字段:
Churn(主指标)
影响字段:
除Customer ID和Churn外都可能是影响字段
按维度划分字段
数据分析与可视化
客户属性
相对比率
总体比率
性别与流失率几乎不相关
老年用户流失率高
没有伴侣的用户流失率高
无家属的用户流失率高
服务属性
手机服务
相对比率
总体比率
手机服务订购与否与流失率几乎不相关
是否多号码与流失率几乎不相关
网络服务
相对比率
总体比率
相对比率
总体比率
按网络服务订购方式,订购光纤网络的用户流失率最高
在订购了网络各项服务的用户中:
- 没有订阅电视流失率略微高
- 没有订阅电影流失率略微高
- 没有订购网络安全流失率高
- 没有订购网络备份流失率高
- 没有订购设备保护流失率高
- 没有订购技术支持流失率高
合同属性
随使用时长增加流失率降低
随付费增加流失率略微降低
月均付费与流失率几乎无关系
相对比率
总体比率
按月缴费用户流失率高
使用电子账单的流失率高
使用电子支付的流失率高
按所有属性划分(排除影响小的)
排名第一的属性
由此可以看出,拥有月度付费习惯,所有业务都不订购的用户流失率最高
总结
从总体上看,应该提高各项业务的订购率,可以通过促销等手段提高业务订购率,增加用户的粘性。
从维度上看:
- 提高无家属用户粘性
- 改善光纤服务质量
- 鼓励用户按年度付费,改善在线支付、账单系统体验
预测模型
import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.tree import DecisionTreeClassifier# 预处理数据
f = pd.read_csv(r'D:\Data\电信用户流失'r'\WA_Fn-UseC_-Telco-Customer-Churn - Copy1.csv', index_col=0)
x = f.iloc[:, :-1]
y = f.iloc[:, -1:]
x_train, x_test, y_train, y_test = train_test_split(x, y, stratify=y)
transfer = DictVectorizer(sparse=False)
x_train = transfer.fit_transform(x_train.to_dict(orient="records"))
x_test = transfer.fit_transform(x_test.to_dict(orient="records"))# 模型训练优化
model = DecisionTreeClassifier()
param = {"criterion": ['entropy', 'gini'],"max_depth": [3, 5, 8, 12, 15]}
gc = GridSearchCV(model, param_grid=param, cv=2)
gc.fit(x_train, y_train)# 评分和预测
print("决策树预测的准确率为:", gc.score(x_test, y_test))
print(gc.predict(x_test))
准确率:0.7861205915813424
电信客户流失分析实战相关推荐
- 实战案例 :电信客户流失分析与预测
本文所有代码都通过运行! 将从以下方面进行分析:1.背景 2.提出问题 3.理解数据 4.数据清洗 5.可视化分析 6.用户流失预测 7.结论和建议 本项目带你根据以上过程详细分析电信客户数据! 01 ...
- 实战 | 电信客户流失分析与预测
本文所有代码都通过运行! 将从以下方面进行分析:1.背景 2.提出问题 3.理解数据 4.数据清洗 5.可视化分析 6.用户流失预测 7.结论和建议 本项目带你根据以上过程详细分析电信客户数据! 01 ...
- python 数据分析 电信_基于Python的电信客户流失分析和预测
一.项目背景 电信服务是生活中常见的消费服务,在现代社会,凡是使用手机打电话,或者在家看电视,都必须通过电信运营商提供的通话.网络等服务才能实现.本文采用来自kaggle平台的电信客户数据集,来分析人 ...
- 大数据分析案例-对电信客户流失分析预警预测
目录 1.项目背景 2.项目简介 2.1数据说明 2.2变量介绍 2.3技术工具 3.算法原理 4.项目实施步骤 4.1导入数据 4.2理解数据 4.3数据预处理 4.4数据可视化 4.5特征工程 4 ...
- 电信客户流失分析与预测
一.项目背景 近年来,不论是传统行业还是互联网行业,都面临着用户流失问题.研究表明,企业可以在一周内失去100个用户,而同时又得到另外一个用户,从表明上来看业绩没有受到任何影响,而实际上争取这些新用户 ...
- 【数据分析与挖掘实战】电信用户流失分析与预测
背景 关于用户留存有这样一个观点,如果将用户流失率降低5%,公司利润将提升25%-85%.如今高居不下的获客成本让电信运营商遭遇"天花板",甚至陷入获客难的窘境.随着市场饱和度上升 ...
- Kaggle数据集之电信客户流失数据分析(一)
分析背景 某电信公司市场部为了预防用户流失,收集了已经打好流失标签的用户数据.现在要对流失用户情况进行分析,找出哪些用户可能会流失? 理解数据 采集数据 本数据集描述了电信用户是否流失以及其相关信息, ...
- 电信客户流失数据分析(一)
目录 来做个数据分析项目^-^ 任务1:探索数据集 任务2:哪些输入特征与顾客流失具有关联性? 来做个数据分析项目- 背景:在kaggle网站上发现了这个数据集,就顺手拿来做个数据分析的项目,希望发现 ...
- 电信客户流失数据分析(二)
任务3 如何判别客户是否为潜在流失对象? 数据集的基本背景以及各特征之间的关系分析可见 上一篇博文:电信客户流失数据分析(一) 数据集的输入与预处理(后续所有程序的基础): import seabor ...
最新文章
- python 面向对象_Python新手入门【面向对象】
- Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)
- gitlab的搭建与汉化
- 花木兰到底好看不,我用Python爬取了几万条评论!
- python写一个表白程序_520最实用的Python表白程序
- vscode中安装webpack_webpack项目配置流程
- 4.openSession() 、 getCurrentSession()与session上下文
- endp 汇编start_常见汇编代码
- 【Vue2.0】—vue-router(二十七)
- 小米手机卡顿如何解决
- secp256r1 c语言程序,区块链中的数学-secp256k1点压缩和公钥恢复原理
- 使用css3背景渐变中的透明度来设置不同颜色的背景渐变
- vue点击下载图片的实现
- as常用固定搭配_as固定短语搭配
- 华为harmonyos手机开发者,华为鸿蒙HarmonyOS2.0手机开发者Beta版正式发布
- PyCharm中怎么将非当前工程文件的目录的文件加到当前工程中
- For queries with named parameters you need to use provide names for method parameters. Use @Param fo
- 关于ETD.sys的系统蓝屏问题的解决
- ubuntu下完全卸载 opencv库 详细教程
- 2017年即将过半_免费OA系统行业OA厂商大转变