本项目旨在通过机器学习技术预测网络视频服务的客户流失情况。通过分析客户的各种特征(如订阅信息、使用情况等),构建预测模型来识别可能流失的客户,帮助企业采取相应措施提高客户留存率。
数据集包含以下关键特征:
- id: 客户唯一ID
- is_tv_subscriber: 是否有电视订阅
- is_movie_package_subscriber: 是否有电影套餐订阅
- subscription_age: 服务使用年限
- bill_avg: 过去3个月账单平均值
- remaining_contract: 客户合同剩余年限
- service_failure_count: 过去3个月因服务失败致电客服中心的次数
- download_avg: 过去3个月平均下载量(GB)
- upload_avg: 过去3个月平均上传量(GB)
- download_over_limit: 是否超过下载限制
- churn: 客户是否流失(目标变量)
customer-churn/
│
├── data/ # 数据文件夹
│ └── customer_churn.csv # 客户流失数据集
│
├── src/ # 源代码
│ ├── main.py # 主程序入口
│ ├── churn_prediction.py # 流失预测模型实现
│ ├── churn_visualization.py # 数据可视化模块
│ └── ensemble_model.py # 集成模型实现
│
├── results/ # 分析结果与可视化
│ ├── churn_distribution.png # 流失分布图
│ ├── correlation_heatmap.png # 特征相关性热图
│ ├── feature_importance.png # 特征重要性分析
│ ├── model_performance_comparison.png # 模型性能比较
│ └── roc_curve_comparison.png # ROC曲线比较
│
├── .venv/ # 虚拟环境
├── 客户流失预测分析.md # 项目详细分析报告
└── README.md # 项目说明文档
- Python 3.8+
- pip 包管理器
- 克隆项目仓库
git clone https://github.com/luka7620/customer-churn.git
cd customer-churn- 创建并激活虚拟环境
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate- 安装依赖包
pip install -r requirements.txt运行主程序进行数据预处理和探索性分析:
python src/main.py训练并评估不同的预测模型:
python src/churn_prediction.py构建和评估集成模型:
python src/ensemble_model.py生成数据可视化图表:
python src/churn_visualization.py| 模型 | 准确率 | 精确率 | 召回率 | F1值 | ROC AUC |
|---|---|---|---|---|---|
| 随机森林 | 0.94 | 0.93 | 0.92 | 0.93 | 0.98 |
| 梯度提升 | 0.93 | 0.91 | 0.89 | 0.90 | 0.97 |
| 堆叠集成 | 0.94 | 0.93 | 0.91 | 0.92 | 0.98 |
| 投票集成 | 0.94 | 0.92 | 0.90 | 0.91 | 0.98 |
| 逻辑回归 | 0.87 | 0.84 | 0.85 | 0.84 | 0.94 |
随机森林和堆叠集成模型表现最佳,准确率约为94%,ROC AUC达到0.98。
分析表明以下特征对预测客户流失最为重要:
- 合同剩余时间
- 平均下载量
- 平均上传量
- 服务使用年限
- 服务失败次数
- 合同管理策略:对接近合同到期的客户提前采取挽留措施
- 服务质量改进:提升下载和上传服务质量,减少服务失败
- 产品组合优化:鼓励单一服务用户购买套餐组合
- 使用行为激励:鼓励客户更多地使用服务
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m '添加一些特性') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解更多详情