Files
forsetsystem/README.md
shenjianZ a39d8b2fd2 feat: 初始化员工缺勤分析系统项目
搭建完整的前后端分离架构,实现数据概览、预测分析、聚类分析等核心功能模块

  详细版:
  feat: 初始化员工缺勤分析系统项目

  - 后端:基于 Flask 搭建 RESTful API,包含数据概览、特征分析、预测模型、聚类分析四大模块
  - 前端:基于 Vue.js 构建单页应用,实现 Dashboard、预测、聚类、因子分析等页面
  - 模型:集成随机森林、XGBoost、LightGBM、Stacking 等多种机器学习模型
  - 文档:完成需求规格说明、系统架构设计、接口设计、数据设计、UI原型设计等文档
2026-03-08 14:48:26 +08:00

254 lines
6.7 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.
# 基于多维特征挖掘的员工缺勤分析与预测系统
## 项目简介
本系统基于 UCI Absenteeism 数据集,利用机器学习算法对员工考勤数据进行深度分析,挖掘影响缺勤的多维度特征,构建缺勤预测模型,为企业人力资源管理提供科学、客观的决策支持。
## 功能特性
### F01 数据概览与全局统计
- 基础统计指标展示(样本总数、员工总数、缺勤总时长等)
- 月度缺勤趋势分析
- 星期分布分析
- 缺勤原因分布分析
- 季节分布分析
### F02 多维特征挖掘与影响因素分析
- 特征重要性排序(基于随机森林)
- 相关性热力图分析
- 群体对比分析(饮酒/吸烟/学历/子女等维度)
### F03 员工缺勤风险预测
- 单次缺勤预测
- 风险等级评估(低/中/高)
- 模型性能展示R²、MSE、RMSE、MAE
### F04 员工画像与群体聚类
- K-Means 聚类结果展示
- 员工群体雷达图
- 聚类散点图可视化
## 技术栈
### 后端
- Python 3.11
- Flask 2.3.3
- scikit-learn 1.3.0
- XGBoost 1.7.6
- LightGBM 4.1.0
- pandas 2.0.3
- numpy 1.24.3
### 前端
- Vue 3.4
- Element Plus 2.4
- ECharts 5.4
- Axios 1.6
- Vue Router 4.2
- Vite 5.0
## 环境要求
| 项目 | 要求 |
|------|------|
| 操作系统 | Windows 10/11、Linux、macOS |
| Python | 3.11 |
| Node.js | 16.0+ |
| Conda | Anaconda 或 Miniconda |
| pnpm | 8.0+ |
## 安装部署
### 1. 克隆项目
```bash
git clone <repository-url>
cd forsetsystem
```
### 2. 后端环境配置
#### 创建 Conda 环境
```powershell
conda create -n forsetenv python=3.11 -y
conda activate forsetenv
```
#### 安装机器学习库(使用 conda-forge
```powershell
conda install -c conda-forge pandas=2.0.3 numpy=1.24.3 scikit-learn=1.3.0 xgboost=1.7.6 lightgbm=4.1.0 joblib=1.3.1 -y
```
#### 安装 Web 框架
```powershell
pip install Flask==2.3.3 Flask-CORS==4.0.0 python-dotenv==1.0.0
```
#### 验证安装
```powershell
python -c "import pandas,numpy,sklearn,xgboost,lightgbm,flask;print('All libraries installed successfully')"
```
#### 训练模型
```powershell
cd backend
python core/train_model.py
```
### 3. 前端环境配置
```bash
cd frontend
pnpm install
```
## 运行说明
### 启动后端服务
```powershell
conda activate forsetenv
cd backend
python app.py
```
后端服务运行在 http://localhost:5000
### 启动前端服务
```bash
cd frontend
pnpm dev
```
前端服务运行在 http://localhost:5173
### 访问系统
打开浏览器访问 http://localhost:5173
## 项目结构
```
forsetsystem/
├── backend/ # 后端项目
│ ├── api/ # API 接口层
│ │ ├── overview_routes.py # 数据概览接口
│ │ ├── analysis_routes.py # 影响因素分析接口
│ │ ├── predict_routes.py # 预测接口
│ │ └── cluster_routes.py # 聚类接口
│ ├── services/ # 业务逻辑层
│ ├── core/ # 核心算法层
│ │ ├── preprocessing.py # 数据预处理
│ │ ├── feature_mining.py # 特征挖掘
│ │ ├── train_model.py # 模型训练
│ │ └── clustering.py # 聚类分析
│ ├── data/ # 数据存储
│ ├── models/ # 模型存储
│ ├── utils/ # 工具函数
│ ├── app.py # 应用入口
│ ├── config.py # 配置文件
│ └── requirements.txt # 依赖清单
├── frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API 调用
│ │ ├── views/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ ├── App.vue # 根组件
│ │ └── main.js # 入口文件
│ ├── index.html
│ ├── package.json
│ └── vite.config.js
├── data/ # 原始数据
│ └── Absenteeism_at_work.csv
├── docs/ # 项目文档
│ ├── 00_需求规格说明书.md
│ ├── 01_系统架构设计.md
│ ├── 02_接口设计文档.md
│ ├── 03_数据设计文档.md
│ └── 04_UI原型设计.md
└── README.md
```
## API 接口
### 数据概览模块
| 接口 | 方法 | 说明 |
|------|------|------|
| /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/single | POST | 单次预测 |
| /api/predict/model-info | GET | 模型信息 |
### 聚类模块
| 接口 | 方法 | 说明 |
|------|------|------|
| /api/cluster/result | GET | 聚类结果 |
| /api/cluster/profile | GET | 群体画像 |
| /api/cluster/scatter | GET | 散点数据 |
## 作者信息
- **作者**:张硕
- **学校**:河南农业大学软件学院
- **项目类型**:本科毕业设计
- **完成时间**2026年3月
## 后续改进计划
### 模型优化
- [ ] 引入深度学习模型(如 LSTM处理时序特征
- [ ] 增加模型解释性分析SHAP 值可视化)
- [ ] 实现模型自动调参Optuna/Hyperopt
- [ ] 支持多模型集成预测
### 功能扩展
- [ ] 增加用户认证与权限管理
- [ ] 支持自定义数据集上传与分析
- [ ] 增加数据导出功能Excel/PDF 报告)
- [ ] 实现预测结果的批量导出
- [ ] 增加数据可视化大屏展示
### 技术改进
- [ ] 后端迁移至 FastAPI 提升性能
- [ ] 引入 Redis 缓存常用查询结果
- [ ] 使用 Docker 容器化部署
- [ ] 增加 CI/CD 自动化测试与部署
- [ ] 前端状态管理迁移至 Pinia
### 数据层面
- [ ] 支持数据库存储MySQL/PostgreSQL
- [ ] 实现数据增量更新机制
- [ ] 增加数据质量检测与清洗功能
## 参考资料
- [UCI Machine Learning Repository - Absenteeism at work Data Set](https://archive.ics.uci.edu/ml/datasets/Absenteeism+at+work)
- [Flask 官方文档](https://flask.palletsprojects.com/)
- [Vue 3 官方文档](https://vuejs.org/)
- [Element Plus 组件库](https://element-plus.org/)
- [ECharts 图表库](https://echarts.apache.org/)