# 基于多维特征挖掘的员工缺勤分析与预测系统 ## 项目简介 本系统基于 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 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/)