基于决策树的电信客户流失预测与用户保留分析项目说明

详情介绍

电信行业客户流失一直是企业运营中的关键问题。如何从客户套餐、合同类型、资费水平和增值服务使用情况中识别高风险客户,并提前制定留存措施,是提升客户生命周期价值的重要方向。本项目围绕这一问题,基于机器学习方法实现客户流失预测与用户保留分析。

基于决策树的电信客户流失预测与用户保留分析项目说明

1. 课题介绍

电信行业客户流失一直是企业运营中的关键问题。如何从客户套餐、合同类型、资费水平和增值服务使用情况中识别高风险客户,并提前制定留存措施,是提升客户生命周期价值的重要方向。本项目围绕这一问题,基于机器学习方法实现客户流失预测与用户保留分析。

2. 研究目标

本项目的核心目标包括:

  • 建立电信客户流失预测模型
  • 以决策树为主模型分析客户流失关键因素
  • 对客户进行流失风险分层并提出保留策略
  • 搭建交互式分析与预测页面,提升展示和应用价值

3. 数据集介绍

3.1 数据来源

本项目使用 IBM Telco Customer Churn 公开数据集。

  • 数据文件:`data/Telco-Customer-Churn.csv`
  • 样本量:`7,043`
  • 原始字段数:`21`
  • 目标变量:`Churn`

3.2 数据集特点

该数据集记录了电信客户的基础属性、套餐情况、增值服务使用情况、月费用、总消费金额和是否流失等信息,适合开展客户流失预测、影响因素分析和留存策略研究。

核心字段包括:

  • `tenure`:客户在网时长
  • `Contract`:合同类型
  • `MonthlyCharges`:月费用
  • `TotalCharges`:累计费用
  • `InternetService`:网络服务类型
  • `TechSupport`、`OnlineSecurity`、`StreamingTV` 等增值服务字段
  • `Churn`:客户是否流失

4. 使用的技术介绍

本项目主要使用以下技术完成开发:

  • `Python`:项目开发语言
  • `Pandas`:数据读取、清洗、特征工程和结果导出
  • `scikit-learn`:决策树建模、对比模型训练、预处理管道和模型评估
  • `Matplotlib`、`Seaborn`:静态图表绘制
  • `Plotly`:交互式图表展示
  • `Streamlit`:搭建可视化分析与预测页面
  • `joblib`:模型保存与复用

5. 使用的模型介绍

5.1 决策树主模型

本项目以 `DecisionTreeClassifier` 作为主模型。选择决策树的主要原因在于:

  • 可解释性强,适合答辩展示
  • 能处理类别特征与数值特征混合的场景
  • 能较直观地反映影响客户流失的关键分裂条件

5.2 对比模型

为了评价决策树模型的效果,项目还加入了两个常见分类模型进行对比:

  • `Logistic Regression`
  • `Random Forest`

5.3 实际模型结果

项目运行后的真实结果如下:

模型AccuracyPrecisionRecallF1ROC-AUC
RandomForest0.76510.53960.78340.63900.8440
LogisticRegression0.73390.49920.79410.61300.8419
DecisionTree0.75160.52140.78070.62530.8335

虽然 `RandomForest` 的整体指标略优,但本项目仍然以 `DecisionTree` 作为核心展示模型,因为其结构更容易解释,更符合本课题“基于决策树”的研究定位。

6. 数据分析与特征工程内容

6.1 数据清洗

项目对原始数据进行了必要的预处理,包括:

  • 将 `TotalCharges` 从字符串转换为数值型
  • 对转换后产生的缺失值进行中位数填补
  • 删除不参与建模的标识字段 `customerID`

6.2 特征工程

为了增强模型的业务表达能力,项目构建了多项衍生特征,包括:

  • `tenure_group`:在网时长分段
  • `service_count`:已开通服务数量
  • `avg_charge_per_tenure`:平均在网费用水平
  • `is_month_to_month`:是否按月合同
  • `has_fiber_optic`:是否使用光纤网络
  • `has_partner_dependents`:是否同时具有家庭属性

这些特征既有助于提升模型效果,也有利于解释客户流失的原因。

6.3 分类分析

围绕 `Churn` 目标变量,项目分析了客户流失类别分布、模型指标、ROC 曲线和混淆矩阵。

下图展示了流失与未流失客户的类别分布,可以看出数据集中存在一定类别不平衡,但仍适合构建分类模型。

客户流失类别分布
客户流失类别分布

下图展示了三种模型在 `ROC-AUC` 指标上的对比结果,能够直观看出决策树与对比模型之间的差异。

模型对比图
模型对比图

下图展示了决策树模型的 ROC 曲线和混淆矩阵,用于分析模型对流失客户的识别能力。

决策树 ROC 曲线
决策树 ROC 曲线
决策树混淆矩阵
决策树混淆矩阵

6.4 影响因素分析

基于决策树特征重要性结果,可以识别出影响流失判断的重要变量,如合同类型、月费用、在网时长和增值服务情况。这些变量与企业运营中的客户稳定性高度相关。

决策树特征重要性
决策树特征重要性

6.5 用户保留分析

项目不仅输出预测结果,还根据决策树流失概率将客户划分为 `Low`、`Medium` 和 `High` 三个风险等级,并给出差异化留存建议。

从实际结果看:

  • `High` 风险客户的真实流失率最高,优先级最高
  • `Medium` 风险客户具有较强挽回空间
  • `Low` 风险客户更适合做忠诚维护和增值经营
风险等级流失率
风险等级流失率

7. 业务分析内容

结合数据分析与模型结果,项目形成了以下业务洞察:

  • 月付合同客户的流失率明显高于一年期和两年期合同客户
  • 光纤用户和高月费用客户具有更高的流失风险
  • 在网时长较短的客户更容易在早期阶段流失
  • 技术支持、安全服务等增值服务缺失时,客户稳定性更弱

下图展示了不同合同类型下的客户流失率差异,是用户保留分析中的关键业务图表。

合同类型流失率
合同类型流失率

下图展示了月费用与流失情况之间的分布关系,可用于辅助分析价格敏感型客户群体。

月费用箱线图
月费用箱线图

8. 系统实现内容

本项目最终实现了以下成果:

  • 客户流失预测训练脚本
  • 决策树主模型与对比模型评估
  • 客户风险分层与保留建议输出
  • 静态分析图表自动生成
  • Streamlit 可视化分析与预测平台

平台主要包括三个模块:

  • `流失洞察`:展示流失特征、模型指标和特征重要性
  • `留存分层`:展示高、中、低风险客户分层与运营建议
  • `单客户预测`:输入单个客户信息,输出流失概率与保留建议

9. 项目亮点

本项目的主要亮点包括:

  • 题目聚焦明确,适合课程设计和机器学习实训项目
  • 以决策树为主模型,具备较强可解释性
  • 同时加入对比模型,提高项目完整性
  • 将预测结果进一步转化为留存策略建议
  • 提供静态图表与交互式页面,便于答辩展示

10. 不足与改进方向

当前项目仍存在以下可优化点:

  • 目前主要使用传统机器学习方法,后续可加入 XGBoost、LightGBM 等模型
  • 当前保留策略仍以规则总结为主,可扩展为更细粒度的策略引擎
  • 数据来自公开样本集,真实业务场景中的字段复杂度可能更高

后续可以进一步扩展:

  • 增加客户生命周期价值预测
  • 引入流失时间预测或留存干预效果评估
  • 结合营销活动数据进行更完整的客户经营分析

11. 总结

本项目围绕“基于决策树的电信客户流失预测与用户保留分析”这一题目,完成了从数据清洗、特征工程、决策树建模、模型评估、用户保留分析到系统展示的完整流程。

项目既能实现客户流失预测,又能从业务角度输出用户保留建议,具有较强的课程设计价值、展示价值和业务参考意义。