feat: 初始化员工缺勤分析系统项目
搭建完整的前后端分离架构,实现数据概览、预测分析、聚类分析等核心功能模块 详细版: feat: 初始化员工缺勤分析系统项目 - 后端:基于 Flask 搭建 RESTful API,包含数据概览、特征分析、预测模型、聚类分析四大模块 - 前端:基于 Vue.js 构建单页应用,实现 Dashboard、预测、聚类、因子分析等页面 - 模型:集成随机森林、XGBoost、LightGBM、Stacking 等多种机器学习模型 - 文档:完成需求规格说明、系统架构设计、接口设计、数据设计、UI原型设计等文档
This commit is contained in:
83
docs/0.md
Normal file
83
docs/0.md
Normal file
@@ -0,0 +1,83 @@
|
||||
既然你的题目是**《基于多维特征挖掘的员工缺勤影响因素分析与预测研究》**,你的前端就不应该是一个“考勤录入系统”(比如点击“打卡”按钮),而应该是一个**“数据分析与可视化大屏”**。
|
||||
你的前端核心任务是:**把算法跑出来的结果,用图表漂亮地展示出来,并提供一个交互式的“预测窗口”。**
|
||||
以下是为你规划的**前端功能模块(4-5个页面)**,每个页面都直接对应你的题目和算法:
|
||||
---
|
||||
### 页面一:数据概览与全局统计
|
||||
**目的:** 让人一眼看懂数据集的整体情况。
|
||||
* **关键指标卡片(KPI):**
|
||||
* 总样本数(例如:740)
|
||||
* 平均缺勤时长
|
||||
* 高风险员工占比
|
||||
* 最常见的缺勤原因(例如:牙科咨询)
|
||||
* **可视化图表:**
|
||||
* **缺勤原因分布饼图:** 展示各种 ICD 疾病代码(或医疗咨询、献血等)的比例。
|
||||
* **每月缺勤趋势折线图:** 横轴是1-12月,纵轴是缺勤总时长,看看哪个月大家最爱请假(是不是夏天?)。
|
||||
* **星期几缺勤热力图:** 周一到周五,哪天颜色最深(缺勤最多)。
|
||||
---
|
||||
### 页面二:影响因素分析 —— **对应题目的“影响因素分析”**
|
||||
**目的:** 展示你的核心算法成果(特征重要性、相关性),回答“为什么缺勤”。
|
||||
* **核心图表 1:特征重要性排序条形图**
|
||||
* **内容:** 横轴是特征(距离、BMI、饮酒、工龄...),纵轴是重要性得分。
|
||||
* **设计:** 降序排列,最高的那个(比如 Reason for absence 或 Service time)在最上面或最左边。
|
||||
* **交互:** 鼠标悬停显示具体分数。
|
||||
* **核心图表 2:相关性热力图**
|
||||
* **内容:** 展示各个字段之间的相关系数矩阵。
|
||||
* **亮点:** 高亮显示“饮酒”与“缺勤时长”的交点,或者“通勤距离”与“缺勤时长”的交点,颜色越深代表关联越强。
|
||||
* **群体对比分析:**
|
||||
* **柱状图:** 饮酒者 vs 不饮酒者的平均缺勤时长对比。
|
||||
* **柱状图:** 高学历 vs 低学历的缺勤时长对比。
|
||||
---
|
||||
### 页面三:缺勤预测模型 —— **对应题目的“预测研究”**
|
||||
**目的:** 提供一个交互窗口,演示你的 XGBoost/随机森林模型是如何工作的。
|
||||
* **左侧:参数输入表单**
|
||||
* 设计一个表单,列出数据集中的关键字段(供用户填写):
|
||||
* *ID*:随意填(如 36)
|
||||
* *Reason for absence*:下拉菜单(1-28 或 归类后的“疾病/个人事务”)
|
||||
* *Month*:下拉菜单(1-12)
|
||||
* *Day of week*:下拉菜单(周一-周五)
|
||||
* *Transportation expense*:滑动条或输入框(例如:200)
|
||||
* *Distance from Residence to Work*:输入框(例如:15)
|
||||
* *Service time*:输入框(例如:10年)
|
||||
* *Age*:输入框(例如:35)
|
||||
* *Work load Average/day*:输入框(例如:250000)
|
||||
* *Hit target*:输入框(例如:90%)
|
||||
* *Disciplinary failure*:单选框(是/否)
|
||||
* *Education*:下拉菜单(高中/本科/硕士...)
|
||||
* *Son*:数字输入(0, 1, 2...)
|
||||
* *Social drinker*:单选框(是/否)
|
||||
* *Social smoker*:单选框(是/否)
|
||||
* *Pet*:数字输入
|
||||
* *Body mass index*:输入框(例如:25)
|
||||
* **底部按钮:** **“开始预测”**
|
||||
* **右侧:预测结果展示**
|
||||
* **结果数字:** 预测的缺勤时长(例如:预测结果 8 小时)。
|
||||
* **风险等级:**
|
||||
* < 4小时:绿色标签(低风险)
|
||||
* 4-8小时:黄色标签(中风险)
|
||||
* > 8小时:红色标签(高风险,警钟图标)
|
||||
* **模型可信度:** 显示当前模型的准确率(例如:85% Accuracy)。
|
||||
---
|
||||
### 页面四:员工画像与聚类 —— **对应“多维特征挖掘”的进阶**
|
||||
**目的:** 展示 K-Means 聚类算法挖掘出的群体特征。
|
||||
* **雷达图:**
|
||||
* 画 3-4 个多边形,代表 3-4 类员工(如:模范型、压力型、生活习惯型)。
|
||||
* 轴向维度:[年龄, 工龄, 负荷, BMI, 缺勤倾向]。
|
||||
* 让人一眼看出不同群体的差异(例如:压力型的“负荷”轴特别长)。
|
||||
* **散点图:**
|
||||
* 横轴:年龄,纵轴:缺勤时长。点按聚类结果着色(红点、蓝点、绿点)。
|
||||
---
|
||||
### 推荐技术栈(实现难度低,效果好)
|
||||
为了在短时间内做出漂亮的图表,推荐以下组合:
|
||||
1. **前端框架:** **Vue.js** (Vue 3) 或 **React**。推荐 Vue,国内毕设用得极多,文档好查。
|
||||
2. **UI 组件库:** **Element Plus** (配合 Vue) 或 **Ant Design**。
|
||||
* 这里面的表单组件、卡片、按钮可以直接拖过来用,不用自己写 CSS。
|
||||
3. **图表库:** **ECharts** (百度开源的)。
|
||||
* **必杀技:** 它的柱状图、饼图、雷达图、热力图效果非常炫酷,支持动画,非常适合答辩演示。
|
||||
4. **后端接口:** Python **Flask** 或 **FastAPI**。
|
||||
* 写几个简单的 API 接口(`/api/predict`, `/api/feature_importance`),前端调这些接口拿数据。
|
||||
### 答辩时的演示脚本
|
||||
1. **打开页面一:** “大家请看,这是 700 多条数据的概览,我们发现周五的缺勤率最高...”
|
||||
2. **打开页面二:** “通过随机森林算法,我们计算了各因素的影响权重,发现‘通勤距离’和‘工作负荷’是导致缺勤的两大主因...”
|
||||
3. **打开页面三:** “为了验证模型实用性,我构建了这个预测模块。假设我们有一个 35 岁、住得很远、爱喝酒的员工,系统预测他可能会缺勤 8 小时,属于高风险...”
|
||||
4. **打开页面四:** “最后通过聚类分析,我们将员工分为了三类,红色群体是‘高压高负荷’群体,建议HR重点关注...”
|
||||
这样一套下来,你的前端不仅漂亮,而且逻辑紧扣题目,绝对是加分项!
|
||||
Reference in New Issue
Block a user