Python 使用线性回归预测补货量和定价
Python 使用线性回归预测补货量和定价
本文将使用 Python 的 pandas 和 sklearn 库,通过历史销售数据训练线性回归模型,预测 8 月 1 日的补货量和定价。
import pandas as pd
from sklearn.linear_model import LinearRegression
# 读取数据
data = pd.read_csv('test.csv')
# 筛选出 2020 年 7 月 1-2 日的数据
start_date = '2020-07-01'
end_date = '2020-07-02'
selected_data = data[(data['销售日期'] >= start_date) & (data['销售日期'] <= end_date)]
# 计算每个单品的历史销售总量和平均销售单价
sales_sum = selected_data.groupby('单品编码')['销量(千克)'].sum()
sales_mean = selected_data.groupby('单品编码')['销售单价(元/千克)'].mean()
# 构建特征矩阵和目标向量
X = pd.DataFrame({'历史销售总量': sales_sum, '平均销售单价': sales_mean})
X.columns = ['历史销售总量', '平均销售单价']
y = selected_data.groupby('单品编码')['销售单价(元/千克)'].mean()
# 使用线性回归模型进行训练
model = LinearRegression()
model.fit(X, y)
# 预测 8 月 1 日的补货量和定价
predicted_replenishment = model.predict([[7, 8]])
predicted_price = model.predict([[10, 12]])
# 输出结果
print('8 月 1 日的补货量:', predicted_replenishment)
print('8 月 1 日的定价:', predicted_price)
报错
在运行上述代码时,可能会遇到以下警告:
C:\Users\TX\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\base.py:439: UserWarning: X does not have valid feature names, but LinearRegression was fitted with feature names
warnings.warn(
解决方法
该警告是由于特征矩阵 X 没有指定列名导致的。可以通过在构建 X 时指定列名来解决这个问题。修改如下:
# 构建特征矩阵和目标向量
X = pd.DataFrame({'历史销售总量': sales_sum, '平均销售单价': sales_mean})
X.columns = ['历史销售总量', '平均销售单价']
y = selected_data.groupby('单品编码')['销售单价(元/千克)'].mean()
这样就为特征矩阵 X 指定了列名,消除了警告。
注意: 以上代码示例仅供参考,实际应用中可能需要根据具体情况进行调整。
原文地址: https://www.cveoy.top/t/topic/eijG 著作权归作者所有。请勿转载和采集!