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%,单均补贴成本控制在预算内。
面试讲法
按这个顺序:
- 背景:晚高峰供需不平衡。
- 指标:准时率、延误、补贴成本、骑手体验。
- 数据:订单、骑手、区域、策略日志。
- 模型:ETA、接单概率、uplift。
- 策略:baseline、匹配优化、补贴分配。
- 实验:离线回放和策略对比。
- 复盘:预测误差、仿真偏差、线上实验限制。
面试官可能追问
- 为什么最近骑手不是最优?
- ETA 误差会如何影响调度?
- 补贴为什么要用 uplift?
- 匹配优化实时性如何保证?
- 如果订单量暴增怎么办?
- 如何做线上 A/B?
- 骑手体验怎么量化?
- 这个仿真和真实系统差距在哪里?
项目扩展
如果时间够,可以继续加:
- 需求预测。
- 排班规划。
- 多单路径优化。
- switchback 实验模拟。
- Agent 调用预测和优化模块做策略分析。
- RAG 面试助手:根据 JD 自动生成问题和答案。
最后目标
这个项目做完后,你应该能回答:
- 业务问题如何定义。
- 指标怎么设。
- 数据怎么构造。
- 模型如何服务决策。
- 优化问题怎么建模。
- 策略如何评估。
- 收益和风险怎么讲。
这比一个单纯的模型训练项目更接近业务算法岗面试。