Skip to content

XFKI/Uber-NCR_Ride_Analysis

Repository files navigation

NCR 网约车数据分析项目

📊 项目概述

本项目对印度首都圈(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-components

运行分析

方式一:完整分析(静态图 + 交互式报表)

python main.py

执行完成后,所有图表和数据文件将保存在 analysis_results/ 目录。

方式二:🆕 仅生成交互式HTML报表

python generate_html_reports.py

生成可直接在浏览器中打开的交互式HTML文件。

方式三:🆕 启动实时Web仪表板

python run_interactive_dashboard.py

访问 http://127.0.0.1:8050/ 查看实时交互式仪表板。

💡 推荐: 先运行 python main.py 生成所有分析数据,然后使用交互式报表进行深入探索。


🎯 交互式可视化特性

📊 独立HTML报表(无需服务器)

  • ✅ 可直接在浏览器中打开
  • ✅ 完全交互式图表(缩放、筛选、悬停)
  • ✅ 5个专题报表覆盖所有分析维度
  • ✅ 可分享给团队成员

🌐 实时Web仪表板

  • ✅ 现代化UI设计(类似Power BI/Tableau)
  • ✅ 多标签页导航
  • ✅ 响应式布局
  • ✅ 实时数据交互

详细使用说明请查看:交互式可视化指南


📈 分析模块详解

模块1: 客户行为分析 (customer_patterns.png)

核心指标: 订单状态、Top客户、留存率、评分、时间偏好、距离分布

布局: 4行×2列 = 7个子图(第3行跨列显示详情表)

子图1.1: 订单状态分布(横向柱状图)[位置: 第1行左]

  • 业务价值: 识别订单完成质量
  • 关键发现:
    • Completed/Cancelled by Customer/Cancelled by Driver分布
    • 各状态订单数量
  • 应用: 监控服务质量,定位取消原因

子图1.2: Top10消费客户(横向柱状图)[位置: 第1行右]

  • 业务价值: 识别高价值客户
  • 关键发现:
    • Top10客户总消费金额
    • VIP服务目标群体
  • 应用: 高价值客户运营,VIP计划设计

子图1.3: 客户留存分析(柱状图)[位置: 第2行左]

  • 业务价值: 客户复购率监控
  • 关键发现:
    • 单次乘客(One-time)占比
    • 二次乘客(Returning)占比
    • 多次乘客(Loyal)占比
  • 应用: 复购激励策略,留存提升

子图1.4: 评分双密度图(KDE双曲线)[位置: 第2行右]

  • 业务价值: 双向服务质量监控
  • 关键发现:
    • 司机评分分布(蓝色)
    • 客户评分分布(橙色)
    • 各自平均值标注
  • 应用: 服务质量评估,司机培训

子图1.5: Top10客户详情表(表格)[位置: 第3行跨列]

  • 业务价值: 高价值客户画像
  • : Customer ID | Total Spend | Rides | Avg/Ride | Avg Dist | Avg Rating | Pattern
  • Pattern分类: VIP(≥10次) / Loyal(≥5次) / Premium(高单价) / Regular
  • 应用: 精准客户运营,个性化服务

子图1.6: 24小时订单分布(柱状图)[位置: 第4行左]

  • 业务价值: 识别日内高峰时段
  • 颜色编码:
    • 红色: 早高峰(6-10点)
    • 蓝色: 午间(10-17点)
    • 橙色: 晚高峰(17-21点)
    • 灰色: 夜间(21-6点)
  • 应用: 峰时定价策略,司机排班优化

子图1.7: 行程距离分类(柱状图)[位置: 第4行右]

  • 业务价值: 订单结构分析
  • 分类:
    • Short(0-5km): 短途
    • Medium(5-10km): 中途
    • Long(10-20km): 长途
    • Very Long(20-50km): 超长途
    • Ultra(50km+): 极长途
  • 应用: 定价策略分层,车型匹配规则

模块2: 位置时间分析 (location_analysis.png)

核心指标: 热门区域、时空分布、OD路线矩阵

布局: 2行×2列 = 4个子图

子图2.1: Top10上车点(横向柱状图)[位置: 第1行左]

  • 业务价值: 识别核心服务区域
  • 关键发现:
    • 最繁忙的10个上车地点
    • 商圈/交通枢纽/居民区分布
    • 各区域订单量差异
  • 应用:
    • 司机待命点推荐
    • 车辆预部署策略
    • 地推重点区域选择

子图2.2: Top10下车点(横向柱状图)[位置: 第1行右]

  • 业务价值: 识别目的地热力
  • 关键发现:
    • 主要目的地分布
    • 工作地/商圈/景点区分
    • 上下车点差异对比
  • 应用:
    • 接单策略优化
    • 返程订单匹配
    • 空驶率降低

子图2.3: 时空热力图(热力图)[位置: 第2行左]

  • 业务价值: 时空分布全景视图
  • X轴: 24小时(0-23)
  • Y轴: 星期几(周一至周日)
  • 颜色: 订单密度
  • 应用:
    • 动态定价策略
    • 高峰疏导方案
    • 司机排班优化

子图2.4: OD路线热力矩阵(热力图)[位置: 第2行右]

  • 业务价值: 热门路线识别
  • 内容: Top上车点 × Top下车点交叉表
  • 数值: 订单数量
  • 应用:
    • 拼车路线设计
    • 相似OD对匹配
    • 热门路线定价

模块3: RFM客户细分

方法: 基于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聚类可视化

图表3.1: RFM分段对比 (rfm_segments_comparison.png)

布局: 1行×2列 = 2个饼图

  • 左饼图: 客户数量分布(按客群)
  • 右饼图: 收入贡献分布(按客群)
  • 应用: 帕累托法则验证,预算分配

图表3.2: RFM指标对比 (rfm_distribution.png)

布局: 2行×2列 = 4个柱状图

  • 子图1: 各客群客户数量对比
  • 子图2: 各客群平均Recency对比(天数,越低越好)
  • 子图3: 各客群平均Frequency对比(次数)
  • 子图4: 各客群平均Monetary对比(金额)
  • 应用: 客群差异识别,策略制定

图表3.3: K值选择 (rfm_elbow_silhouette.png)

布局: 1行×3列 = 3个折线图

  • 子图1: Elbow Method (WCSS) - 惯性下降曲线
  • 子图2: Silhouette Score - 轮廓系数曲线(越高越好)
  • 子图3: Davies-Bouldin Index - DB指数曲线(越低越好)
  • 结论: 综合选择K=4

图表3.4: 聚类轮廓雷达图 (rfm_cluster_profiles.png)

布局: 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.)
  • 虚线: 平均基准 | 实线: 该客群值

图表3.5: 3D聚类可视化 (rfm_ml_visualization.png)

  • 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 激活唤醒

模块4: 收入预测 (revenue_forecast.png)

方法: 基于2024年365天日度数据,使用ARIMA、指数平滑、Prophet三模型集成预测2025年Q1

图表4.1: 历史收入趋势

  • 业务价值: 收入健康度诊断
  • 关键发现:
    • 2024年月度收入走势
    • 季节性波动规律
    • 增长/下滑趋势
  • 应用: 年度目标校准,增长动力分析

图表4.2: 2025年Q1预测

  • 业务价值: 未来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

图表4.3: 月收入趋势与标签

  • 业务价值: 预测vs实际可视化
  • 关键发现:
    • 预测曲线平滑度
    • 置信区间
    • 异常值识别
  • 应用: 预测质量监控,模型调优

图表4.4: 模型对比(4面板)

  • MAPE对比: 预测误差百分比
  • MAE对比: 绝对误差均值
  • RMSE对比: 均方根误差
  • R²对比: 模型拟合优度
  • 业务价值: 选择最优预测模型
  • 应用:
    • ARIMA胜出(MAPE最低13.62%)
    • Prophet不适用本场景(MAPE=49.13%)

图表4.5: 日收入波动性

  • 业务价值: 收入稳定性分析
  • 关键发现:
    • 日度波动幅度
    • 异常日识别
    • 7日移动平均平滑曲线
  • 应用: 风险预警,异常溯源

图表4.6: 模型验证(最近3个月)

  • 业务价值: 模型可靠性验证
  • 关键发现:
    • 实际值 vs 预测值对比
    • 各模型在10/11/12月表现
    • 预测偏差方向
  • 应用:
    • 模型信任度建立
    • 参数调优依据

训练策略:

  • 训练数据:2024年1月1日-9月30日(274天)
  • 验证数据:2024年10月1日-12月30日(92天)
  • 方法:日度预测 → 月度聚合(相比月度建模提升数据量30倍)

图表4.7: 雷达图(5维度模型评估)

  • MAPE: 平均绝对百分比误差(越小越好)
  • MAE: 平均绝对误差(越小越好)
  • RMSE: 均方根误差(越小越好)
  • MBE: 平均偏差误差(接近0最好)
  • : 决定系数(越接近1越好)

归一化逻辑:

  • MAPE/MAE/RMSE: 反向归一化(误差越小,雷达面积越大)
  • MBE: 绝对值反向归一化(偏差越小越好)
  • R²: 正向归一化(拟合度越高越好)
  • 结论: 雷达面积越大 = 模型越优秀

图表4.8: 模型总结

  • 最优模型: ARIMA(2,0,2)
  • 次优模型: Exponential Smoothing
  • 不适用: Prophet(长期趋势预测更优,短期波动不敏感)
  • 建议: 生产环境使用ARIMA,配合指数平滑作交叉验证

模块5: 综合仪表板 (dashboard.png)

设计: 12面板集成视图,涵盖订单、收入、客户、运营四大维度

核心面板

  1. 订单状态: 成功/取消/未完成分布
  2. 每日订单: 全年趋势线
  3. 星期分布: 周期性规律
  4. 小时分布: 日内高峰
  5. 收入趋势: 月度收入走势
  6. 车型分布: 车辆类型需求
  7. 支付方式: 支付渠道偏好
  8. 取消原因: 客户/司机取消分析
  9. 行程距离: 距离分布统计
  10. 评分分布: 客户/司机评分双维
  11. 热门地点: Top上车/下车点
  12. 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地区真实订单数据(脱敏处理)


📝 使用许可

本项目仅用于学术研究和技术交流,数据已脱敏处理。禁止商业使用。

About

本项目对印度首都圈(NCR)2024年全年网约车订单数据进行综合分析,涵盖客户行为、地理时空、客户细分和收入预测四大模块。运用Python数据分析技术,从15万条订单中挖掘业务洞察,为运营优化提供数据支持。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors