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

3.5 KiB
Raw Permalink Blame History

系统架构设计

1. 总体架构

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

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

整体架构分为四层:

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

2. 前端架构设计

2.1 模块划分

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

2.2 核心职责

  • 页面布局与导航
  • 图表渲染
  • 表单输入与结果展示
  • 接口调用与状态管理

3. 后端架构设计

3.1 路由层

  • overview_routes.py
  • analysis_routes.py
  • predict_routes.py
  • cluster_routes.py

3.2 服务层

  • data_service.py:负责概览统计
  • analysis_service.py:负责特征重要性与群体对比
  • predict_service.py:负责模型加载与预测输出
  • cluster_service.py:负责聚类结果组织

3.3 核心算法层

  • generate_dataset.py:生成企业缺勤事件数据集
  • preprocessing.py:数据清洗与预处理
  • model_features.py:特征构建与预测输入映射
  • train_model.py:模型训练与评估
  • deep_learning_model.pyLSTM+MLP 深度学习训练与推理
  • feature_mining.py:相关性分析与群体对比
  • clustering.pyK-Means 聚类分析

4. 数据流设计

4.1 训练流程

  1. 生成企业缺勤事件数据集
  2. 加载并清洗数据
  3. 构建衍生特征
  4. 进行标签编码和特征筛选
  5. 训练多种模型并评估性能
  6. 保存模型、特征信息和训练元数据

其中深度学习路径采用:

  • LSTM 处理员工最近多次缺勤事件构成的时间窗口序列
  • MLP 处理员工静态属性特征
  • 融合层输出缺勤时长回归结果

4.2 预测流程

  1. 前端输入核心预测字段
  2. 后端构建完整预测样本
  3. 自动补齐默认字段
  4. 执行特征工程和编码
  5. 加载模型进行预测
  6. 返回缺勤时长、风险等级、模型名称和置信度

4.3 分析流程

  1. 读取清洗后的数据
  2. 计算统计指标或相关关系
  3. 组织成前端图表所需结构
  4. 返回 JSON 数据供前端展示

5. 文件组织结构

backend/
  api/
  core/
  data/
  models/
  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 等成熟算法

6.4 PyTorch

  • 用于实现 LSTM+MLP 深度学习模型
  • 支持将时序特征与静态特征进行融合建模
  • 便于在论文中增加深度学习对比实验内容

7. 部署方式

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

8. 架构特点

  • 结构清晰,便于答辩说明
  • 前后端职责明确
  • 支持快速展示图表与预测效果
  • 支持后续扩展为数据库或更复杂模型架构
  • 同时支持传统机器学习模型与深度学习模型的实验对比