7.0 KiB
药店单品销售预测系统 - 用户操作手册
1. 系统概述
药店单品销售预测系统通过先进的深度学习技术,为用户提供药店产品销售预测服务。本手册将指导您如何使用系统的各项功能。
2. 快速入门
2.1 启动系统
在项目根目录下,运行以下命令启动系统:
python run_pharmacy_prediction.py
2.2 主菜单导航
启动后,您将看到主菜单界面:
==========================================
🏪 药店单品销售预测系统 🏪
==========================================
1. 训练所有药品的销售预测模型
2. 训练单个药品的销售预测模型(Transformer)
3. 训练单个药品的销售预测模型(mLSTM)
4. 训练单个药品的销售预测模型(KAN)
5. 查看已有预测结果
6. 使用已训练的模型进行预测
7. 比较不同模型的预测结果
8. 模型管理
0. 退出
==========================================
输入对应的数字选择功能。
3. 功能详解
3.1 训练模型
系统支持三种主要的模型训练方式:
3.1.1 训练所有药品模型
选择主菜单中的选项1
,系统将自动训练所有药品的销售预测模型。
3.1.2 训练单个药品模型
选择主菜单中的选项2
、3
或4
,分别使用Transformer、mLSTM或KAN模型训练特定药品的销售预测模型。
系统会提示您输入产品ID(例如P001)。输入有效的产品ID后,系统会开始训练。
训练过程中,系统会显示进度信息,包括当前轮次、训练损失和测试损失。训练完成后,系统会显示模型评估指标,如MSE、RMSE、MAE、R²等。
3.2 查看预测结果
选择主菜单中的选项5
,系统会显示已有的预测结果列表。
您可以选择具体的结果查看详细信息,系统会显示预测曲线图和评估指标。
3.3 使用模型预测
选择主菜单中的选项6
,可以使用已训练的模型进行预测。
系统会提示您选择产品ID和模型类型,然后执行预测并显示结果。
3.4 比较模型预测结果
选择主菜单中的选项7
,可以比较不同模型对同一产品的预测结果。
系统会提示您选择产品ID,然后加载可用的模型进行比较。比较结果会以图表形式显示,并提供各个模型的评估指标对比。
3.5 模型管理
选择主菜单中的选项8
,进入模型管理子菜单:
==========================================
📊 药店销售预测系统 - 模型管理工具 📊
==========================================
1. 查看所有模型
2. 查看特定产品的模型
3. 查看特定模型的详细信息
4. 使用模型进行预测
5. 比较不同模型的预测结果
6. 删除模型
7. 导出模型
8. 导入模型
0. 退出
==========================================
3.5.1 查看模型
选择选项1
或2
,可以查看系统中的所有模型或特定产品的模型。
3.5.2 查看模型详情
选择选项3
,可以查看特定模型的详细信息,包括训练参数、评估指标等。
3.5.3 使用模型预测
选择选项4
,可以使用选定的模型进行预测。
3.5.4 比较模型
选择选项5
,可以比较不同模型的预测结果。
3.5.5 删除模型
选择选项6
,可以删除不需要的模型。
3.5.6 导出/导入模型
选择选项7
或8
,可以导出模型以共享或导入外部模型。
4. 数据管理
4.1 使用自定义数据
系统默认使用pharmacy_sales.xlsx
文件中的数据。如果您想使用自己的数据,只需将数据保存为相同格式的Excel文件,并命名为pharmacy_sales.xlsx
放在项目根目录下。
数据文件应包含以下列:
- date: 日期(YYYY-MM-DD格式)
- product_id: 产品ID
- product_name: 产品名称
- sales: 销售量
- price: 价格
- weekday: 星期几(0-6)
- month: 月份(1-12)
- is_holiday: 是否节假日(0或1)
- is_weekend: 是否周末(0或1)
- is_promotion: 是否促销(0或1)
- temperature: 气温
4.2 生成模拟数据
如果没有现成的数据,系统可以自动生成模拟数据进行测试:
python generate_pharmacy_data.py
5. API服务使用
5.1 启动API服务
运行以下命令启动API服务:
python api.py
默认情况下,API服务会在 http://localhost:5000 上运行。
5.2 访问API文档
启动服务后,访问 http://localhost:5000 将自动重定向到Swagger UI文档界面,可以查看所有API接口说明并进行测试。
5.3 使用API示例
以下是一些基本的API使用示例:
获取产品列表
curl -X GET "http://localhost:5000/api/products"
获取特定产品销售数据
curl -X GET "http://localhost:5000/api/products/P001/sales"
启动模型训练
curl -X POST "http://localhost:5000/api/training" \
-H "Content-Type: application/json" \
-d '{"product_id": "P001", "model_type": "mlstm"}'
获取预测结果
curl -X POST "http://localhost:5000/api/prediction" \
-H "Content-Type: application/json" \
-d '{"product_id": "P001", "model_type": "mlstm", "days": 7}'
6. 常见问题解答
6.1 预测结果不准确
- 确保训练数据质量高且数量充足
- 尝试增加训练轮次(epochs)
- 尝试不同类型的模型(Transformer、mLSTM或KAN)
- 检查数据是否存在季节性或趋势性,并选择适合的模型
6.2 训练速度慢
- 检查是否正在使用GPU加速
- 减小批大小(batch_size)
- 减少训练轮次(epochs)
- 考虑使用更简单的模型
6.3 模型保存失败
- 检查磁盘空间是否充足
- 确保有写入权限
- 尝试手动创建predictions目录
6.4 找不到已训练的模型
- 确认模型已成功训练并保存
- 检查predictions目录中是否存在对应的模型文件
- 确认产品ID和模型类型输入正确
7. 高级使用技巧
7.1 命令行参数
许多功能也可以通过命令行参数直接调用,例如:
# 使用mLSTM模型训练P001产品的销售预测模型
python run_pharmacy_prediction.py --train P001 --model mlstm
# 比较P001产品的不同模型预测结果
python run_pharmacy_prediction.py --compare P001
7.2 模型管理命令行工具
模型管理功能也可以通过独立的命令行工具使用:
# 列出所有模型
python model_management.py --action list
# 查看特定产品的模型详情
python model_management.py --action details --product_id P001 --model_type mlstm
# 使用特定模型进行预测
python model_management.py --action predict --product_id P001 --model_type mlstm
7.3 批量处理
对于需要处理多个产品的场景,可以编写简单的批处理脚本:
import os
import time
products = ["P001", "P002", "P003", "P004", "P005"]
for product in products:
os.system(f"python run_pharmacy_prediction.py --train {product} --model mlstm")
time.sleep(5) # 等待一段时间再处理下一个产品