Final Project

Final Project:业务算法作品项目

这个 Final Project 的目标,是做一个能放进简历、能经得住面试追问的业务算法项目。

项目不追求复刻大厂系统,而是要把算法岗最重要的能力串起来:业务定义、指标体系、数据构造、模型训练、策略约束、实验评估和复盘表达。

推荐项目:即时物流订单分配与补贴策略

这个项目适合覆盖运筹优化、因果推断、调度、定价和业务算法,和真实 JD 贴合度高。

项目背景

即时物流平台在晚高峰会遇到供需不平衡:订单集中出现,骑手数量有限,部分订单超时,补贴成本上升。

目标是在预算约束下,提高订单准时率,并尽量减少骑手空驶和无效补贴。

业务指标

主指标:

  • 准时率。
  • 平均延误。
  • P90 延误。

成本指标:

  • 补贴总成本。
  • 单均补贴成本。
  • 骑手空驶距离。

护栏指标:

  • 骑手收入稳定性。
  • 订单取消率。
  • 分区域公平性。

数据设计

可以自己模拟数据,也可以基于公开地图和订单数据构造。

核心表:

  • 订单表:下单时间、商家位置、用户位置、承诺时效、订单价值。
  • 骑手表:位置、容量、速度、在线时间、历史接单率。
  • 区域表:区域需求、天气、时段、供给缺口。
  • 策略日志:分配结果、补贴金额、完成时间、是否超时。

模型模块

ETA 预估

预测订单由某骑手服务时的预计完成时间。

特征:

  • 距离。
  • 时段。
  • 天气。
  • 骑手负载。
  • 商家历史出餐。
  • 区域拥堵。

指标:

  • MAE。
  • P90 error。
  • 超时风险召回。

接单 / 履约概率

预测骑手接受某订单或按时完成的概率。

可以用 LR、GBDT 或简单 DNN。重点不是模型复杂度,而是样本和特征解释清楚。

补贴 uplift

模拟不同补贴档位对接单概率的增量影响。

不要只预测“谁会接单”,而要预测“给补贴后谁会增加接单概率”。

策略模块

Baseline 1:最近骑手

把订单分给距离最近的骑手。

优点是简单。缺点是不考虑骑手负载、未来机会成本和超时风险。

Baseline 2:贪心最低成本

按订单紧急程度排序,每次选择成本最低的骑手。

成本可以包括预计超时、距离和骑手负载。

优化方案:带约束匹配

构造订单-骑手二分图,边权为:

cost = 超时风险 + 空驶距离 + 等待时间 + 补贴成本

在每个时间窗口内做最小成本匹配。

补贴策略

在供给不足区域,对高 uplift 骑手或订单发放补贴。

目标:

maximize uplift_gain - subsidy_cost
subject to total_subsidy <= budget

实验设计

离线对比:

  • 最近骑手。
  • 贪心策略。
  • 匹配优化。
  • 匹配优化 + uplift 补贴。

指标:

  • 准时率。
  • P90 延误。
  • 补贴成本。
  • 空驶距离。
  • 分区域效果。

可视化

建议做几个图:

  • 不同策略准时率对比。
  • 补贴成本和准时率 trade-off。
  • 高峰时段供需缺口。
  • 不同区域的超时分布。
  • 骑手空驶距离分布。

这些图在面试里很有说服力。

简历写法

可以写成:

设计并实现即时物流订单分配与补贴策略仿真系统,构建订单、骑手、区域和补贴日志数据;训练 ETA 和接单概率模型,基于最小成本匹配完成订单分配,并引入 uplift 补贴策略优化供给缺口。在模拟回放中,相比最近骑手 baseline,准时率提升 X%,P90 延误下降 X%,单均补贴成本控制在预算内。

面试讲法

按这个顺序:

  1. 背景:晚高峰供需不平衡。
  2. 指标:准时率、延误、补贴成本、骑手体验。
  3. 数据:订单、骑手、区域、策略日志。
  4. 模型:ETA、接单概率、uplift。
  5. 策略:baseline、匹配优化、补贴分配。
  6. 实验:离线回放和策略对比。
  7. 复盘:预测误差、仿真偏差、线上实验限制。

面试官可能追问

  • 为什么最近骑手不是最优?
  • ETA 误差会如何影响调度?
  • 补贴为什么要用 uplift?
  • 匹配优化实时性如何保证?
  • 如果订单量暴增怎么办?
  • 如何做线上 A/B?
  • 骑手体验怎么量化?
  • 这个仿真和真实系统差距在哪里?

项目扩展

如果时间够,可以继续加:

  • 需求预测。
  • 排班规划。
  • 多单路径优化。
  • switchback 实验模拟。
  • Agent 调用预测和优化模块做策略分析。
  • RAG 面试助手:根据 JD 自动生成问题和答案。

最后目标

这个项目做完后,你应该能回答:

  • 业务问题如何定义。
  • 指标怎么设。
  • 数据怎么构造。
  • 模型如何服务决策。
  • 优化问题怎么建模。
  • 策略如何评估。
  • 收益和风险怎么讲。

这比一个单纯的模型训练项目更接近业务算法岗面试。