基于多维特征挖掘的员工缺勤分析与预测系统

项目简介

本系统基于 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. 克隆项目

git clone <repository-url>
cd forsetsystem

2. 后端环境配置

创建 Conda 环境

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

安装机器学习库(使用 conda-forge

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 框架

pip install Flask==2.3.3 Flask-CORS==4.0.0 python-dotenv==1.0.0

验证安装

python -c "import pandas,numpy,sklearn,xgboost,lightgbm,flask;print('All libraries installed successfully')"

训练模型

cd backend
python core/train_model.py

3. 前端环境配置

cd frontend
pnpm install

运行说明

启动后端服务

conda activate forsetenv
cd backend
python app.py

后端服务运行在 http://localhost:5000

启动前端服务

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
  • 实现数据增量更新机制
  • 增加数据质量检测与清洗功能

参考资料

Description
No description provided
Readme 822 KiB
Languages
Python 71.3%
Vue 24.8%
CSS 2.4%
JavaScript 1.3%
HTML 0.2%