Files
forsetsystem/README.md

280 lines
6.0 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.
# 中国企业员工缺勤分析与预测系统
## 项目简介
本项目面向企业人力资源管理与运营分析场景,围绕员工缺勤事件构建了一个集数据分析、风险预测、群体画像与可视化展示于一体的毕业设计系统。系统支持缺勤趋势分析、影响因素挖掘、单次缺勤时长预测、多模型对比以及员工群体聚类展示。
后端采用 `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 月