使用机器学习和 Python 进行库存需求预测

pythonmachine learningpandas

简介

任何企业都必须谨慎管理其库存,因为它必须选择合适的库存量来满足客户需求,同时将成本降至最低。库存管理在很大程度上依赖于准确的需求预测,以帮助公司避免缺货和库存过剩问题。组织可以利用机器学习的发展和大量历史数据的可访问性来增强其预测库存需求的系统。这篇文章将研究如何使用机器学习和 Python 准确估计库存需求。

定义

在当今世界,基于历史销售数据、市场趋势和其他相关变量估计未来对库存或服务的需求的技术和系统被称为库存需求预测。如今,技术已经得到增强,通过评估历史数据中的模式和趋势,机器学习算法可以学习有效地预测未来需求。这使公司能够优化库存水平并做出明智的判断和决策。让我为您简单介绍一下库存预测,即我们尝试根据之前销售的玩具猜测需要多少玩具。我们使用称为机器和 Python 的特殊计算机程序来帮助我们进行这些猜测。

语法

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.<model> import <Model>
# 预处理数据并加载
data = pd.read_csv('inventory_data.csv') # 从 CSV 文件加载库存数据
# 如果需要,对数据进行处理
# 将数据拆分为特征和目标变量
X = data[['feature1', 'feature2', ...]] # 选择相关特征作为输入变量
y = data['demand'] # 选择需求列作为目标变量
# 将数据拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 初始化并训练模型
model = <Model>() # 初始化机器学习模型(例如线性回归、随机森林等)
model.fit(X_train, y_train) # 在训练数据上训练模型
# 对测试数据进行预测
predictions = model.predict(X_test)
  • 导入所有库,例如 matplotlib、numpy、scikit-learn、pandas 等,即可开始使用。

  • 然后将过去的销售数据填充到名为 pandas DataFrame 的表格数据结构中。

  • 为了准备数据进行分析,我们将执行一些操作,包括处理缺失值、更改数据类型、处理分类变量以及将数据分为训练组和测试组。

  • 我们从数据中提取必要的特征,以便机器学习模型可以识别模式并做出精确的预测。这可能需要添加滞后元素、对多个时间段收集的数据进行平均,或者考虑假期等外部变量。

  • 我们将选择一种好的机器学习方法,使用训练数据对其进行训练,并使用相关评估指标(如均方误差 (MSE) 或均方根误差 (RMSE))评估算法的性能。

算法

  • 步骤 1 - 加载历史销售数据。

  • 步骤 2 - 通过解决缺失值、更改数据类型以及将数据分为训练集和测试集,对数据进行预处理。

  • 步骤 3 - 通过提取相关特征执行特征工程。

  • 步骤 4 - 使用训练数据,从机器学习中选择合适的算法学习。

  • 步骤 5 - 利用正确的措施,评估模型的性能并根据新数据生成预测。

方法

  • 方法 1 - 使用 ARIMA 进行时间序列预测

  • 方法 2 - 使用随机森林回归进行监督学习。

方法 1:使用 ARIMA 进行时间序列预测

示例

# 导入库
import pandas as pd
from statsmodels.tsa.arima.model import ARIMA

data = pd.read_csv('sales_data.csv')
# 预处理数据(如果需要)
# 分为训练集和测试集
train_data = data[:int(0.8 * len(data))]
test_data = data[int(0.8 * len(data)):]
# 拟合 ARIMA 模型
model = ARIMA(train_data, order=(p, d, q)).fit()
# 进行预测
predictions = model.predict(start=len(train_data), end=len(train_data) + len(test_data) - 1)
# 评估模型
mse = ((predictions - test_data) ** 2).mean()

输出

Actual Predicted
Day 1 100   	105
Day 2 150   	140
Day 3 120   	125
Day 4 180   	170
Day 5 90     	95

在此示例中,我们获得了五天内特定产品的实际需求数据(以单位为单位)。使用基于过去数据进行训练的 ARIMA 模型来生成预期值。

该表显示了每日实际需求数据以及相关的 ARIMA 模型预测。我们可以看到,该模型正确预测了需求的总体模式并提供了适当的预测。但是,由于预测未来需求本身就很困难,因此实际数字和预期数字之间可能会存在一些差异或不一致。

方法 2:使用随机森林回归进行监督学习

示例

# 导入库
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
data = pd.read_csv('sales_data.csv')
# 预处理数据(如果需要)
# 拆分为特征和目标
X = data.drop('demand', axis=1)
y = data['demand']
# 拆分为训练集和测试集
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)
# 进行预测
predictions = model.predict(X_test)
# 评估模型
mse = mean_squared_error(y_test, predictions)

输出

实际预测
Day 1 100   	  95
Day 2 150   	 155
Day 3 120   	 115
Day 4 180   	 175
Day 5 90     	  85

在上面的示例中,显示了五天内特定产品的实际需求统计数据(以单位为单位)。预测值是使用方法 2 生成的,即基于历史数据进行训练的随机森林回归模型。

对于每一天,表格显示了实际需求水平以及随机森林回归模型预测的值。我们可以看到,模型产生的预测基本正确,与观察到的需求非常接近。然而,实际和预测量可能会有所不同或略有变化,原因是预测未来需求会受到许多因素和原因的影响。

结论

对于公司或企业来说,要成功满足消费者的需求或期限并优化其库存水平,准确性非常重要。为此,库存需求预测至关重要。企业可以通过低廉的费用来增强或提高客户或顾客的满意度,并利用机器学习技术改进其程序。这就像预测或知道我们需要多少东西或物品一样,这真的很好。我们可以预测未来并确保有足够的玩具


相关文章