电信客户流失率分析2025 年 1 月 5 日 | 11 分钟阅读 在本教程中,我们将介绍如何使用 Kaggle 电信客户数据集开发简单实用模型来分析流失率。
缺点和未来研究都包含在具体流程中。 背景鉴于使用电话服务的消费者数量大幅增加,电信公司的营销部门旨在留住现有客户,防止他们终止合同,同时吸引更多新客户。为了发展其客户群,电信公司的增长率必须超过其客户流失率。提供更好的定价、更快的互联网连接以及更安全的在线体验是导致现有客户离开电信公司的一些原因。 高离职率会损害企业的利润并阻碍增长。通过我们的流失预测,电信行业将能够确定其留住现有客户的效率,并找出导致现有客户终止合同的基本原因。 通过我们的研究,电信公司可以确定其产品是否比竞争对手更有优势。由于维护现有客户的成本远高于获取新客户,因此该公司可以利用流失率研究来提供折扣、独家优惠和更好的产品以留住现有客户。 数据集该电信公司的数据集源自 IBM 样本数据集集合,可在 Kaggle 上获取。该公司在加利福尼亚州为 7043 名互联网和住宅服务客户提供服务。我们的挑战是帮助该公司预测客户行为以留住他们作为客户,并分析所有相关的客户数据以制定有针对性的客户保留活动。 提供的数据集中包含以下详细信息
研究目标
研究的合理性 我们的流失研究对于电信公司理解客户为何停止使用其产品或服务至关重要。如果不知道因客户取消而造成的总收入损失、哪些客户正在取消以及为何取消,电信公司就很难改进其产品和服务。 我们将使用简单线性回归、二项逻辑回归、二项 Logit 回归和随机森林回归来分析客户流失行为,因为流失率分析是监督学习中常见的分类问题。 我们的研究将有助于公司通过关注客户的人口统计数据、账户详细信息、使用模式以及客户注册的服务,为如何降低客户流失率提供指导。 探索性分析和数据摘要 我们检查的次级数据可在免费使用的数据聚合平台 Kaggle 上获取。 以下代码包含部分相关数据。 数据介绍使用 Python 中的 Pandas 读取数据后,我们发现原始数据集没有缺失信息,并且大多数特征——包括性别、电话服务和付款方式——都是分类数据。月度费用和总费用都以数字表示。 相关性 在使用编码器和标签编码转换所有分类数据后,我们对每个特征进行了成对相关性分析 ![]() 热力图显示“合同”和“租期”这两个特征之间存在很强的关联。这是有道理的,因为这些特征衡量了客户的承诺程度。 “多线路”、“电视流媒体”、“电影流媒体”和“月度费用”之间存在很强的关联。我们认为这是因为喜欢看电影的人也更倾向于看电视。由于孩子们在观看电视节目或电影时消耗大量数据,他们的月度费用通常会增加。拥有多个电话线的客户的账单很可能比只有一个电话线的客户要高。 数据分析和主要发现简单线性回归、二项逻辑回归、二项 Logit 回归和随机森林回归是我们为数据选择的四种技术。 模型概述 让我们从描述简单线性回归模型开始,这是我们的第一个选择。该模型将目标预测为特征输入的加权和。由于线性回归是我们准确率的标准和比较点,因此其易用性构成了其绝大部分优缺点。 随机森林是我们最后一个模型,也是第四个模型,它是一个广泛使用的机器学习模型。组成随机森林模型的决策树是许多独立的、协同工作的树。 在我们的情况下,优点如下:(1) 它通常能提供很高的准确率,并且在偏差和方差之间取得了良好的平衡。(2) 它可以作为特征相关性的可视化。(3) 异常值对它的影响很小或没有影响。(4) 它支持线性和非线性关系。缺点如下:(1) 与早期模型相比,它更难理解。(2) 如果数据集很大,它会花费更长的时间。 源代码 # normalize=True 参数将返回唯一值的相对频率,给出比例而不是原始计数。 流失客户的比例远少于现有客户。因此,在本数据集中,26% 的客户离开了电信服务。 现在,让我们单独可视化每个变量。变量的类型有分类、有序和数值。 分类变量customerID(假设它是一个标识符,不作为特征使用)
有序变量SeniorCitizen(假设它是一个二元变量,但其顺序性可能取决于特定上下文) 数值变量
数据可视化自变量(分类)——用于检查**异常值** 源代码 输出 ![]() 观察:在分类列中未发现异常值 检测分类列中的异常值与检测数值列中的异常值有所不同。在分类列中,通常不像数值那样有“异常值”的概念。但是,您可以检查可能因频率而被视为异常值的异常或稀有类别。 以下是一些方法:
请记住,分类列中“异常值”的定义在一定程度上是主观的,并且取决于您数据的上下文。目标是识别稀有或具有异常模式的类别。 自变量(数值)——用于检查异常值 现在让我们看看所有数值变量之间的相关性。我们将使用热力图来可视化相关性。热力图通过颜色变化来可视化数据。颜色较深的变量表示它们的相关性更强。 特定领域分析 根据领域和业务背景,调查正相关的原因。是否存在特定的业务实践或原因可以解释这种关系?理解背景可以提供宝贵的见解。 预测建模 如果您的目标是构建预测模型,请考虑由于相关性很强,同时使用 tenure 和 total_charges 作为特征是否冗余。在某些情况下,您可以选择保留其中一个特征或应用降维技术。 输出 Fitting 5 folds for each of 50 candidates, totalling 250 fits [CV 1/5] END ........C=0.1, gamma=1, kernel=rbf;, score=0.735 total time= 2.1s [CV 2/5] END ........C=0.1, gamma=1, kernel=rbf;, score=0.735 total time= 1.8s [CV 3/5] END ........C=0.1, gamma=1, kernel=rbf;, score=0.735 total time= 1.8s [CV 4/5] END ........C=0.1, gamma=1, kernel=rbf;, score=0.735 total time= 1.9s [CV 5/5] END ........C=0.1, gamma=1, kernel=rbf;, score=0.734 total time= 1.5s [CV 1/5] END .....C=0.1, gamma=1, kernel=linear;, score=0.823 total time= 0.4s [CV 2/5] END .....C=0.1, gamma=1, kernel=linear;, score=0.809 total time= 0.3s [CV 3/5] END .....C=0.1, gamma=1, kernel=linear;, score=0.800 total time= 0.4s [CV 4/5] END .....C=0.1, gamma=1, kernel=linear;, score=0.791 total time= 0.4s [CV 5/5] END .....C=0.1, gamma=1, kernel=linear;, score=0.806 total time= 0.3s [CV 1/5] END ......C=0.1, gamma=0.1, kernel=rbf;, score=0.801 total time= 0.8s [CV 2/5] END ......C=0.1, gamma=0.1, kernel=rbf;, score=0.783 total time= 0.8s [CV 3/5] END ......C=0.1, gamma=0.1, kernel=rbf;, score=0.794 total time= 0.8s [CV 4/5] END ......C=0.1, gamma=0.1, kernel=rbf;, score=0.769 total time= 0.8s 源代码 输出 ![]() 局限性
下一主题条形图的替代方案 |
我们请求您订阅我们的新闻通讯以获取最新更新。