电商用户行为漏斗与CRO转化率优化分析
电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。
项目封面

项目说明
电商用户行为漏斗与CRO转化率优化分析
一、项目概述
电商用户行为漏斗与CRO转化率优化分析(E-Commerce Funnel CRO)是一套面向电商运营的数据分析平台,覆盖从用户访问到最终购买的完整漏斗链路,提供多维诊断、统计检验、PIE 优先级矩阵与 XGBoost 购买预测等能力,帮助运营团队精准定位转化瓶颈并制定优化策略。
二、核心功能
1. 漏斗分析
| 功能 | 说明 |
|---|---|
| 页面漏斗 | 首页 → 列表页 → 详情页 → 购物车 → 结算页,各环节覆盖率与跨步转化率 |
| 事件漏斗 | 浏览 → 点击 → 加购 → 购买,行为级转化分析 |
| 环节损失量化 | 各环节流失会话数、流失率、预估损失金额(基于客单价 AOV) |
| 月度趋势 | 按月追踪会话量、转化率、平均停留时长 |
| 周末/工作日对比 | 周末与工作日转化率差异对比 |
| 24h 时段分布 | 各小时段转化率分布,识别高峰与低谷 |
2. 多维诊断
| 维度 | 分析内容 |
|---|---|
| 渠道 | Organic / Paid Search / Social / Email / Direct 各渠道转化率与流量占比 |
| 设备 | Desktop / Mobile / Tablet 各设备转化率与流量占比 |
| 国家 | US / UK / IN / BR / CA 各国转化率、平均时长 |
| 忠诚度 | Bronze / Silver / Gold / Platinum 各等级转化率、平均消费 |
| 新老用户 | 基于 loyalty_tier 划分新老用户,对比转化率、页面深度、客单价 |
| 时长分桶 | 按停留时长(<60s / 60-180s / 180-420s / 420s+)分桶转化率 |
| 渠道×设备交叉 | 渠道与设备的交叉转化率矩阵 |
| 流失矩阵 | 渠道 × 流失环节的流失率热力图 |
3. PIE 优先级矩阵
基于 Potential(潜力)× Importance(重要性)× Ease(容易度) 三维度对各漏斗环节打分排序:
- Potential:该环节损失金额占总损失比例
- Importance:该环节到达会话数占总会话比例
- Ease:基于真实流失率的百分位排名推导(流失率越高 = 改善空间越大 = Ease 越高)
所有指标均从真实数据动态计算,无硬编码兜底。
4. 统计检验
对渠道、设备、忠诚度、国家等维度与购买行为进行:
- 卡方独立性检验(χ² test)
- Bonferroni 校正(多重比较)
- Cramér's V 效应量分析(强 / 中 / 弱)
5. 机器学习 — XGBoost 购买预测
| 能力 | 说明 |
|---|---|
| 特征工程 | 时间特征(小时/星期/月份)、页面深度、行为深度、时长分桶、交互特征 |
| 模型 | XGBoost 二分类,scale_pos_weight 处理样本不均衡 |
| 评估 | Accuracy / AUC / F1 / Precision / Recall + 5 折交叉验证 |
| 单条预测 | 输入会话特征,输出购买概率与风险等级(高/中/低转化) |
| 批量预测 | 从数据集采样预测,输出概率与真实标签对照 |
| 可视化 | ROC 曲线、混淆矩阵、特征重要性 Top 15 |
6. Web 可视化仪表板
基于 Flask + ECharts 构建的交互式仪表板:
| 页面 | 功能 |
|---|---|
| 数据概览 | KPI 卡片(总会话/购买/转化率/收入/退款率/瓶颈环节)+ 漏斗图 + 趋势图 |
| 策略分析 | PIE 矩阵 + 损失瀑布 + 流失矩阵 + 统计检验 |
| 用户分析 | 渠道/设备/国家/忠诚度/新老用户/时段分布 |
| 转化预测 | 单条预测表单 + 批量预测结果 + ROC/混淆矩阵/特征重要性 |
7. 数据生成引擎
当无原始数据时,系统内置合成数据生成器,产出具备真实业务逻辑特征的模拟数据:
- 5,000 客户 / 200 产品 / 20 营销活动 / 20,000 会话
- 漏斗概率由
FUNNEL_DIFFICULTY相对难度 + 渠道/设备/忠诚度修饰系数动态推导 - 时长修饰:停留越久转化率越高(0.6x ~ 2.2x)
- 收入含噪声,避免目标泄露
8. 真实数据支持(Retailrocket)
系统支持基于真实电商行为数据运行,当前已适配 Retailrocket E-commerce Dataset:
| 项目 | 模拟数据 | 真实数据(Retailrocket) |
|---|---|---|
| 数据来源 | 合成数据生成器 | Kaggle 真实电商行为数据集 |
| 事件数 | ~20,000 会话 | 275 万条原始事件,采样 10 万会话 |
| 用户数 | 5,000 | 140 万原始用户,采样 10 万 |
| 转化率 | 人为设定 | 真实转化率(view→addtocart 2.6%) |
| 模型 AUC | ~0.50 | 0.9933 |
| 操作方式 | train.sh 自动 | 手动下载 + 手动转换(见下方) |
使用方式:
- 手动从 Kaggle 下载数据集 zip 并放到
code/real_data/目录 - 解压后执行
python real_data/_inspect_retailrocket.py检查数据 - 执行
python real_data/retailrocket_adapter.py转换数据 - 转换产物自动写入
code/data/和code/output/,后续正常执行train.sh
详见
code/real_data/README.md完整操作指南。所有下载、检查、转换的代码均在real_data/目录内,不污染项目业务代码。
三、API 接口一览
漏斗分析 API
| 端点 | 方法 | 说明 |
|---|---|---|
/api/funnel/overview | GET | 概览 KPI + 页面漏斗 + 事件漏斗 |
/api/funnel/channel | GET | 渠道转化率分析 |
/api/funnel/device | GET | 设备转化率分析 |
/api/funnel/country | GET | 国家转化率分析 |
/api/funnel/loyalty | GET | 忠诚度转化率分析 |
/api/funnel/new_returning | GET | 新老用户对比 |
/api/funnel/duration | GET | 时长分桶转化率 |
/api/funnel/weekend | GET | 周末/工作日对比 |
/api/funnel/hourly | GET | 24h 时段转化率 |
/api/funnel/channel_device | GET | 渠道×设备交叉 |
/api/funnel/loss | GET | 环节损失量化 |
/api/funnel/churn | GET | 流失矩阵 |
/api/funnel/trend | GET | 月度趋势 |
/api/funnel/pie | GET | PIE 优先级矩阵 |
/api/funnel/stats | GET | 统计检验 |
模型 API
| 端点 | 方法 | 说明 |
|---|---|---|
/api/model/train | POST | 触发模型训练 |
/api/model/metrics | GET | 获取模型评估指标 |
/api/model/predict | POST | 单条会话预测 |
/api/model/predict_batch | POST | 批量预测 |
/api/model/feature_importance | GET | 特征重要性 |
/api/model/roc | GET | ROC 曲线数据 |
/api/model/confusion_matrix | GET | 混淆矩阵 |
系统 API
| 端点 | 方法 | 说明 |
|---|---|---|
/api/analysis/run | POST | 运行完整分析 |
/api/analysis/status | GET | 数据/模型就绪状态 |
/api/db/init | POST | 初始化数据库 |
/api/db/status | GET | 数据库表与行数 |
四、目录结构
ecommerce_funnel-main/
│
├── code/ # 项目核心代码(自包含,可独立运行)
│ │
│ ├── app.py # 主入口:generate / init / train / serve / all
│ ├── requirements.txt # Python 3.12 依赖清单
│ ├── mac_run.sh # macOS 一键启动脚本(安装依赖 + 启动服务)
│ ├── train.sh # macOS 模型训练脚本(环境准备 + 数据生成 + 训练)
│ ├── window_run.bat # Windows 一键启动脚本
│ │
│ ├── analysis/ # 数据分析模块
│ │ ├── __init__.py # 模块初始化
│ │ ├── data_generator.py # 合成数据生成引擎
│ │ └── funnel.py # 漏斗分析 + 多维诊断 + PIE + 统计检验
│ │
│ ├── real_data/ # 真实数据集(独立模块,不污染业务代码)
│ │ ├── README.md # 真实数据操作指南(下载/解压/检查/转换全流程)
│ │ ├── _inspect_retailrocket.py # Retailrocket 数据完整性检查脚本
│ │ ├── retailrocket_adapter.py # Retailrocket → 项目格式转换脚本
│ │ ├── ecommerce-dataset.zip # Kaggle 下载的压缩包(需手动下载,已 gitignore)
│ │ ├── events.csv # 解压后的核心行为数据(90 MB,已 gitignore)
│ │ ├── category_tree.csv # 解压后的品类树(14 KB,已 gitignore)
│ │ ├── item_properties_part1.csv # 解压后的商品属性(462 MB,已 gitignore)
│ │ └── item_properties_part2.csv # 解压后的商品属性(390 MB,已 gitignore)
│ │
│ ├── model/ # 机器学习模块
│ │ ├── __init__.py # 模块初始化
│ │ └── predictor.py # XGBoost 购买预测(训练/推理/特征工程)
│ │
│ ├── db/ # 数据库模块
│ │ ├── __init__.py # 模块初始化
│ │ ├── sqlite_helper.py # SQLite 连接/建表/导入/查询
│ │ └── ecommerce.db # SQLite 数据库文件(运行后生成)
│ │
│ ├── data/ # 业务数据(CSV,由生成器或真实数据转换产出)
│ │ ├── customers.csv # 客户表
│ │ ├── products.csv # 产品表
│ │ ├── events.csv # 用户行为事件表
│ │ ├── transactions.csv # 交易表
│ │ └── campaigns.csv # 营销活动表
│ │
│ ├── output/ # 分析输出
│ │ ├── funnel_wide.csv # 漏斗宽表(核心中间数据)
│ │ ├── analysis_results.json # 全量分析结果
│ │ ├── charts/ # 可视化图表(PNG,由 funnel.py 生成)
│ │ │ ├── 00_cleaning_funnel.png # 数据清洗漏斗
│ │ │ ├── 01_page_funnel.png # 页面漏斗
│ │ │ ├── 01b_strict_page_funnel.png # 严格页面漏斗
│ │ │ ├── 02_event_funnel.png # 事件漏斗
│ │ │ ├── 03_channel_funnels.png # 渠道漏斗对比
│ │ │ ├── 04_loss_waterfall.png # 损失瀑布图
│ │ │ ├── 05_channel_device_heatmap.png # 渠道×设备热力图
│ │ │ ├── 06_dimension_comparison.png # 多维对比
│ │ │ ├── 07_monthly_trend.png # 月度趋势
│ │ │ ├── 08_duration_conversion.png # 时长-转化率
│ │ │ ├── 09_churn_by_channel.png # 渠道流失分析
│ │ │ ├── 10_pie_matrix.png # PIE 优先级矩阵
│ │ │ ├── 11_category_funnel.png # 品类漏斗
│ │ │ ├── 12_strict_vs_coverage.png # 严格 vs 覆盖率对比
│ │ │ ├── 13_deep_link_analysis.png # 深层链接分析
│ │ │ ├── 14_new_vs_returning.png # 新老用户对比
│ │ │ ├── 15_weekend_comparison.png # 周末/工作日对比
│ │ │ ├── 16_cohort_heatmap.png # 留存热力图
│ │ │ └── 16b_visit_cohort_heatmap.png # 访问留存热力图
│ │ └── model/ # 模型输出
│ │ ├── xgb_purchase.pkl # 训练好的 XGBoost 模型
│ │ ├── metrics.json # 评估指标(AUC/F1/Accuracy 等)
│ │ ├── feature_columns.json # 特征列名列表
│ │ ├── feature_importance.json # 特征重要性排名
│ │ ├── label_encoders.json # 分类特征编码器
│ │ ├── roc_data.json # ROC 曲线数据
│ │ └── confusion_matrix.json # 混淆矩阵数据
│ │
│ └── web/ # Web 应用模块
│ ├── __init__.py # 模块初始化
│ ├── app.py # Flask 应用工厂
│ ├── routes.py # API 路由 + 页面路由
│ ├── static/ # 静态资源目录
│ │ ├── css/ # 样式文件(Bootstrap 为主)
│ │ ├── img/ # 图片资源
│ │ └── js/ # JavaScript 脚本
│ └── templates/ # Jinja2 HTML 模板
│ ├── __init__.py # 模板模块初始化
│ ├── base.html # 基础布局(侧边栏 + 顶栏 + 状态指示)
│ ├── dashboard.html # 数据概览页
│ ├── strategy.html # 策略分析页
│ ├── predict.html # 转化预测页
│ └── user_analysis.html # 用户分析页
│
├── 演示材料/ # 演示相关资料
├── window.运行步骤.md # Windows 运行步骤说明
└── 项目说明.md # 本文件
五、技术栈
| 层级 | 技术 |
|---|---|
| 后端框架 | Flask 3.1 |
| 数据库 | SQLite(WAL 模式) |
| 数据处理 | Pandas 2.2 + NumPy 2.1 |
| 机器学习 | XGBoost 2.1 + scikit-learn 1.6 |
| 统计分析 | SciPy 1.14 |
| 可视化 | ECharts 5.5(前端) + Matplotlib 3.9(后端) |
| 前端 UI | Bootstrap 5.3 + Font Awesome 6.5 |
| 跨域 | Flask-CORS 5.0 |
技术分类
包含内容
适用人群
学习参考与二次开发
关于 AI源码
AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。
相关推荐
查看全部 →
城市交通流量预测与拥堵成因分析系统
是一个面向城市交通拥堵分析的 monorepo,覆盖计算机设计课题中的主要能力链路:

多组学癌症预后预测分析系统
基于 Flask 的 Web 应用,用于上传 TCGA 风格合并表、做特征与标签概览、Cox 预后风险评分与生存相关可视化。模型在本地训练后以 形式加载,不提供旧版演示数据或假模型兜底。

基于 Apriori 算法的中药配伍审查系统
本系统是一个基于经典 Apriori 关联规则挖掘算法的中药配伍审查平台,使用真实中医药处方数据集(PTM-TKDE2018),实现药材频繁项集挖掘、关联规则生成与配伍禁忌审查。

基于 Python 的城市共享单车骑行需求时空分析系统
本系统是一个基于 Python Flask 框架的城市共享单车骑行需求时空分析平台,使用 Oslo City Bike(奥斯陆城市自行车)开放数据,提供系统总览、时间维度分析、空间维度分析、站点运营分析、OD 起讫流动分析、骑行需求预测、综合分析报告等功能模块,适用于城市共享单车运营调度与骑行需求研究场景。

基于 Python 的短视频用户行为分析系统
基于快手 KuaiRec / KuaiRand 数据集的短视频推荐分析平台,提供用户行为分析、推荐偏差检测、内容运营洞察、图神经网络推荐等完整分析链路。

基于 Python 的汽车市场数据分析与可视化平台
本平台是一个基于 Python Flask 框架的汽车市场数据分析与可视化系统,整合了多个真实汽车市场数据集,提供数据概览、车辆检索、多维分析、价格预测、品牌对比、技术规格分析、销量统计等功能模块,适用于汽车市场趋势研究和二手车价格预测场景。