251 lines
9.0 KiB
Markdown
251 lines
9.0 KiB
Markdown
![]() |
## {Project Name} (init from readme/docs)
|
|||
|
|
|||
|
> 药店销售预测系统 - 基于机器学习的时序预测平台
|
|||
|
|
|||
|
> 集成数据管理、模型训练、时序预测、模型管理为一体的智能预测系统
|
|||
|
|
|||
|
> 开发中 - 持续迭代优化
|
|||
|
|
|||
|
> 开发团队
|
|||
|
|
|||
|
> Python + Flask + Vue3 + PyTorch + ECharts
|
|||
|
|
|||
|
|
|||
|
## Dependencies (init from programming language specification like package.json, requirements.txt, etc.)
|
|||
|
|
|||
|
* Flask (3.1.1): Python Web框架,提供API服务
|
|||
|
* Vue3 + Element Plus: 前端UI框架
|
|||
|
* PyTorch (2.7.1): 深度学习框架,用于模型训练和推理
|
|||
|
* pandas (2.3.0): 数据处理和分析
|
|||
|
* scikit-learn (1.7.0): 机器学习工具库
|
|||
|
* matplotlib (3.10.3): 数据可视化
|
|||
|
* numpy (2.3.0): 数值计算
|
|||
|
* flasgger (0.9.7.1): API文档生成
|
|||
|
* flask-cors (6.0.0): 跨域请求支持
|
|||
|
|
|||
|
|
|||
|
## Development Environment
|
|||
|
|
|||
|
> 开发环境:Windows + PowerShell
|
|||
|
> 后端启动:uv run .\server\api.py
|
|||
|
> 前端开发:位于 UI 目录,Vue3技术栈
|
|||
|
> 数据库:SQLite(prediction_history.db)
|
|||
|
> 模型存储:saved_models 目录
|
|||
|
|
|||
|
|
|||
|
## Structrue (init from project tree)
|
|||
|
|
|||
|
> 项目采用前后端分离架构,后端提供RESTful API,前端为Vue3单页应用
|
|||
|
|
|||
|
```
|
|||
|
root
|
|||
|
- .gitignore
|
|||
|
|
|||
|
- docs # 项目文档目录
|
|||
|
- api_update_summary.md
|
|||
|
- assets # 文档截图资源
|
|||
|
- 数据管理-历史数据查看.png
|
|||
|
- 数据管理页.png
|
|||
|
- 模型管理.png
|
|||
|
- 模型训练.png
|
|||
|
- 预测分析.png
|
|||
|
- 预测结果1.png
|
|||
|
- 预测结果2.png
|
|||
|
- 首页截图.png
|
|||
|
- ICBandASB.pdf
|
|||
|
- portable_README.md
|
|||
|
- portable_requirements.txt
|
|||
|
- REFACTOR_SUMMARY.md
|
|||
|
- sLSTM&mLSTM(NLP和时序任务).pdf
|
|||
|
- user_manual.md
|
|||
|
- 全局模型训练实施手册.md
|
|||
|
- 多店铺销售预测系统扩展方案.md
|
|||
|
- 大规模多店铺多品类预测系统实施方案.md
|
|||
|
- 模型类型 # 模型技术文档
|
|||
|
- kan_models_comparison.md
|
|||
|
- kan_model_introduction.md
|
|||
|
- mlstm_in_prediction.md
|
|||
|
- multi_model_strategy.md
|
|||
|
- optimized_kan_forecaster.md
|
|||
|
- transformer_in_time_series.md
|
|||
|
- 输出文档 # 系统文档
|
|||
|
- API参考手册.md
|
|||
|
- 安装配置指南.md
|
|||
|
- 开发者文档.md
|
|||
|
- 模型架构与设计.md
|
|||
|
- 用户操作手册.md
|
|||
|
- 索引.md
|
|||
|
- 药店销售预测系统API文档.md
|
|||
|
- 药店销售预测结果分析与解读方案.md
|
|||
|
- 项目日志.md
|
|||
|
- 项目概述.md
|
|||
|
- 预测结果分析增强.md
|
|||
|
- 预测结果解读指南.md
|
|||
|
|
|||
|
- install # 安装脚本目录
|
|||
|
- install_api_dependencies.bat
|
|||
|
- install_api_dependencies.sh
|
|||
|
- install_dependencies.bat
|
|||
|
- install_dependencies.sh
|
|||
|
- install_torch_gpu.bat
|
|||
|
- install_torch_gpu.sh
|
|||
|
- requirements-gpu.txt
|
|||
|
- requirements.txt
|
|||
|
- run_install.bat
|
|||
|
- setup_portable_env_fix.ps1
|
|||
|
|
|||
|
- P001_optimized_kan_prediction.png # 预测结果图像
|
|||
|
- P002_transformer_prediction.png
|
|||
|
- pharmacy_sales.xlsx # 主要数据文件,包含药店销售数据
|
|||
|
- prediction_history.db # SQLite数据库,存储预测历史
|
|||
|
- README.md
|
|||
|
- sales_trends.png
|
|||
|
|
|||
|
- saved_models # 训练好的模型文件存储目录,非常重要!
|
|||
|
- kan_optimized_model_product_P001.pth # 优化版KAN模型
|
|||
|
- mlstm_model_product_P002.pth # mLSTM模型
|
|||
|
- P001_kan_loss_curve.png # 训练损失曲线图
|
|||
|
- P001_kan_prediction.png
|
|||
|
- P001_mlstm_loss_curve.png
|
|||
|
- P001_mlstm_prediction.png
|
|||
|
- P001_model_comparison.png
|
|||
|
- P001_optimized_kan_loss_curve.png
|
|||
|
- P001_optimized_kan_prediction.png
|
|||
|
- P001_tcn_loss_curve.png
|
|||
|
- P001_tcn_prediction.png
|
|||
|
- P001_transformer_loss_curve.png
|
|||
|
- P001_transformer_prediction.png
|
|||
|
- P002_mlstm_loss_curve.png
|
|||
|
- P002_mlstm_prediction.png
|
|||
|
- P002_transformer_prediction.png
|
|||
|
- transformer_model_product_P002.pth # Transformer模型
|
|||
|
- Transformer_product_布洛芬片_loss_curve.png
|
|||
|
- 优化版KAN_product_感冒灵颗粒_loss_curve.png
|
|||
|
|
|||
|
- server # Python后端核心目录
|
|||
|
- analysis # 预测结果分析模块
|
|||
|
- explanation.py # 预测结果解释功能
|
|||
|
- metrics.py # 评估指标计算
|
|||
|
- trend_analysis.py # 趋势分析
|
|||
|
- __init__.py
|
|||
|
- api.py # 主API服务器文件,包含所有REST API端点
|
|||
|
- api_test.py # API测试脚本
|
|||
|
- check_code.py # 代码检查工具
|
|||
|
- check_gpu.py # GPU环境检查
|
|||
|
- check_import.py # 导入检查
|
|||
|
- core # 核心预测器模块
|
|||
|
- config.py # 配置管理
|
|||
|
- predictor.py # 主预测器类PharmacyPredictor
|
|||
|
- __init__.py
|
|||
|
- fix_code.py
|
|||
|
- fix_scripts.ps1
|
|||
|
- generate_pharmacy_data.py # 数据生成工具
|
|||
|
- models # 机器学习模型定义目录,包含5种模型
|
|||
|
- data_utils.py # 数据预处理工具
|
|||
|
- kan # KAN模型相关文件
|
|||
|
- kan_model.py # KAN模型定义
|
|||
|
- kan_optimized # 优化版KAN模型
|
|||
|
- P001_log.json # 训练日志
|
|||
|
- P001_model.pt # 模型文件
|
|||
|
- mlstm # mLSTM模型目录
|
|||
|
- mlstm_model.py # mLSTM模型定义,矩阵长短期记忆网络
|
|||
|
- model_manager.py # 模型管理器
|
|||
|
- optimized_kan_forecaster.py # 优化版KAN预测器
|
|||
|
- P001_mlstm_model.pt
|
|||
|
- slstm_model.py # sLSTM模型定义
|
|||
|
- tcn_model.py # TCN时间卷积网络模型
|
|||
|
- transformer # Transformer模型目录
|
|||
|
- transformer_model.py # Transformer模型定义
|
|||
|
- utils.py # 模型工具函数
|
|||
|
- __init__.py
|
|||
|
- model_management.py # 模型管理功能
|
|||
|
- pharmacy_predictor.py # 药店预测器主类
|
|||
|
- pharmacy_predictor.py.bak
|
|||
|
- pharmacy_sales.xlsx
|
|||
|
- predictions # 预测结果存储目录
|
|||
|
- history # 历史预测记录
|
|||
|
- kan
|
|||
|
- P001_2025-06-14_7days_20250614230822.json
|
|||
|
- optimized_kan
|
|||
|
- P001_2025-06-14_7days_20250614231052.json
|
|||
|
- P001_2025-06-14_7days_20250614233151.json
|
|||
|
- kan # KAN模型预测结果
|
|||
|
- P001
|
|||
|
- mlstm # mLSTM预测结果
|
|||
|
- P001
|
|||
|
- P002
|
|||
|
- optimized_kan # 优化版KAN预测结果
|
|||
|
- P001
|
|||
|
- transformer # Transformer预测结果
|
|||
|
- P001
|
|||
|
- predictors # 预测器模块
|
|||
|
- model_predictor.py # 模型预测执行器
|
|||
|
- saved_models
|
|||
|
- screenshots
|
|||
|
- static # 静态文件服务
|
|||
|
- csv
|
|||
|
- plots
|
|||
|
- predictions
|
|||
|
- compare
|
|||
|
- tools
|
|||
|
- trainers # 模型训练器模块,包含5种模型的训练器
|
|||
|
- mlstm_trainer.py # mLSTM训练器
|
|||
|
- kan_trainer.py # KAN训练器
|
|||
|
- tcn_trainer.py # TCN训练器
|
|||
|
- transformer_trainer.py # Transformer训练器
|
|||
|
- utils # 工具函数
|
|||
|
- data_processing.py # 数据处理工具
|
|||
|
- visualization.py # 可视化工具
|
|||
|
|
|||
|
- static # 静态资源目录
|
|||
|
- csv
|
|||
|
- plots
|
|||
|
- predictions
|
|||
|
- compare
|
|||
|
|
|||
|
- UI # Vue3前端项目目录
|
|||
|
- dist # 构建产物
|
|||
|
- src # 源代码
|
|||
|
- assets # 静态资源
|
|||
|
- components # Vue组件
|
|||
|
- DataView.vue # 数据管理页面
|
|||
|
- TrainingView.vue # 模型训练页面
|
|||
|
- PredictionView.vue # 预测分析页面
|
|||
|
- HistoryView.vue # 历史记录页面
|
|||
|
- ManagementView.vue # 模型管理页面
|
|||
|
- router # 路由配置
|
|||
|
- views # 页面视图
|
|||
|
|
|||
|
- wwwroot # Web静态文件
|
|||
|
- assets
|
|||
|
```
|
|||
|
|
|||
|
## Key Components Analysis
|
|||
|
|
|||
|
### 后端核心模块 (server/)
|
|||
|
1. **api.py** - REST API服务器,包含30+个端点,支持数据管理、模型训练、预测、模型管理四大功能模块
|
|||
|
2. **core/predictor.py** - PharmacyPredictor核心预测器类,统一管理所有模型的训练和预测
|
|||
|
3. **models/** - 包含5种机器学习模型:mLSTM、Transformer、KAN、优化版KAN、TCN
|
|||
|
4. **trainers/** - 模型训练器,每种模型都有专门的训练器
|
|||
|
5. **predictors/** - 预测执行器,负责加载模型并执行预测
|
|||
|
|
|||
|
### 前端核心模块 (UI/)
|
|||
|
1. **DataView.vue** - 数据管理界面,支持数据上传、查看、统计
|
|||
|
2. **TrainingView.vue** - 模型训练界面,支持选择模型类型、设置参数、监控训练进度
|
|||
|
3. **PredictionView.vue** - 预测分析界面,执行预测并展示结果
|
|||
|
4. **HistoryView.vue** - 历史记录界面,查看预测历史和结果对比
|
|||
|
5. **ManagementView.vue** - 模型管理界面,管理已训练的模型
|
|||
|
|
|||
|
### 数据和存储
|
|||
|
1. **pharmacy_sales.xlsx** - 主要销售数据文件
|
|||
|
2. **prediction_history.db** - SQLite数据库,存储预测历史记录
|
|||
|
3. **saved_models/** - 训练好的模型文件存储
|
|||
|
4. **predictions/** - 预测结果JSON文件存储
|
|||
|
|
|||
|
### 支持的模型类型
|
|||
|
1. **mLSTM** - 矩阵长短期记忆网络,适合多变量时序预测
|
|||
|
2. **Transformer** - 基于注意力机制,适合捕捉长期依赖
|
|||
|
3. **KAN** - Kolmogorov-Arnold网络,函数逼近能力强
|
|||
|
4. **Optimized KAN** - 优化版KAN,提供更高精度和效率
|
|||
|
5. **TCN** - 时间卷积网络,适合长序列和并行计算
|