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

150 lines
3.5 KiB
Markdown
Raw 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.
# 系统架构设计
## 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.py`LSTM+MLP 深度学习训练与推理
- `feature_mining.py`:相关性分析与群体对比
- `clustering.py`K-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. 文件组织结构
```text
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. 架构特点
- 结构清晰,便于答辩说明
- 前后端职责明确
- 支持快速展示图表与预测效果
- 支持后续扩展为数据库或更复杂模型架构
- 同时支持传统机器学习模型与深度学习模型的实验对比