251 lines
9.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## {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** - 时间卷积网络,适合长序列和并行计算