feat: update clustering implementation and docs

This commit is contained in:
shuo
2026-04-21 11:13:11 +08:00
parent 5655eb0cda
commit 27c394fd8c
17 changed files with 540 additions and 215 deletions

View File

@@ -2,9 +2,21 @@
## 项目简介
本项目面向企业人力资源管理与运营分析场景,围绕员工缺勤事件构建了一个集数据分析、风险预测、群体画像与可视化展示于一体的毕业设计系统。系统支持缺勤趋势分析、影响因素挖掘、单次缺勤时长预测、多模型对比以及员工群体聚类展示
本项目面向企业人力资源管理与运营分析场景,围绕员工缺勤事件构建了一个集数据概览、影响因素分析、`JD-R` 理论解释、风险预测、群体画像与可解释分析于一体的毕业设计系统。系统既关注“缺勤发生了什么”,也关注“为什么会缺勤”以及“如何进行干预”
后端采用 `Flask + scikit-learn + PyTorch`,前端采用 `Vue 3 + Element Plus + ECharts`。当前版本同时支持传统机器学习模型`LSTM+MLP` 深度学习模型
后端采用 `Flask + scikit-learn + PyTorch`,前端采用 `Vue 3 + Element Plus + ECharts`。当前实现同时包含传统机器学习模型、基于时序注意力融合的深度学习模型,以及 `SHAP` 全局/局部解释能力
## 理论支撑
系统以 `JD-R`Job Demands-Resources工作要求-资源)模型作为解释员工缺勤的重要理论基础,并在代码中完成了落地:
- 工作要求维度:工作自主性、情绪劳动强度、时间压力感知、角色模糊度、工作家庭冲突
- 工作资源维度:上级支持、同事支持、技能多样性、职业发展机会、参与决策、组织公平感
- 个人资源维度:自我效能感、心理韧性、乐观程度
- 中介变量:工作倦怠、工作投入
- 复合指标:工作要求指数、工作资源指数、个人资源指数、`JD-R` 平衡度、倦怠风险指数、工作投入指数
这意味着系统不仅做统计和预测,还能从“高要求导致倦怠”“资源促进投入”的心理学视角解释缺勤风险。
## 功能模块
@@ -22,16 +34,23 @@
- 相关性热力图
- 多维群体对比分析
### 3. 缺勤预测
### 3. `JD-R` 理论分析
- 工作要求、工作资源、个人资源三维度分析
- 工作倦怠与工作投入分布分析
- 健康损伤路径与激励路径分析
- 分组画像与风险分布分析
### 4. 缺勤预测与解释
- 单次缺勤时长预测
- 风险等级评估
- 多模型结果对比
- 传统模型与深度学习模型切换
- `SHAP` 局部解释与维度贡献展示
### 4. 员工画像
### 5. 员工画像
- 聚类结果展示
- `K-Means` 聚类结果展示
- 群体画像分析
- 群体散点图可视化
@@ -64,12 +83,13 @@
forsetsystem/
├── backend/
│ ├── api/ # 接口层
│ ├── core/ # 数据生成、特征工程、训练、聚类、深度学习
│ ├── core/ # 数据生成、特征工程、训练、聚类、可解释分析
│ ├── services/ # 业务服务层
│ ├── data/
│ │ └── raw/
│ │ └── china_enterprise_absence_events.csv
│ ├── models/ # 模型文件与训练工件
│ ├── outputs/ # 评估图与结果导出
│ ├── app.py # 后端入口
│ ├── config.py # 项目配置
│ └── requirements.txt
@@ -167,7 +187,7 @@ http://127.0.0.1:5000
```powershell
cd ..\frontend
pnpm dev
npm run dev
```
前端默认地址:
@@ -178,29 +198,39 @@ http://127.0.0.1:5173
## 模型说明
当前系统支持以下模型类型
当前训练产物中启用的模型包括
- `random_forest`
- `gradient_boosting`
- `extra_trees`
- `xgboost`
- `lightgbm`
- `lstm_mlp`
其中:
- 传统模型适合结构化特征解释与特征重要性分析
- `LSTM+MLP` 适合结合事件序列与静态特征进行预测
- 传统模型适合结构化特征建模、特征重要性排序和 `SHAP` 解释
- `lstm_mlp` 是接口名称,当前内部实现为“时序注意力融合网络”,采用 `Transformer` 时序编码 + 静态特征门控融合
- 深度学习模型使用 `8` 步时间窗口,结合 `15` 个序列特征和 `13` 个静态特征完成预测
## 数据与训练文件
## 数据与训练信息
常用路径如下:
- 原始数据集规模:`12000` 条缺勤事件
- 员工覆盖数:`2575`
- 企业覆盖数:`180`
- 数据字段总数:`73`
- 传统模型特征工程后总特征数:`89`
- 当前筛选后进入传统模型的核心特征数:`22`
- 当前训练元数据日期:`2026-04-03`
- 数据集文件:[china_enterprise_absence_events.csv](D:/VScodeProject/forsetsystem/backend/data/raw/china_enterprise_absence_events.csv)
- 配置文件:[config.py](D:/VScodeProject/forsetsystem/backend/config.py)
- 数据生成脚本:[generate_dataset.py](D:/VScodeProject/forsetsystem/backend/core/generate_dataset.py)
- 模型训练脚本:[train_model.py](D:/VScodeProject/forsetsystem/backend/core/train_model.py)
- 深度学习脚本:[deep_learning_model.py](D:/VScodeProject/forsetsystem/backend/core/deep_learning_model.py)
## 常用路径
- 数据集文件:[china_enterprise_absence_events.csv](D:/forsetsystem/backend/data/raw/china_enterprise_absence_events.csv)
- 配置文件:[config.py](D:/forsetsystem/backend/config.py)
- 数据生成脚本:[generate_dataset.py](D:/forsetsystem/backend/core/generate_dataset.py)
- 特征工程脚本:[model_features.py](D:/forsetsystem/backend/core/model_features.py)
- 深度学习脚本:[deep_learning_model.py](D:/forsetsystem/backend/core/deep_learning_model.py)
- `JD-R` 服务:[jdr_service.py](D:/forsetsystem/backend/services/jdr_service.py)
- `SHAP` 分析器:[shap_analysis.py](D:/forsetsystem/backend/core/shap_analysis.py)
## 接口概览
@@ -224,6 +254,7 @@ http://127.0.0.1:5173
- `GET /api/predict/model-info`
- `POST /api/predict/single`
- `POST /api/predict/compare`
- `POST /api/predict/risk-classify`
### 员工画像
@@ -231,12 +262,27 @@ http://127.0.0.1:5173
- `GET /api/cluster/profile`
- `GET /api/cluster/scatter`
### `JD-R` 理论分析
- `GET /api/jdr/dimensions`
- `GET /api/jdr/burnout-engagement`
- `GET /api/jdr/path-analysis`
- `GET /api/jdr/profile`
- `GET /api/jdr/risk-distribution`
### `SHAP` 可解释分析
- `GET /api/shap/global`
- `POST /api/shap/local`
- `GET /api/shap/interaction`
- `GET /api/shap/dependence`
## 文档目录
详细设计文档见:
- [docs/README.md](D:/VScodeProject/forsetsystem/docs/README.md)
- [09_环境配置与安装说明.md](D:/VScodeProject/forsetsystem/docs/09_环境配置与安装说明.md)
- [docs/README.md](D:/forsetsystem/docs/README.md)
- [09_环境配置与安装说明.md](D:/forsetsystem/docs/09_环境配置与安装说明.md)
## 常见问题
@@ -276,4 +322,4 @@ where python
- 作者:张硕
- 学校:河南农业大学软件学院
- 项目类型:本科毕业设计
- 完成时间2026 年 3
- 完成时间2026 年 4