在电商行业中,订单是否按时送达直接影响用户满意度与平台口碑。为了提高用户体验与物流效率,很多平台开始尝试利用机器学习手段提前预测哪些订单存在配送延迟的风险,从而提前介入、优化资源配置。
本项目选用的是 Kaggle 上的 Brazilian E-Commerce Public Dataset 数据集,包含 10 余张表,涵盖订单、客户、卖家、支付、商品、地理等信息,结构完整,贴近实际业务,是电商分析与建模的优秀练手机会。
我们将以预测“订单是否延迟”为核心目标,依照真实业务流程完成数据处理、特征工程、建模与评估分析,并尝试提出具有实际业务价值的解决方案。
我们将构建一个二分类模型,预测某订单是否会延迟送达。
延迟送达的定义为:实际送达时间 > 预计送达时间。
构建目标字段:
df['is_late'] = (df['order_delivered_customer_date'] > df['order_estimated_delivery_date']).astype(int)
经统计,延迟订单约占总量的 8.1%,存在显著类别不平衡。
项目中采用了逐步精炼的特征工程方法,包含以下关键部分:
price
, freight_value
, product_weight_g
等连续变量product_category_name
, customer_state
, seller_state
等分类变量price * freight_value
长 * 宽 * 高
volume / weight
customer_state + seller_state
# 示例:生成体积、交互特征
merged_df['product_volume'] = merged_df['product_length_cm'] * merged_df['product_height_cm'] * merged_df['product_width_cm']
merged_df['price_freight_interaction'] = merged_df['price'] * merged_df['freight_value']
product_weight_g
, product_volume
等使用中位数填充基准模型采用 Random Forest Classifier,保持 0.5 阈值,训练集/测试集比例为 80/20。
accuracy: 67.9%
precision (class=1): 14.5%
recall (class=1): 62.0%
f1-score (class=1): 23.4%
可以看到,虽然精确率较低,但召回率已相对不错。
由于该任务是 业务风险识别 类型的问题,“提前发现潜在延迟”更为重要,因此提升 recall 更具有实际价值。
我们尝试将阈值调整为 0.3,以提升对延迟订单的召回:
recall (class=1): 提升至 98%
precision (class=1): 下滑至 8%
但由于误报过多,可能会带来不必要的运营成本,故最终保留默认 0.5 阈值,并建议:
将模型输出的概率作为风控评分,由运营侧设定灵活阈值,以便权衡精确率与召回率。
我们基于特征重要性排名评估模型的“关注重点”:
特征 | 重要性排名 |
---|---|
预计配送时长 | 1 |
客户州 (customer_state ) |
2 |
运费 (freight_value ) |
3 |
发货路由 (route_state ) |
4 |
运费 × 单价交互项 | 5 |
商品重量、体积、下单时间等 | 中等偏下 |
这进一步揭示了物流成本与地理路线在配送延迟中的重要作用。
此外,我们还构造了如 shipping_lead_time
、shipping_duration
、early_shipping_flag
等交互特征,在业务解释中具备良好直觉性。
从本项目结果出发,我们提出以下潜在落地方向:
特别提醒:模型不能“完美预测”所有延迟订单,但它可以极大提高平台对风险的感知能力,从“被动响应”转向“主动发现”,从而提升整体履约水平。
本项目完整模拟了一个从数据探索到模型部署思维的预测流程。其优势在于:
有任何问题或建议也欢迎评论区一起交流~