本项目对印度首都圈(NCR)2024年全年网约车订单数据进行综合分析,涵盖客户行为、地理时空、客户细分和收入预测四大模块。运用Python数据分析技术,从15万条订单中挖掘业务洞察,为运营优化提供数据支持。
数据规模: 150,000条订单 | 148,788位客户 | 2024年全年数据
✨ 新增功能: 🎯 交互式可视化报表 - 类似 Power BI/Tableau 的现代化交互式仪表板!查看 交互式可视化指南 了解详情。
NCR_Ride_Analysis/
├── main.py # 主程序入口(包含交互式报表生成)
├── run_interactive_dashboard.py # 🆕 启动交互式Web仪表板
├── generate_html_reports.py # 🆕 生成独立HTML交互报表
├── ncr_ride_bookings.csv # 原始数据(150,000条)
├── README.md # 技术文档(本文件)
├── INTERACTIVE_VISUALIZATION_GUIDE.md # 🆕 交互式可视化使用指南
├── REPORT.md # 业务报告(可视化结果展示)
├── modules/ # 分析模块
│ ├── config.py # 全局配置
│ ├── utils.py # 数据工具
│ ├── analysis_patterns.py # 客户行为分析
│ ├── analysis_locations.py # 位置时间分析
│ ├── analysis_rfm.py # RFM客户细分
│ ├── rfm_visualizations.py # RFM可视化
│ ├── analysis_revenue_prediction.py # 收入预测
│ ├── dashboard.py # 综合仪表板
│ ├── interactive_dashboard.py # 🆕 交互式Web仪表板
│ └── html_reports.py # 🆕 HTML交互报表生成
└── analysis_results/ # 输出目录
├── 1_customer_patterns.png # 客户行为分析图
├── 2_location_analysis.png # 位置时间分析图
├── 3_rfm_*.png # RFM分析图(5张)
├── 4_revenue_forecast.png # 收入预测图
├── 5_dashboard.png # 综合仪表板
├── interactive_*.html # 🆕 交互式HTML报表(5个)
└── *.csv # 数据结果
- Python 3.8+
- 依赖库:pandas, numpy, matplotlib, seaborn, scikit-learn, statsmodels, prophet, plotly, dash
# 基础分析依赖
pip install pandas numpy matplotlib seaborn scikit-learn statsmodels prophet
# 🆕 交互式可视化依赖
pip install plotly dash dash-bootstrap-componentspython main.py执行完成后,所有图表和数据文件将保存在 analysis_results/ 目录。
python generate_html_reports.py生成可直接在浏览器中打开的交互式HTML文件。
python run_interactive_dashboard.py访问 http://127.0.0.1:8050/ 查看实时交互式仪表板。
💡 推荐: 先运行 python main.py 生成所有分析数据,然后使用交互式报表进行深入探索。
- ✅ 可直接在浏览器中打开
- ✅ 完全交互式图表(缩放、筛选、悬停)
- ✅ 5个专题报表覆盖所有分析维度
- ✅ 可分享给团队成员
- ✅ 现代化UI设计(类似Power BI/Tableau)
- ✅ 多标签页导航
- ✅ 响应式布局
- ✅ 实时数据交互
详细使用说明请查看:交互式可视化指南
核心指标: 订单状态、Top客户、留存率、评分、时间偏好、距离分布
布局: 4行×2列 = 7个子图(第3行跨列显示详情表)
- 业务价值: 识别订单完成质量
- 关键发现:
- Completed/Cancelled by Customer/Cancelled by Driver分布
- 各状态订单数量
- 应用: 监控服务质量,定位取消原因
- 业务价值: 识别高价值客户
- 关键发现:
- Top10客户总消费金额
- VIP服务目标群体
- 应用: 高价值客户运营,VIP计划设计
- 业务价值: 客户复购率监控
- 关键发现:
- 单次乘客(One-time)占比
- 二次乘客(Returning)占比
- 多次乘客(Loyal)占比
- 应用: 复购激励策略,留存提升
- 业务价值: 双向服务质量监控
- 关键发现:
- 司机评分分布(蓝色)
- 客户评分分布(橙色)
- 各自平均值标注
- 应用: 服务质量评估,司机培训
- 业务价值: 高价值客户画像
- 列: Customer ID | Total Spend | Rides | Avg/Ride | Avg Dist | Avg Rating | Pattern
- Pattern分类: VIP(≥10次) / Loyal(≥5次) / Premium(高单价) / Regular
- 应用: 精准客户运营,个性化服务
- 业务价值: 识别日内高峰时段
- 颜色编码:
- 红色: 早高峰(6-10点)
- 蓝色: 午间(10-17点)
- 橙色: 晚高峰(17-21点)
- 灰色: 夜间(21-6点)
- 应用: 峰时定价策略,司机排班优化
- 业务价值: 订单结构分析
- 分类:
- Short(0-5km): 短途
- Medium(5-10km): 中途
- Long(10-20km): 长途
- Very Long(20-50km): 超长途
- Ultra(50km+): 极长途
- 应用: 定价策略分层,车型匹配规则
核心指标: 热门区域、时空分布、OD路线矩阵
布局: 2行×2列 = 4个子图
- 业务价值: 识别核心服务区域
- 关键发现:
- 最繁忙的10个上车地点
- 商圈/交通枢纽/居民区分布
- 各区域订单量差异
- 应用:
- 司机待命点推荐
- 车辆预部署策略
- 地推重点区域选择
- 业务价值: 识别目的地热力
- 关键发现:
- 主要目的地分布
- 工作地/商圈/景点区分
- 上下车点差异对比
- 应用:
- 接单策略优化
- 返程订单匹配
- 空驶率降低
- 业务价值: 时空分布全景视图
- X轴: 24小时(0-23)
- Y轴: 星期几(周一至周日)
- 颜色: 订单密度
- 应用:
- 动态定价策略
- 高峰疏导方案
- 司机排班优化
- 业务价值: 热门路线识别
- 内容: Top上车点 × Top下车点交叉表
- 数值: 订单数量
- 应用:
- 拼车路线设计
- 相似OD对匹配
- 热门路线定价
方法: 基于Recency(最近消费)、Frequency(消费频次)、Monetary(消费金额)的客户价值分层 + K-Means机器学习聚类
生成图表:
3_rfm_segments_comparison.png- RFM分段对比(2个饼图)3_rfm_distribution.png- RFM三维分布(4个子图)3_rfm_elbow_silhouette.png- K值选择(3个子图)3_rfm_cluster_profiles.png- 聚类轮廓雷达图(5个子图:1个基准+4个客群)3_rfm_ml_visualization.png- 3D聚类可视化
布局: 1行×2列 = 2个饼图
- 左饼图: 客户数量分布(按客群)
- 右饼图: 收入贡献分布(按客群)
- 应用: 帕累托法则验证,预算分配
布局: 2行×2列 = 4个柱状图
- 子图1: 各客群客户数量对比
- 子图2: 各客群平均Recency对比(天数,越低越好)
- 子图3: 各客群平均Frequency对比(次数)
- 子图4: 各客群平均Monetary对比(金额)
- 应用: 客群差异识别,策略制定
布局: 1行×3列 = 3个折线图
- 子图1: Elbow Method (WCSS) - 惯性下降曲线
- 子图2: Silhouette Score - 轮廓系数曲线(越高越好)
- 子图3: Davies-Bouldin Index - DB指数曲线(越低越好)
- 结论: 综合选择K=4
布局: 1行×5列 = 5个雷达图
- 子图0: AVERAGE BASELINE - 全体客户平均值(参考基准)
- 子图1: High Potential (25,224客户) - 升级培育策略
- 子图2: New Customers (61,316客户) - 首乘激励策略
- 子图3: Loyal Customers (1,206客户) - VIP待遇策略
- 子图4: Hibernating (61,042客户) - 激活唤醒策略
- 雷达维度: Recency(天) / Frequency(次) / Monetary(Rs.)
- 虚线: 平均基准 | 实线: 该客群值
- X轴: Recency(天数)
- Y轴: Frequency(次数)
- Z轴: Monetary(金额)
- 颜色: 4类客群
- 应用: 客户迁移追踪,流失风险预警
K-Means聚类结果 (K=4):
| 客群 | 人数 | 占比 | Recency | Frequency | Monetary | 策略 |
|---|---|---|---|---|---|---|
| High Potential | 25,224 | 17% | 182天 | 1次 | Rs.1,023 | 重点培育 |
| New Customers | 61,316 | 41% | 90天 | 1次 | Rs.204 | 首乘激励 |
| Loyal Customers | 1,206 | 1% | 122天 | 2次 | Rs.685 | VIP待遇 |
| Hibernating | 61,042 | 41% | 277天 | 1次 | Rs.208 | 激活唤醒 |
方法: 基于2024年365天日度数据,使用ARIMA、指数平滑、Prophet三模型集成预测2025年Q1
- 业务价值: 收入健康度诊断
- 关键发现:
- 2024年月度收入走势
- 季节性波动规律
- 增长/下滑趋势
- 应用: 年度目标校准,增长动力分析
- 业务价值: 未来3个月收入预期
- 关键发现:
- ARIMA预测(最优模型,MAPE=13.62%)
- 指数平滑预测(MAPE=18.91%)
- Prophet预测(MAPE=49.13%)
- 集成预测(三模型均值)
- 应用:
- 财务规划
- 资源配置
- KPI设定
预测结果:
- 2025年1月: Rs.4,087,317
- 2025年2月: Rs.3,811,149
- 2025年3月: Rs.4,366,337
- Q1总计: Rs.12,264,804
- 业务价值: 预测vs实际可视化
- 关键发现:
- 预测曲线平滑度
- 置信区间
- 异常值识别
- 应用: 预测质量监控,模型调优
- MAPE对比: 预测误差百分比
- MAE对比: 绝对误差均值
- RMSE对比: 均方根误差
- R²对比: 模型拟合优度
- 业务价值: 选择最优预测模型
- 应用:
- ARIMA胜出(MAPE最低13.62%)
- Prophet不适用本场景(MAPE=49.13%)
- 业务价值: 收入稳定性分析
- 关键发现:
- 日度波动幅度
- 异常日识别
- 7日移动平均平滑曲线
- 应用: 风险预警,异常溯源
- 业务价值: 模型可靠性验证
- 关键发现:
- 实际值 vs 预测值对比
- 各模型在10/11/12月表现
- 预测偏差方向
- 应用:
- 模型信任度建立
- 参数调优依据
训练策略:
- 训练数据:2024年1月1日-9月30日(274天)
- 验证数据:2024年10月1日-12月30日(92天)
- 方法:日度预测 → 月度聚合(相比月度建模提升数据量30倍)
- MAPE: 平均绝对百分比误差(越小越好)
- MAE: 平均绝对误差(越小越好)
- RMSE: 均方根误差(越小越好)
- MBE: 平均偏差误差(接近0最好)
- R²: 决定系数(越接近1越好)
归一化逻辑:
- MAPE/MAE/RMSE: 反向归一化(误差越小,雷达面积越大)
- MBE: 绝对值反向归一化(偏差越小越好)
- R²: 正向归一化(拟合度越高越好)
- 结论: 雷达面积越大 = 模型越优秀
- 最优模型: ARIMA(2,0,2)
- 次优模型: Exponential Smoothing
- 不适用: Prophet(长期趋势预测更优,短期波动不敏感)
- 建议: 生产环境使用ARIMA,配合指数平滑作交叉验证
设计: 12面板集成视图,涵盖订单、收入、客户、运营四大维度
- 订单状态: 成功/取消/未完成分布
- 每日订单: 全年趋势线
- 星期分布: 周期性规律
- 小时分布: 日内高峰
- 收入趋势: 月度收入走势
- 车型分布: 车辆类型需求
- 支付方式: 支付渠道偏好
- 取消原因: 客户/司机取消分析
- 行程距离: 距离分布统计
- 评分分布: 客户/司机评分双维
- 热门地点: Top上车/下车点
- KPI指标: 总订单/总收入/平均订单价值
应用场景: 管理层汇报、日常监控大屏、周报自动生成
| 文件名 | 内容 | 图表数 |
|---|---|---|
| 1_customer_patterns.png | 客户行为8合1 | 8 |
| 2_location_analysis.png | 位置时间4合1 | 4 |
| 3_rfm_segments_comparison.png | RFM分段对比 | 1 |
| 3_rfm_distribution.png | RFM分布饼图 | 3 |
| 3_rfm_elbow_silhouette.png | 肘部法+轮廓系数 | 2 |
| 3_rfm_cluster_profiles.png | 聚类轮廓图 | 1 |
| 3_rfm_ml_visualization.png | 3D聚类可视化 | 1 |
| 4_revenue_forecast.png | 收入预测8合1 | 8 |
| 5_dashboard.png | 综合仪表板 | 12 |
| 合计 | 9张图 | 40个子图 |
| 文件名 | 内容 | 行数 |
|---|---|---|
| 3_rfm_segments.csv | 传统RFM分段结果 | 148,788 |
| 3_rfm_clusters.csv | K-Means聚类汇总 | 3-5簇 |
| 3_rfm_ml_clusters.csv | 客户聚类详细数据 | 148,788 |
| 4_revenue_forecast_2025Q1.csv | Q1收入预测 | 90天 |
| 4_model_metrics.csv | 模型性能指标 | 3模型 |
- 数据处理: pandas 2.0+, numpy 1.24+
- 可视化: matplotlib 3.7+, seaborn 0.12+
- 机器学习: scikit-learn 1.3+ (KMeans, StandardScaler)
- 时序预测: statsmodels 0.14+ (ARIMA), prophet 1.1+
- 模块化设计(8个独立模块)
- 函数式编程(可复用分析函数)
- 配置化管理(颜色/路径集中配置)
- 异常处理(缺失值/异常值鲁棒性)
- 中文可视化(字体自动配置)
- 细分: 识别4类客户群体,差异化运营
- 流失预警: 高价值客户活跃度监控
- 满意度: 评分体系量化服务质量
- 效率提升: 高峰时段识别,司机调度优化
- 成本控制: 热门区域预部署,空驶率降低
- 质量监控: 取消率/未完成率实时追踪
- 收入预测: 3个月滚动预测,误差<14%
- 增长分析: 月度趋势,季节性规律
- 价值量化: RFM客群贡献度测算
- 市场洞察: 地理热力图,扩张方向参考
- 竞争定位: 车型/支付/服务偏好分析
- 资源配置: 数据驱动的投入优先级
项目: NCR网约车数据分析
时间: 2024年
工具: Python 3.10 + Matplotlib
数据: 印度NCR地区真实订单数据(脱敏处理)
本项目仅用于学术研究和技术交流,数据已脱敏处理。禁止商业使用。