Files
forsetsystem/docs/01_系统架构设计.md

4.4 KiB
Raw Blame History

系统架构设计

1. 总体架构

系统采用前后端分离架构:

  • 前端Vue 3 + Vue Router + Element Plus + ECharts
  • 后端Flask + Pandas + Scikit-learn + PyTorch + Joblib
  • 数据层CSV 数据文件 + 模型文件 + 训练元数据

整体架构分为四层:

  1. 表现层:负责页面展示、表单交互和图表可视化
  2. 接口层:负责 HTTP 路由转发与请求响应
  3. 业务层:负责数据统计、特征分析、JD-R 解释、预测和聚类逻辑
  4. 数据与模型层:负责原始数据、清洗数据、模型文件和训练元数据

2. 前端架构设计

2.1 模块划分

  • Dashboard.vue:数据概览页
  • FactorAnalysis.vue:影响因素分析页
  • JDRAnalysis.vueJD-R 理论分析页
  • Prediction.vue:缺勤预测页
  • Clustering.vue:员工画像页

2.2 核心职责

  • 页面布局与导航
  • 图表渲染
  • 表单输入与结果展示
  • 接口调用与状态管理
  • JD-R 理论指标、路径关系与 SHAP 结果可视化

3. 后端架构设计

3.1 路由层

  • overview_routes.py
  • analysis_routes.py
  • predict_routes.py
  • cluster_routes.py
  • jdr_routes.py
  • shap_routes.py

3.2 服务层

  • data_service.py:负责概览统计
  • analysis_service.py:负责特征重要性与群体对比
  • predict_service.py:负责模型加载、预测输出与风险分类
  • cluster_service.py:负责聚类结果组织
  • jdr_service.py:负责 JD-R 理论指标、路径和画像分析
  • shap_service.py:负责全局/局部可解释分析结果封装

3.3 核心算法层

  • generate_dataset.py:生成中国企业缺勤事件数据集并补充 JD-R 基础维度
  • preprocessing.py:数据清洗与预处理
  • model_features.py:特征构建、JD-R 复合指标计算与预测输入映射
  • train_model.py:传统模型训练与评估
  • deep_learning_model.py:时序注意力融合深度学习模型训练与推理
  • feature_mining.py:相关性分析与群体对比
  • clustering.pyK-Means 聚类分析
  • shap_analysis.py:基于 SHAP 的全局、局部与交互解释分析

4. 数据流设计

4.1 训练流程

  1. 生成中国企业缺勤事件数据集
  2. 加载并清洗数据
  3. 补充 JD-R 理论基础维度
  4. 构建衍生特征与 JD-R 复合指标
  5. 进行编码、特征筛选与模型训练
  6. 保存模型、特征信息和训练元数据

其中深度学习路径采用:

  • 8 步时间窗口组织员工缺勤事件序列
  • 时序分支编码 15 个事件/上下文特征
  • 静态分支编码 13 个员工稳定属性特征
  • Transformer 编码 + 门控融合输出缺勤时长回归结果

4.2 预测流程

  1. 前端输入核心预测字段
  2. 后端构建完整预测样本
  3. 自动补齐默认字段
  4. 执行特征工程、JD-R 指标构建和编码
  5. 加载模型进行预测
  6. 返回缺勤时长、风险等级、风险概率、模型名称和置信度
  7. 调用 SHAP 生成局部解释结果

4.3 分析流程

  1. 读取清洗后的数据
  2. 计算统计指标、相关关系与群体差异
  3. JD-R 理论聚合工作要求、工作资源、个人资源、倦怠与投入
  4. 组织成前端图表所需结构
  5. 返回 JSON 数据供前端展示

5. 文件组织结构

backend/
  api/
  core/
  data/
  models/
  outputs/
  services/
  app.py

frontend/
  src/
    api/
    router/
    styles/
    views/
    App.vue
    main.js

6. 技术选型说明

6.1 Flask

  • 轻量,适合本科毕设项目
  • 路由层清晰,便于拆分接口

6.2 Vue 3

  • 组件化开发效率较高
  • 与 Element Plus、ECharts 配合较好

6.3 Scikit-learn

  • 适合传统机器学习建模
  • 提供随机森林、GBDT、Extra Trees 等成熟算法
  • 便于输出特征重要性并配合 SHAP 解释

6.4 PyTorch

  • 用于实现深度学习时序建模
  • 支持 Transformer 编码与静态特征门控融合
  • 便于在论文中增加时序预测对比实验内容

7. 部署方式

  • 本地前端开发服务器Vite
  • 本地后端服务Flask 开发服务器
  • 模型文件与数据文件均存储在本地项目目录中

8. 架构特点

  • 结构清晰,便于答辩说明
  • 前后端职责明确
  • 同时支持统计、预测、聚类和理论解释
  • 支持 SHAP 全局与局部可解释分析
  • 构成“数据生成 - 特征工程 - 理论解释 - 预测决策”的闭环