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

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 实际模型结果
项目运行后的真实结果如下:
| 模型 | Accuracy | Precision | Recall | F1 | ROC-AUC |
|---|---|---|---|---|---|
| RandomForest | 0.7651 | 0.5396 | 0.7834 | 0.6390 | 0.8440 |
| LogisticRegression | 0.7339 | 0.4992 | 0.7941 | 0.6130 | 0.8419 |
| DecisionTree | 0.7516 | 0.5214 | 0.7807 | 0.6253 | 0.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 曲线和混淆矩阵,用于分析模型对流失客户的识别能力。


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

6.5 用户保留分析
项目不仅输出预测结果,还根据决策树流失概率将客户划分为 `Low`、`Medium` 和 `High` 三个风险等级,并给出差异化留存建议。
从实际结果看:
- `High` 风险客户的真实流失率最高,优先级最高
- `Medium` 风险客户具有较强挽回空间
- `Low` 风险客户更适合做忠诚维护和增值经营

7. 业务分析内容
结合数据分析与模型结果,项目形成了以下业务洞察:
- 月付合同客户的流失率明显高于一年期和两年期合同客户
- 光纤用户和高月费用客户具有更高的流失风险
- 在网时长较短的客户更容易在早期阶段流失
- 技术支持、安全服务等增值服务缺失时,客户稳定性更弱
下图展示了不同合同类型下的客户流失率差异,是用户保留分析中的关键业务图表。

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

8. 系统实现内容
本项目最终实现了以下成果:
- 客户流失预测训练脚本
- 决策树主模型与对比模型评估
- 客户风险分层与保留建议输出
- 静态分析图表自动生成
- Streamlit 可视化分析与预测平台
平台主要包括三个模块:
- `流失洞察`:展示流失特征、模型指标和特征重要性
- `留存分层`:展示高、中、低风险客户分层与运营建议
- `单客户预测`:输入单个客户信息,输出流失概率与保留建议
9. 项目亮点
本项目的主要亮点包括:
- 题目聚焦明确,适合课程设计和机器学习实训项目
- 以决策树为主模型,具备较强可解释性
- 同时加入对比模型,提高项目完整性
- 将预测结果进一步转化为留存策略建议
- 提供静态图表与交互式页面,便于答辩展示
10. 不足与改进方向
当前项目仍存在以下可优化点:
- 目前主要使用传统机器学习方法,后续可加入 XGBoost、LightGBM 等模型
- 当前保留策略仍以规则总结为主,可扩展为更细粒度的策略引擎
- 数据来自公开样本集,真实业务场景中的字段复杂度可能更高
后续可以进一步扩展:
- 增加客户生命周期价值预测
- 引入流失时间预测或留存干预效果评估
- 结合营销活动数据进行更完整的客户经营分析
11. 总结
本项目围绕“基于决策树的电信客户流失预测与用户保留分析”这一题目,完成了从数据清洗、特征工程、决策树建模、模型评估、用户保留分析到系统展示的完整流程。
项目既能实现客户流失预测,又能从业务角度输出用户保留建议,具有较强的课程设计价值、展示价值和业务参考意义。