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