9.0 KiB
Raw Permalink Blame 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 - 时间卷积网络,适合长序列和并行计算