📦 库存数据理解 · 探索分析

📊 深度学习库存预测实战

🗂️ 1. 数据来源 & 字段解读 source & schema

📌 数据来源

  • 零售ERP系统 历史库存快照 (2019-2024)
  • WMS仓储日志 入库/出库/调拨记录
  • 销售POS 每日销量与退货数据
  • 外部特征 节假日、促销日历、天气指数
📏 数据量: 5年 · 3200个SKU · 日级别 · 1.2M 行

📋 核心字段解读

字段类型说明
sku_idstring商品唯一编码
datedate库存日期
stock_qtyint当日结存数量
inbound_qtyint入库量
outbound_qtyint出库量 (销售+调拨)
backorder_qtyint缺货待补
pricefloat加权平均单价
is_holidaybool是否节假日

🧹 2. 缺失值 & 异常值处理 data cleaning

⚠️ 缺失值策略

  • stock_qty : 线性插值 (时间序列连续性)
  • inbound/outbound : 用0填充 (无活动)
  • price : 前向填充 + 部门均值
  • backorder : 中位数填充 (偏态分布)
🧮 缺失比例: 整体 < 3.2% , 不影响建模

🚨 异常值检测与处理

  • IQR 规则 (1.5倍四分位距) 识别 stock_qty 离群点
  • 时序异常 : 突增/突降 > 3σ 标记为人工核查
  • 业务规则 : 库存 <0 视为异常 → 取值或修正
  • 处理 : 盖帽法 (99%分位数截断) + 局部平滑
📉 异常占比: 约 1.8% , 经处理后分布更稳健
🐍 Python 示例 缺失值/异常值处理片段
# 缺失值线性插值 + 异常值盖帽
import pandas as pd
import numpy as np

df['stock_qty'] = df['stock_qty'].interpolate(method='linear')
df['inbound_qty'] = df['inbound_qty'].fillna(0)

# IQR 异常处理
Q1 = df['stock_qty'].quantile(0.25)
Q3 = df['stock_qty'].quantile(0.75)
IQR = Q3 - Q1
lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR
df['stock_qty'] = df['stock_qty'].clip(lower, upper)

📈 3. 时间序列可视化 time series insight

📆 库存时序 (示例) 2024-01 2024-06 库存量 ⭐ 📉
图1 · 库存量日趋势 (平滑后)
缺失 异常 完整 3.2% 1.8% 95% 🧹 数据质量
图2 · 缺失/异常比例
📊 可视化发现:
  • 库存呈现 周季节性 (周末降低)
  • 每年1月/7月 库存波峰 (促销前备货)
  • 异常值多发生在 双十一/黑五 大促
  • 缺失值随机分布,无系统性偏差

🧩 探索性分析 → 预测架构 EDA2ML

📦 多源数据 ERP/WMS/POS 🧹 清洗 & EDA 缺失/异常/可视化 ⚙️ 特征工程 时序特征/滞后 🧠 LSTM 库存预测 📌 数据理解与探索性分析是预测流程的基石