fix(training): patch lightgbm sklearn compatibility

This commit is contained in:
2026-03-12 18:15:09 +08:00
parent d7c8019f96
commit d70bd54c41
16 changed files with 885 additions and 203 deletions

View File

@@ -5,7 +5,7 @@
系统采用前后端分离架构:
- 前端Vue 3 + Vue Router + Element Plus + ECharts
- 后端Flask + Pandas + Scikit-learn + Joblib
- 后端Flask + Pandas + Scikit-learn + PyTorch + Joblib
- 数据层CSV 数据文件 + 模型文件
整体架构分为四层:
@@ -53,6 +53,7 @@
- `preprocessing.py`:数据清洗与预处理
- `model_features.py`:特征构建与预测输入映射
- `train_model.py`:模型训练与评估
- `deep_learning_model.py`LSTM+MLP 深度学习训练与推理
- `feature_mining.py`:相关性分析与群体对比
- `clustering.py`K-Means 聚类分析
@@ -67,6 +68,12 @@
5. 训练多种模型并评估性能
6. 保存模型、特征信息和训练元数据
其中深度学习路径采用:
- `LSTM` 处理员工最近多次缺勤事件构成的时间窗口序列
- `MLP` 处理员工静态属性特征
- 融合层输出缺勤时长回归结果
### 4.2 预测流程
1. 前端输入核心预测字段
@@ -121,6 +128,12 @@ frontend/
- 适合传统机器学习建模
- 提供随机森林、GBDT、Extra Trees 等成熟算法
### 6.4 PyTorch
- 用于实现 LSTM+MLP 深度学习模型
- 支持将时序特征与静态特征进行融合建模
- 便于在论文中增加深度学习对比实验内容
## 7. 部署方式
- 本地前端开发服务器Vite
@@ -133,3 +146,4 @@ frontend/
- 前后端职责明确
- 支持快速展示图表与预测效果
- 支持后续扩展为数据库或更复杂模型架构
- 同时支持传统机器学习模型与深度学习模型的实验对比

View File

@@ -136,13 +136,18 @@
- URL`/api/predict/models`
- 方法:`GET`
- 说明:返回可用模型及其性能指标
- 说明:返回可用模型及其性能指标,包含传统模型与 `LSTM+MLP` 深度学习模型
### 4.4 获取模型信息
- URL`/api/predict/model-info`
- 方法:`GET`
- 说明:返回训练样本量、特征数量训练日期
- 说明:返回训练样本量、特征数量训练日期以及深度学习窗口信息
新增返回字段示例:
- `sequence_window_size`
- `deep_learning_available`
## 5. 员工画像接口

View File

@@ -74,6 +74,10 @@
- 星期几
- 是否节假日前后
- 季节
- 事件日期
- 事件日期索引
- 事件序号
- 员工历史事件数
- 请假申请渠道
- 请假类型
- 请假原因大类
@@ -129,6 +133,23 @@
- 慢性病史和健康异常会提升缺勤时长
- 年假和调休通常对应较短缺勤时长
### 6.3 时序样本构造
为支持 LSTM+MLP 深度学习模型,数据集在事件层面额外补充了时序字段:
- `事件日期`:缺勤事件发生日期
- `事件日期索引`:便于排序和窗口切片的数值型时间索引
- `事件序号`:同一员工内部的事件顺序
- `员工历史事件数`:该员工在数据集中对应的事件总数
深度学习样本构造规则如下:
- 以员工为单位按 `事件日期索引``事件序号` 排序
- 取最近 `5` 次缺勤事件作为时间窗口输入
- 序列不足时使用前向零填充
- 当前事件作为窗口最后一个时间步
- 静态特征单独输入 MLP 分支,与 LSTM 输出融合后进行回归预测
## 7. 数据质量要求
- 无大量缺失值

View File

@@ -4,7 +4,7 @@
随着企业管理数字化水平的提升,员工缺勤行为分析逐渐成为人力资源管理中的重要研究内容。针对传统缺勤管理方式依赖人工统计、分析效率较低、风险预警能力不足等问题,本文设计并实现了一套基于中国企业员工缺勤事件分析与预测系统。系统围绕缺勤事件数据,构建了数据概览、影响因素分析、缺勤风险预测和员工群体画像四个核心模块,实现了缺勤时长统计分析、关键因素挖掘、多模型预测与聚类画像展示等功能。
在系统实现过程中,后端采用 Flask 框架构建接口服务,结合 PandasScikit-learn 完成数据处理、特征工程、模型训练与预测;前端采用 Vue 3、Element Plus 与 ECharts 实现交互式可视化界面。针对毕业设计场景,系统构建了一套符合中国企业特征的员工缺勤事件数据集,并设计了请假类型、医院证明、加班通勤压力、健康风险等关键影响因素。实验结果表明,系统能够较好地完成缺勤时长预测任务,并通过可视化方式直观展现缺勤趋势、影响因素和员工群体特征。
在系统实现过程中,后端采用 Flask 框架构建接口服务,结合 PandasScikit-learn 与 PyTorch 完成数据处理、特征工程、模型训练与预测;前端采用 Vue 3、Element Plus 与 ECharts 实现交互式可视化界面。针对毕业设计场景,系统构建了一套符合中国企业特征的员工缺勤事件数据集,并设计了请假类型、医院证明、加班通勤压力、健康风险等关键影响因素。同时,为增强论文的算法研究内容,系统引入了 LSTM+MLP 深度学习模型,将员工历史缺勤事件序列与静态属性特征进行融合建模。实验结果表明,系统能够较好地完成缺勤时长预测任务,并通过可视化方式直观展现缺勤趋势、影响因素和员工群体特征。
本文的研究工作对企业缺勤行为分析与管理辅助决策具有一定参考价值,同时也为后续扩展员工行为分析、离职预警和绩效管理等方向提供了基础。
@@ -14,6 +14,7 @@
- 风险预测
- 特征挖掘
- 机器学习
- 深度学习
- 可视化系统
- Vue
- Flask

View File

@@ -19,7 +19,8 @@
- 2.2 Vue 3 前端框架
- 2.3 ECharts 可视化技术
- 2.4 机器学习相关算法
- 2.5 K-Means 聚类方
- 2.5 深度学习相关算
- 2.6 K-Means 聚类方法
### 第3章 系统需求分析
@@ -41,15 +42,16 @@
- 5.1 数据概览模块实现
- 5.2 影响因素分析模块实现
- 5.3 缺勤预测模块实现
- 5.4 员工画像模块实现
- 5.5 前端界面实现
- 5.4 LSTM+MLP 深度学习模型实现
- 5.5 员工画像模块实现
- 5.6 前端界面实现
### 第6章 系统测试与结果分析
- 6.1 测试环境
- 6.2 功能测试
- 6.3 接口测试
- 6.4 模型效果分析
- 6.4 传统模型与深度学习模型对比
- 6.5 系统展示效果分析
### 第7章 总结与展望

View File

@@ -27,6 +27,8 @@
- Vue 3 的组件化优势
- Element Plus 和 ECharts 的可视化能力
- 随机森林、GBDT、Extra Trees 的基本原理
- LSTM 与 MLP 的基本原理
- 时序序列建模与多输入融合思想
- K-Means 聚类思想
## 第3章 系统需求分析
@@ -71,6 +73,7 @@
- 数据生成与预处理实现
- 特征工程实现
- 模型训练与保存实现
- LSTM+MLP 深度学习训练流程
- 后端接口实现
- 前端页面实现
- 预测页卡片布局与交互实现
@@ -89,6 +92,7 @@
- 预测功能测试
- 聚类与分析结果测试
- 模型性能指标分析
- 传统模型与深度学习模型对比分析
## 第7章 总结与展望

View File

@@ -45,6 +45,7 @@
- 前后端分离结构清晰
- 采用多模型训练与比较
- 引入 LSTM+MLP 深度学习模型,支持时序行为建模
- 融合特征工程与聚类分析
- 前端页面采用卡片式可视化布局,适合展示

View File

@@ -0,0 +1,193 @@
# 环境配置与安装说明
## 1. 推荐环境
为保证传统机器学习模型和 `LSTM+MLP` 深度学习模型均可正常训练,推荐使用 **conda 虚拟环境** 管理本项目依赖。
推荐环境:
- 操作系统Windows 10 / Windows 11
- Python3.11
- CondaAnaconda 或 Miniconda
- Node.js16+
- pnpm8+
- CUDA建议与 PyTorch GPU 轮子版本匹配
## 2. 创建 conda 虚拟环境
```powershell
conda create -n forsetenv python=3.11 -y
conda activate forsetenv
```
说明:
- 后续所有 Python 依赖安装、数据生成、模型训练和后端启动,均建议在 `forsetenv` 环境中进行。
## 3. 推荐安装顺序
推荐严格按下面顺序执行:
1. 创建并激活 `conda` 虚拟环境
2. 单独安装 `PyTorch GPU`
3. 安装其余后端依赖
4. 安装前端依赖
说明:
- `backend/requirements.txt` 中包含 `torch==2.6.0`
- 如果在 Windows 下先直接执行 `pip install -r backend/requirements.txt`,可能安装成非预期构建
- 因此深度学习环境建议先执行官方 `cu124` 安装命令,再补齐其余依赖
## 4. 安装 PyTorch GPU 版
本项目的 hybrid 深度学习模型要求:
- `torch >= 2.6`
推荐安装方式:
- 使用 **pip 官方 cu124 轮子**
- 避免在 Windows 上由 conda 自动解析成 `cpu_mkl` 构建
安装命令如下:
```powershell
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124
```
## 5. 安装其余后端依赖
如果你已经按上一步安装了 GPU 版 `torch`,推荐补装其余后端依赖:
```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 版 `torch` 安装后执行:
```powershell
pip install -r backend/requirements.txt
```
这一步通常不会影响已经安装好的 `cu124` 版本;如有覆盖风险,可在执行后再次运行上一节的 GPU 安装命令。
## 6. 安装前端依赖
```powershell
cd frontend
pnpm install
```
## 7. 一键执行示例
下面是一套推荐的 `conda` 环境安装流程:
```powershell
conda create -n forsetenv python=3.11 -y
conda activate forsetenv
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124
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
cd frontend
pnpm install
```
## 8. 验证安装
### 8.1 验证基础依赖
```powershell
python -c "import pandas,numpy,sklearn,flask;print('base ok')"
```
### 8.2 验证传统模型依赖
```powershell
python -c "import xgboost,lightgbm;print('ml ok')"
```
### 8.3 验证 PyTorch GPU
```powershell
python -c "import torch;print(torch.__version__);print(torch.cuda.is_available())"
```
如果输出为 `True`,说明 GPU 版本 PyTorch 可正常使用。
## 9. 项目启动顺序
### 9.1 生成数据集
```powershell
cd backend
python core/generate_dataset.py
```
### 9.2 训练模型
```powershell
python core/train_model.py
```
### 9.3 启动后端
```powershell
python app.py
```
### 9.4 启动前端
```powershell
cd ..\frontend
pnpm dev
```
## 10. 常见问题
### 10.1 PyTorch 被安装成 CPU 版
原因:
- 使用了默认 `pip install torch`
- 或使用 conda 在 Windows 上自动解析成 CPU 构建
建议:
- 直接使用本文提供的官方 `cu124` 安装命令
### 10.2 训练过程中无法加载深度学习模型
检查项:
- 当前是否处于 `forsetenv` conda 环境
- `torch` 是否成功安装
- `torch.cuda.is_available()` 是否为 `True`
### 10.3 xgboost / lightgbm 缺失
可执行:
```powershell
pip install xgboost==1.7.6 lightgbm==4.1.0
```
### 10.4 如何确认当前使用的是 conda 环境
可执行:
```powershell
conda info --envs
where python
```
如果当前环境为 `forsetenv`,且 `python` 指向对应环境目录,说明切换成功。
## 11. 建议
- 毕设演示或论文实验时,统一使用 `conda activate forsetenv`
- 深度学习模型训练时优先使用 GPU 环境
- 若仅进行页面展示,可先训练传统模型,再补充深度学习实验结果

View File

@@ -17,8 +17,14 @@
- [07_毕业论文写作提纲.md](D:/VScodeProject/forsetsystem/docs/07_毕业论文写作提纲.md)
- [08_答辩汇报提纲.md](D:/VScodeProject/forsetsystem/docs/08_答辩汇报提纲.md)
## 环境配置文档
- [09_环境配置与安装说明.md](D:/VScodeProject/forsetsystem/docs/09_环境配置与安装说明.md)
## 说明
- 系统文档以当前项目实现为准,围绕中国企业员工缺勤分析、风险预测与群体画像展开。
- 论文文档采用本科毕业设计常用结构,便于后续继续扩写为正式论文。
- 若后续系统功能或字段发生变化,应同步更新本目录下相关文档。
- 深度学习部分推荐使用 `conda` 虚拟环境配合 `pip` 安装 PyTorch GPU 版。
- 推荐安装顺序为:创建 `conda` 环境、安装官方 `cu124` 的 PyTorch、再补充其余后端依赖。