251 lines
9.0 KiB
Markdown
Raw Permalink Normal View History

## {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技术栈
> 数据库SQLiteprediction_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
- sLSTMmLSTM(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** - 时间卷积网络,适合长序列和并行计算