# 药店单品销售预测系统 - 用户操作手册 ## 1. 系统概述 药店单品销售预测系统通过先进的深度学习技术,为用户提供药店产品销售预测服务。本手册将指导您如何使用系统的各项功能。 ## 2. 快速入门 ### 2.1 启动系统 在项目根目录下,运行以下命令启动系统: ```bash 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 生成模拟数据 如果没有现成的数据,系统可以自动生成模拟数据进行测试: ```bash python generate_pharmacy_data.py ``` ## 5. API服务使用 ### 5.1 启动API服务 运行以下命令启动API服务: ```bash python api.py ``` 默认情况下,API服务会在 http://localhost:5000 上运行。 ### 5.2 访问API文档 启动服务后,访问 http://localhost:5000 将自动重定向到Swagger UI文档界面,可以查看所有API接口说明并进行测试。 ### 5.3 使用API示例 以下是一些基本的API使用示例: #### 获取产品列表 ```bash curl -X GET "http://localhost:5000/api/products" ``` #### 获取特定产品销售数据 ```bash curl -X GET "http://localhost:5000/api/products/P001/sales" ``` #### 启动模型训练 ```bash curl -X POST "http://localhost:5000/api/training" \ -H "Content-Type: application/json" \ -d '{"product_id": "P001", "model_type": "mlstm"}' ``` #### 获取预测结果 ```bash 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 命令行参数 许多功能也可以通过命令行参数直接调用,例如: ```bash # 使用mLSTM模型训练P001产品的销售预测模型 python run_pharmacy_prediction.py --train P001 --model mlstm # 比较P001产品的不同模型预测结果 python run_pharmacy_prediction.py --compare P001 ``` ### 7.2 模型管理命令行工具 模型管理功能也可以通过独立的命令行工具使用: ```bash # 列出所有模型 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 批量处理 对于需要处理多个产品的场景,可以编写简单的批处理脚本: ```python 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) # 等待一段时间再处理下一个产品 ```