Python助力电信客户流失分析与预测

引言

电信服务是生活中常见的消费服务,在现代社会,使用手机打电话、在家看电视,都必须通过电信运营商提供的通话、网络等服务才能实现。

随着市场饱和度上升,电信运营商亟待解决增加用户黏性,延长用户生命周期的问题。关于用户留存有这样一个观点,如果将用户流失率降低5%,公司利润将提升25%-85%

本文将通过采集电信客户数据集,来分析人们对电信服务的使用情况,帮助电信运营商找出客户流失的原因,以帮助运营商解决用户流失问题,降低流失率。

我们知道数据分析就像医生诊断病情一样,包括明确目标 > 数据处理 > 数据分析 > 数据展现 > 报告撰写几个流程。

流程1: 明确目标

1 理解业务

在业务分析之前,需要理解业务流程和背景。

2 理解数据

理解了业务逻辑,现在我们看看有哪些数据可以拿来分析?

我们手头的数据集共有21个字段,7043条记录,每条记录表示一个客户。

通过分类,将字段分为4类:基本信息、开通的服务信息、付费信息、流失标签

  • 基本信息包括性别、年龄(以是否老年人来区分)、是否有合伙伙伴(可以理解为工作伙伴或者朋友之类的)以及家属,在网时长。

  • 服务信息分为两类基本服务:电话+网络服务,这两类基本服务又有各自的增值服务,如:多线电话、网络安全、在线备份等。

  • 付费信息包括支付方式、合同期限、消费金额等。

3 分析目标

通过分析客户对电信服务的使用情况,找出影响客户流失的因素,并针对这些因素建立预测模型,帮助用户运营商降低流失率。

4 分析思路

根据业务背景,根据数据驱动而拆解的分析思路:

  1. 分析用户特征与流失是否存在关系(假设);

  2. 流失用户是否具有普遍具有的特征情况(假设);

  3. 针对性给出增加用户黏性、预防流失的建议(交付结果)。

流程2: 数据处理

一般情况下,我们拿到的数据进行导入后,需要进行数据清洗和整理,数据清洗其中就包括处理缺失值、重复值和异常值。

数据导入之后,我们在查看数据信息的时候,发现金额应该是float类型而不是object类型,所以我们需要对该字段进行数据类型转换

转化好数据类型问题后,我们来对缺失值、重复值和异常值进行处理。

通过以上的操作,我们就完成了对数据的清理和整理。

流程3: 数据分析与数据展现

我们整理好数据之后,从三个方面进行分析:用户基本信息、开通的服务信息和付费信息。在开始分析前先用可视化图表呈现总流失用户数量占比。

由上面两张图可看出,流失人数占了总人数仅1/4,达到了近2000人。

1 根据用户基本信息进行分析

01

根据用户性别维度分析

上图为不同性别的情况下客户客户流失率情况,可以看出男女流失情况几乎一模一样,因此可以认为用户流失与性别基本无关

02

根据用户年龄维度分析

上图为不同年龄的情况下客户流失情况。可以看出,非老年人的流失人数占比约为24%,而老年人的流失人数占比约为42%,接近非老年人的2倍。猜测老年人由于对电信服务需求不高或者不熟悉电子设备的操作等原因,因此更加容易流失

由于上面的年龄、性别这些特征是用户的自身属性,因此我们接下来主要研究外部因素(即有无伙伴或亲属)对用户流失的影响

03

根据用户是否有伙伴或亲属维度分析

左右滑动查看更多

这是一个值得注意的信号:虽然无伙伴或亲属的客户通话需求比较少,但由于这部分客户人数占比近50%,若能挖缺其潜在需求(如网络需求),并降低他们的流失率,则可以有效降低运营商的成本。

04

根据用户在网时长维度分析

上图表示不同在网时长对应流失与非流失人数分布情况。由上图可知,在网时长大约在0至22个月时,流失用户的分布高于留存用户的分布。说明在网时长小于22个月的人群更易流失

根据对用户基本信息的分析,可以得到以下结论:

  1. 年龄、是否有伙伴或亲属、在网时长对客户的流失率有影响;

  2. 性别不影响客户的流失率;

  3. 老年人无伙伴或无亲属的客户流失率更高;

  4. 网时间在22个月内的人群是高危流失人群。

2 根据用户开通的服务信息进行分析

01

根据开通电话服务维度分析

由上面电话服务流失条形图可以看出,开通电话服务与否对用户流失基本无影响

02

根据开通多线服务维度分析

上图为开通多线服务与否的客户流失人数占比,可以看出开通多线服务的流失人数略微高于未开通的流失人数

03

根据开通网络服务维度分析

网络服务中,选择光纤类型的客户流失率高达40%,远高于选择其他两种增值业务的流失率。因此,下面针对光纤用户进行其他增值服务的分析。

04

根据开通光纤服务且选择增值服务维度分析

上图可以看出,开通流媒体电视服务和电影服务流失的人数显著高于开通其他四种增值服务的人数,且达到35%+。因此,我们认定流媒体电视服务和电影服务对用户流失影响显著

05

根据开通网络服务且选择增值服务维度分析

经观察发现所有开通网络服务的用户关于增值服务的流失情况都呈同样的分布,说明增值服务是导致客户流失率增加的重要因素。

根据对用户开通的服务信息的分析,可以得到以下结论:

  1. 电话服务整体对用户流失基本无影响,且多线服务对用户流失影响较小。

  2. 光纤用户的流失占比相当高,此外所有网络服务中流媒体电视服务流媒体电影服务都对客户流失影响显著。

3

根据用户的付费信息进行分析

01

根据合同类型维度分析

由上图我们可以发现,月付的用户流失率远远高于其他两种类型,是签订一年合同的用户流失率的四倍,是签订两年合同的用户流失率的十几倍。

02

根据纸质化账单维度分析

由图可知 质化账单流失率是非纸质化账单流失率的两倍以上。

03

根据支付方式维度分析

上图表示不同的付款方式下客户的流失率对比,可以看出以电子支票方式支付的用户流失率非常高,远超于其他支付类型。

04

根据消费金额维度分析

由上图可以看出:流失人数大部分分布在月消费额在70-110之间的用户;另外,可以观察到在总消费金额超过3000时,留存用户和流失用户的比例大约保持在2:1,因此,推断总消费金额越高的用户越不容易流失。

根据对用户的付费信息的分析,可以得到以下结论:

  1. 签订合同方式对客户流失率影响为:按月签订 > 按一年签订 > 按两年签订,证明长期合同最能保留客户。

  2. 采用电子支票支付以及采用纸质化账单的流失率较高,推测这两种方式的使用体验均为一般。

  3. 月消费额大约在70-110之间用户流失率较高。长期来看,用户总消费越高,流失率越低,符合一般经验。

流程4:报告撰写

通过本项目的分析,得出如下结论:

针对上述结论,我们可以针对高流失用户的特征,给出相对应的建议和对策,降低客户流失率

到这里你会发现,当我们借助工具,深入分析一份简单的销售数据时,我们可以发现其中蕴含着极其有价值的信息,通过挖掘数据背后的价值,让它为我们所用

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中进行电信客户流失预测分析,通常会涉及到数据预处理、特征工程、模型选择和训练、以及结果评估。这里是一个简化的示例,我们将使用scikit-learn库来演示线性回归模型作为预测工具。首先,确保你已经安装了必要的库,如pandas, numpy, scikit-learn等。 ```python # 导入所需库 import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score from sklearn.preprocessing import StandardScaler # 加载数据(假设你有一个CSV文件) data = pd.read_csv('telecom_customer_data.csv') # 数据预处理 # 检查并处理缺失值 data = data.dropna() # 或者使用其他方法填充缺失值 # 将分类变量转换为数值(例如,使用OneHotEncoder或LabelEncoder) data = pd.get_dummies(data) # 定义目标变量(客户流失) target_column = 'churn' X = data.drop(target_column, axis=1) y = data[target_column] # 划分数据集(70%训练集,30%测试集) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 特征缩放(可选) scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # 创建并训练模型 model = LinearRegression() model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) # 评估模型性能 mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print(f"Mean Squared Error: {mse}") print(f"R^2 Score: {r2}") # 相关问题-- 1. 在实际应用中,如何选择合适的特征对模型性能影响更大? 2. 如何处理非线性关系,如果电信数据包含非线性特征? 3. 进一步提升模型性能时,你可能会尝试哪些机器学习算法或深度学习模型? ``` 这个例子是一个基础框架,实际分析可能需要根据具体的数据和业务需求进行调整。你可以根据上述代码扩展到更复杂的特征工程、使用不同模型、或者探索交叉验证和网格搜索等高级技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值