分析目标

找到流失用户特点
预测用户是否流失
提出优化建议

源数据

数据预处理

数据清洗

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. 实战案例 :电信客户流失分析与预测

    本文所有代码都通过运行! 将从以下方面进行分析:1.背景 2.提出问题 3.理解数据 4.数据清洗 5.可视化分析 6.用户流失预测 7.结论和建议 本项目带你根据以上过程详细分析电信客户数据! 01 ...

  2. 实战 | 电信客户流失分析与预测

    本文所有代码都通过运行! 将从以下方面进行分析:1.背景 2.提出问题 3.理解数据 4.数据清洗 5.可视化分析 6.用户流失预测 7.结论和建议 本项目带你根据以上过程详细分析电信客户数据! 01 ...

  3. python 数据分析 电信_基于Python的电信客户流失分析和预测

    一.项目背景 电信服务是生活中常见的消费服务,在现代社会,凡是使用手机打电话,或者在家看电视,都必须通过电信运营商提供的通话.网络等服务才能实现.本文采用来自kaggle平台的电信客户数据集,来分析人 ...

  4. 大数据分析案例-对电信客户流失分析预警预测

    目录 1.项目背景 2.项目简介 2.1数据说明 2.2变量介绍 2.3技术工具 3.算法原理 4.项目实施步骤 4.1导入数据 4.2理解数据 4.3数据预处理 4.4数据可视化 4.5特征工程 4 ...

  5. 电信客户流失分析与预测

    一.项目背景 近年来,不论是传统行业还是互联网行业,都面临着用户流失问题.研究表明,企业可以在一周内失去100个用户,而同时又得到另外一个用户,从表明上来看业绩没有受到任何影响,而实际上争取这些新用户 ...

  6. 【数据分析与挖掘实战】电信用户流失分析与预测

    背景 关于用户留存有这样一个观点,如果将用户流失率降低5%,公司利润将提升25%-85%.如今高居不下的获客成本让电信运营商遭遇"天花板",甚至陷入获客难的窘境.随着市场饱和度上升 ...

  7. Kaggle数据集之电信客户流失数据分析(一)

    分析背景 某电信公司市场部为了预防用户流失,收集了已经打好流失标签的用户数据.现在要对流失用户情况进行分析,找出哪些用户可能会流失? 理解数据 采集数据 本数据集描述了电信用户是否流失以及其相关信息, ...

  8. 电信客户流失数据分析(一)

    目录 来做个数据分析项目^-^ 任务1:探索数据集 任务2:哪些输入特征与顾客流失具有关联性? 来做个数据分析项目- 背景:在kaggle网站上发现了这个数据集,就顺手拿来做个数据分析的项目,希望发现 ...

  9. 电信客户流失数据分析(二)

    任务3 如何判别客户是否为潜在流失对象? 数据集的基本背景以及各特征之间的关系分析可见 上一篇博文:电信客户流失数据分析(一) 数据集的输入与预处理(后续所有程序的基础): import seabor ...

最新文章

  1. python 面向对象_Python新手入门【面向对象】
  2. Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)
  3. gitlab的搭建与汉化
  4. 花木兰到底好看不,我用Python爬取了几万条评论!
  5. python写一个表白程序_520最实用的Python表白程序
  6. vscode中安装webpack_webpack项目配置流程
  7. 4.openSession() 、 getCurrentSession()与session上下文
  8. endp 汇编start_常见汇编代码
  9. 【Vue2.0】—vue-router(二十七)
  10. 小米手机卡顿如何解决
  11. secp256r1 c语言程序,区块链中的数学-secp256k1点压缩和公钥恢复原理
  12. 使用css3背景渐变中的透明度来设置不同颜色的背景渐变
  13. vue点击下载图片的实现
  14. as常用固定搭配_as固定短语搭配
  15. 华为harmonyos手机开发者,华为鸿蒙HarmonyOS2.0手机开发者Beta版正式发布
  16. PyCharm中怎么将非当前工程文件的目录的文件加到当前工程中
  17. For queries with named parameters you need to use provide names for method parameters. Use @Param fo
  18. 关于ETD.sys的系统蓝屏问题的解决
  19. ubuntu下完全卸载 opencv库 详细教程
  20. 2017年即将过半_免费OA系统行业OA厂商大转变

热门文章

  1. Java序列化与反序列化(一)
  2. 《人民的名义》小说文本分析
  3. IT傻博士-CCNA课程在线视频(1-5)
  4. 脑电波也能卖萌 这样的传感器好特别
  5. docker for mysql
  6. 吞噬星空是鸿蒙三部曲吗,星辰变吞噬星空盘龙三部有什么关系
  7. 搜狐狐友营销的十二个办法
  8. 雇用黑客 好处 坏处和弊端
  9. 计算机和生命体畅想曲
  10. 高通与安卓水火不容 Android音频系统缺陷测评