# 中国企业员工缺勤分析与预测系统

## 项目简介

本项目面向企业人力资源管理与运营分析场景，围绕员工缺勤事件构建了一个集数据分析、风险预测、群体画像与可视化展示于一体的毕业设计系统。系统支持缺勤趋势分析、影响因素挖掘、单次缺勤时长预测、多模型对比以及员工群体聚类展示。

后端采用 `Flask + scikit-learn + PyTorch`，前端采用 `Vue 3 + Element Plus + ECharts`。当前版本同时支持传统机器学习模型和 `LSTM+MLP` 深度学习模型。

## 功能模块

### 1. 数据概览

- 基础统计指标展示
- 月度缺勤趋势分析
- 星期分布分析
- 请假类型与原因分布分析
- 季节分布分析

### 2. 影响因素分析

- 特征重要性排序
- 相关性热力图
- 多维群体对比分析

### 3. 缺勤预测

- 单次缺勤时长预测
- 风险等级评估
- 多模型结果对比
- 传统模型与深度学习模型切换

### 4. 员工画像

- 聚类结果展示
- 群体画像分析
- 群体散点图可视化

## 技术栈

### 后端

- Python 3.11
- Flask 2.3.3
- Flask-CORS 4.0.0
- pandas 2.0.3
- numpy 1.24.3
- scikit-learn 1.3.0
- xgboost 1.7.6
- lightgbm 4.1.0
- PyTorch 2.6.0

### 前端

- Vue 3
- Vite
- Element Plus
- ECharts
- Axios
- Vue Router

## 项目结构

```text
forsetsystem/
├── backend/
│   ├── api/                      # 接口层
│   ├── core/                     # 数据生成、特征工程、训练、聚类、深度学习
│   ├── services/                 # 业务服务层
│   ├── data/
│   │   └── raw/
│   │       └── china_enterprise_absence_events.csv
│   ├── models/                   # 模型文件与训练工件
│   ├── app.py                    # 后端入口
│   ├── config.py                 # 项目配置
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── api/
│   │   ├── router/
│   │   ├── styles/
│   │   ├── views/
│   │   ├── App.vue
│   │   └── main.js
│   ├── package.json
│   └── vite.config.js
├── docs/                         # 系统文档、论文文档与安装说明
└── README.md
```

## 环境要求

| 项目 | 要求 |
|------|------|
| 操作系统 | Windows 10 / Windows 11 |
| Python | 3.11 |
| Conda | Anaconda 或 Miniconda |
| Node.js | 16+ |
| pnpm | 8+ |
| CUDA | 建议与 PyTorch `cu124` 轮子匹配 |

## 安装部署

推荐使用 `conda` 虚拟环境，并优先安装官方 GPU 版 `PyTorch`。

### 1. 创建并激活 conda 环境

```powershell
conda create -n forsetenv python=3.11 -y
conda activate forsetenv
```

### 2. 安装 PyTorch GPU 版

```powershell
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124
```

### 3. 安装其余后端依赖

```powershell
pip install Flask==2.3.3 Flask-CORS==4.0.0 python-dotenv==1.0.0
pip install pandas==2.0.3 numpy==1.24.3 scikit-learn==1.3.0 joblib==1.3.1
pip install xgboost==1.7.6 lightgbm==4.1.0
```

如需直接使用依赖文件，可在安装 GPU 版 `PyTorch` 后执行：

```powershell
pip install -r backend/requirements.txt
```

### 4. 安装前端依赖

```powershell
cd frontend
pnpm install
```

## 启动方式

### 1. 生成数据集

```powershell
cd backend
python core/generate_dataset.py
```

### 2. 训练模型

```powershell
python core/train_model.py
```

### 3. 启动后端

```powershell
python app.py
```

后端默认地址：

```text
http://127.0.0.1:5000
```

### 4. 启动前端

```powershell
cd ..\frontend
pnpm dev
```

前端默认地址：

```text
http://127.0.0.1:5173
```

## 模型说明

当前系统支持以下模型类型：

- `random_forest`
- `gradient_boosting`
- `extra_trees`
- `xgboost`
- `lightgbm`
- `lstm_mlp`

其中：

- 传统模型适合结构化特征解释与特征重要性分析
- `LSTM+MLP` 适合结合事件序列与静态特征进行预测

## 数据与训练文件

常用路径如下：

- 数据集文件：[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)

## 接口概览

### 数据概览

- `GET /api/overview/stats`
- `GET /api/overview/trend`
- `GET /api/overview/weekday`
- `GET /api/overview/reasons`
- `GET /api/overview/seasons`

### 影响因素分析

- `GET /api/analysis/importance`
- `GET /api/analysis/correlation`
- `GET /api/analysis/compare`

### 缺勤预测

- `GET /api/predict/models`
- `GET /api/predict/model-info`
- `POST /api/predict/single`
- `POST /api/predict/compare`

### 员工画像

- `GET /api/cluster/result`
- `GET /api/cluster/profile`
- `GET /api/cluster/scatter`

## 文档目录

详细设计文档见：

- [docs/README.md](D:/VScodeProject/forsetsystem/docs/README.md)
- [09_环境配置与安装说明.md](D:/VScodeProject/forsetsystem/docs/09_环境配置与安装说明.md)

## 常见问题

### 1. `flask_cors` 缺失

执行：

```powershell
pip install Flask-CORS
```

### 2. `xgboost` 或 `lightgbm` 缺失

执行：

```powershell
pip install xgboost==1.7.6 lightgbm==4.1.0
```

### 3. PyTorch 被安装成 CPU 版

请重新执行官方 GPU 安装命令：

```powershell
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124
```

### 4. 如何确认当前使用的是 conda 环境

```powershell
conda info --envs
where python
```

## 项目信息

- 作者：张硕
- 学校：河南农业大学软件学院
- 项目类型：本科毕业设计
- 完成时间：2026 年 3 月
