库存预测建模的核心是利用历史销售与相关因素数据,训练一个能预估未来需求的模型,从而指导采购与补货。Python凭借丰富的数据科学库,让这一过程变得高效且可复用。

一、数据准备与探索
首先收集历史订单、库存流水、促销标记等数据,用pandas读取并做基础清洗。缺失值和异常销量需要处理后才能进入建模环节。
import pandas as pd
# 读取历史销量数据
df = pd.read_csv('sales_history.csv')
# 将日期列转为时间类型
df['date'] = pd.to_datetime(df['date'])
# 按商品与日期排序
df = df.sort_values(['sku', 'date'])
# 简单填充缺失销量
df['sales'] = df['sales'].fillna(df['sales'].mean())
print(df.head())
二、特征工程
为了让模型理解需求规律,需要构造时间特征与滞后特征。比如上周销量、是否周末、是否大促等都能显著影响库存消耗。
# 构造滞后特征与星期特征
df['sales_lag7'] = df.groupby('sku')['sales'].shift(7)
df['weekday'] = df['date'].dt.weekday
df['is_promo'] = df['is_promo'].astype(int)
# 丢弃仍有缺失的行
features = df.dropna()
三、模型构建与训练
可以使用随机森林回归作为基础预测模型。它将多个决策树的结果平均,对非线性关系与混合特征表现稳定。
from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split X = features[['sales_lag7', 'weekday', 'is_promo']] y = features['sales'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = RandomForestRegressor(n_estimators=100) model.fit(X_train, y_train)
四、模型评估
用均方误差和平均绝对误差判断预测准确度。误差过大会导致安全库存设错,需要回看特征或换模型。
| 指标 | 说明 |
|---|---|
| MAE | 预测与真实销量平均相差件数 |
| MSE | 误差平方均值,惩罚大偏差 |
from sklearn.metrics import mean_absolute_error, mean_squared_error
pred = model.predict(X_test)
print('MAE:', mean_absolute_error(y_test, pred))
print('MSE:', mean_squared_error(y_test, pred))
五、预测与库存决策
得到未来一周预测销量后,结合提前期与服务水平计算安全库存。下面示例用简单规则生成补货建议。
# 假设提前期为3天,安全系数为1.5 lead_time = 3 safe_factor = 1.5 features['pred'] = model.predict(X) features['reorder_point'] = features['pred'] * lead_time + features['pred'].std() * safe_factor print(features[['sku', 'date', 'pred', 'reorder_point']].tail())
小结
以上步骤展示了如何使用Python完成库存预测建模的主要流程。实际业务中可接入实时数据并定期重训模型,让补货更精准。