1. 真实数据探索与质量审查 (EDA & Real Data Audit)
基于项目真实的 100万条销售交易数据 (sales.csv) 进行深度探索分析
真实数据集规模
1,000,000 条 交易记录,涵盖 200 个 SKU、50,000 名注册顾客及 100 家门店。累计实现总销售额 $25,486,128.86(平均毛利率 40.0%)。
品牌与品类分布占比
Praline 榛果威化 ($6.66M, 26.15%) 与 White 白巧 ($6.07M, 23.82%) 领跑营收。品牌方面 Ferrero ($4.69M) 与 Cadbury ($4.67M) 构成头部高销量双雄。
渠道与场景贡献
Airport 机场免税店 贡献最大营收 ($7.61M, 29.9%),Mall 购物中心占据 26.0%,Online 线上店 25.1%,Retail 零售店 19.1%。高频出行场景与赠礼需求极高。
📊 真实数据探索可视化看板 (Real Data EDA Visuals)
🍫 5大品类销售额贡献比例 (Category Revenue)
🏬 四大销售渠道营收占比 (Store Type Sales)
🛠️ 6 大核心数据质量问题与工程治理体系 (Data Quality & Engineering Governance)
1. 极度数据稀疏性 (Matrix Sparsity)
通过 `eda.py` 实测,用户-物品交互矩阵稀疏度达 90.10%(50,000 名用户对 200 个 SKU)。多数用户仅有 1-2 次购买记录。
治理:采用神经网络 Embedding 隐向量与 GBDT 树打分拟合2. 访客冷启动 (Cold-Start & Guests)
新访客(Guest)或全新注册用户在数据库中没有任何历史购买轨迹,传统的协同过滤(ItemCF)完全无法召回 Candidate。
治理:构建静态人口统计学默认画像(如年龄35、中性偏好)自动兜底3. 类别未见值与未知映射 (OOV & Unknown)
推理或测试集中可能出现未曾见到的品牌、品类或渠道名称,容易导致分类特征映射崩塌或报 KeyNotFoundError。
治理:建立 `gender_map`, `brand_map` 统一兜底通道,未见值映射至 `Unknown`4. 连续属性缺失与离群平滑 (Imputation)
部分新品的可可含量 (`cocoa_percent`) 存在缺失,用户年龄 (`age`) 偶发空值,影响连续数值计算。
治理:年龄按中位数 `35` 填充,规格与统计特征采用 `fillna(0.0)` 中性平滑5. 样本极度不平衡 (Class Imbalance)
在百万级交易中,发生购买的正样本相比海量全量 Candidate 极其稀少,模型容易过度预测低概率。
治理:训练离线模型时实施 1:4 启发式负采样 (Negative Sampling) 平衡比例6. 张量缩放与并发死锁 (Tensor Scaling & Lock)
连续特征量级跨度大(年龄18-70与重量50-200g),多线程环境下 PyTorch/Matplotlib 在云端极易死锁。
治理:实施 Min-Max 张量缩放,且全局强制 `OMP_NUM_THREADS=1` 单线程避锁1.5 原始数据表模型与 10 行样例预览 (Raw Data Schema & Samples)
展示四张关联表的数据模式(ER 关系图)及每张表的真实前 10 行原始数据预览
数据表关联系数与星型模型架构 (Star Schema Relations)
PK: product_id (200 SKUs)
PK: customer_id (50,000 Users)
PK: store_id (100 Stores)
包含 1,000,000 行记录,连接 product_id, customer_id, store_id 以及交易金额、数量与利润
| order_id | order_date | product_id | store_id | customer_id | quantity | unit_price | discount | revenue | cost | profit |
|---|---|---|---|---|---|---|---|---|---|---|
| 0RD00000001 | 2023-01-07 | P0080 | S093 | C040749 | 5 | 14.43 | 0.15 | 61.33 | 42.77 | 18.56 |
| 0RD00000002 | 2023-10-22 | P0173 | S065 | C020161 | 3 | 12.01 | 0.00 | 36.03 | 19.06 | 16.97 |
| 0RD00000003 | 2023-05-07 | P0115 | S078 | C048069 | 2 | 10.02 | 0.00 | 20.04 | 10.29 | 9.75 |
| 0RD00000004 | 2024-06-23 | P0186 | S088 | C047901 | 2 | 14.66 | 0.10 | 26.39 | 16.35 | 10.04 |
| 0RD00000005 | 2024-09-24 | P0197 | S054 | C033950 | 1 | 12.34 | 0.00 | 12.34 | 7.94 | 4.40 |
| 0RD00000006 | 2024-03-29 | P0160 | S089 | C008918 | 4 | 13.52 | 0.00 | 54.08 | 36.59 | 17.49 |
| 0RD00000007 | 2023-02-26 | P0062 | S024 | C002897 | 1 | 11.97 | 0.10 | 10.77 | 7.16 | 3.61 |
| 0RD00000008 | 2023-11-03 | P0111 | S085 | C038072 | 5 | 4.62 | 0.00 | 23.10 | 16.15 | 6.95 |
| 0RD00000009 | 2024-10-11 | P0135 | S029 | C003786 | 4 | 7.88 | 0.00 | 31.52 | 19.90 | 11.62 |
| 0RD00000010 | 2023-12-17 | P0069 | S056 | C043148 | 3 | 8.88 | 0.00 | 26.64 | 18.19 | 8.45 |
2. 18维全量特征工程矩阵与筛选策略 (18-Dimensional Feature Pipeline)
展示算法精排输入特征列(cols_order)中完整 18 维特征的提取构建与筛选归因逻辑
🤔 为什么选择这 18 维特征?特征筛选与提取方法论 (Feature Selection Rationale)
在推荐系统的精排阶段,单纯依靠 ID 拟合极其容易陷入过拟合与数据稀疏瓶颈。我们基于领域业务洞察 (Domain Knowledge) 与数据统计交叉 (Statistical Aggregation),遵循以下 4 大筛选维度精准构建了 18 维特征矩阵:
- ① 人口统计与属性偏好匹配 (Demographics Matching):不同年龄段(如年轻群体 vs 中老年)、性别及会员身份对可可含量黑度 (cocoa_percent) 及包装规格克重 (weight_g) 有极强偏好差异。
- ② 用户消费力与折扣敏感度刻画 (Purchasing Power & Price Sensitivity):通过汇总用户历史总消费额 (`user_avg_revenue`) 和历史平均折扣率 (`user_avg_discount`),让模型区分高客单价倾向用户与折扣促销驱动型用户。
- ③ 强高阶交叉交互特征 (User-Item Cross Interaction):这是提升 AUC 与精排准确率的关键!通过计算用户历史对特定商品、品牌、品类的累计购买次数,让模型直接捕捉“该用户对 Godiva 品牌的偏好度”或“对 Truffle 品类的购买粘性”。
- ④ 上下文与时空情境特征 (Contextual Signals):机场免税店 (`Airport`) 与线上商城 (`Online`) 的用户即时购买意图迥异,搭配星期与月份字段捕捉季节性与周末消费热度。
📋 18 维特征清单一览 (Full 18-Feature Matrix)
3. 多算法性能实验与实测对比 (Algorithm Benchmark)
对协同过滤、梯度提升树及深度神经网络进行统一指标评估与商业权衡
| 算法类别 (Algorithm) | Precision@5 | Recall@5 | HitRate@5 | 推理延迟 (Latency) | 商业应用定位 (Role in System) |
|---|---|---|---|---|---|
| Item-based CF | 1.04% | 2.87% | 5.20% | ⚡ 0.19 ms | 召回层 (Retrieval):毫秒级从海量 SKU 筛选 Candidate |
| XGBoost Ranking | 1.07% | 2.51% | 5.20% | 2.96 ms | 精排备选:高可解释性特征拟合 |
| LightGBM Ranking | 1.15% (最高) | 2.65% | 5.70% | 3.09 ms | 精排王者 (Ranking):高准确度与极速训练平衡 |
| Neural NCF (PyTorch) | 0.84% | 1.99% | 4.15% | 0.50 ms | 隐向量提取:解决深层非线性交叉与泛化 |
4. 工业级双阶段推荐架构动态演算沙盒 (Interactive Pipeline Sandbox)
点击按钮,动态演示全量 SKU 如何经过“ItemCF 召回”与“LightGBM 精排”打分输出
系统涵盖 200 个不同品牌、可可含量与克重的全量产品大盘候选集...
结合目标用户 CUST_000001 历史购买记录,根据协同矩阵筛选出真实 Top 10 召回集:
拼接目标用户画像(38岁女性)与商品物理属性,由真实 LightGBM 拟合预估点击转化概率: