feat: update clustering implementation and docs
This commit is contained in:
@@ -6,13 +6,13 @@
|
||||
|
||||
- 前端:Vue 3 + Vue Router + Element Plus + ECharts
|
||||
- 后端:Flask + Pandas + Scikit-learn + PyTorch + Joblib
|
||||
- 数据层:CSV 数据文件 + 模型文件
|
||||
- 数据层:CSV 数据文件 + 模型文件 + 训练元数据
|
||||
|
||||
整体架构分为四层:
|
||||
|
||||
1. 表现层:负责页面展示、表单交互和图表可视化
|
||||
2. 接口层:负责 HTTP 路由转发与请求响应
|
||||
3. 业务层:负责数据统计、特征分析、预测和聚类逻辑
|
||||
3. 业务层:负责数据统计、特征分析、`JD-R` 解释、预测和聚类逻辑
|
||||
4. 数据与模型层:负责原始数据、清洗数据、模型文件和训练元数据
|
||||
|
||||
## 2. 前端架构设计
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
- `Dashboard.vue`:数据概览页
|
||||
- `FactorAnalysis.vue`:影响因素分析页
|
||||
- `JDRAnalysis.vue`:`JD-R` 理论分析页
|
||||
- `Prediction.vue`:缺勤预测页
|
||||
- `Clustering.vue`:员工画像页
|
||||
|
||||
@@ -30,6 +31,7 @@
|
||||
- 图表渲染
|
||||
- 表单输入与结果展示
|
||||
- 接口调用与状态管理
|
||||
- 将 `JD-R` 理论指标、路径关系与 `SHAP` 结果可视化
|
||||
|
||||
## 3. 后端架构设计
|
||||
|
||||
@@ -39,56 +41,64 @@
|
||||
- `analysis_routes.py`
|
||||
- `predict_routes.py`
|
||||
- `cluster_routes.py`
|
||||
- `jdr_routes.py`
|
||||
- `shap_routes.py`
|
||||
|
||||
### 3.2 服务层
|
||||
|
||||
- `data_service.py`:负责概览统计
|
||||
- `analysis_service.py`:负责特征重要性与群体对比
|
||||
- `predict_service.py`:负责模型加载与预测输出
|
||||
- `predict_service.py`:负责模型加载、预测输出与风险分类
|
||||
- `cluster_service.py`:负责聚类结果组织
|
||||
- `jdr_service.py`:负责 `JD-R` 理论指标、路径和画像分析
|
||||
- `shap_service.py`:负责全局/局部可解释分析结果封装
|
||||
|
||||
### 3.3 核心算法层
|
||||
|
||||
- `generate_dataset.py`:生成企业缺勤事件数据集
|
||||
- `generate_dataset.py`:生成中国企业缺勤事件数据集并补充 `JD-R` 基础维度
|
||||
- `preprocessing.py`:数据清洗与预处理
|
||||
- `model_features.py`:特征构建与预测输入映射
|
||||
- `train_model.py`:模型训练与评估
|
||||
- `deep_learning_model.py`:LSTM+MLP 深度学习训练与推理
|
||||
- `model_features.py`:特征构建、`JD-R` 复合指标计算与预测输入映射
|
||||
- `train_model.py`:传统模型训练与评估
|
||||
- `deep_learning_model.py`:时序注意力融合深度学习模型训练与推理
|
||||
- `feature_mining.py`:相关性分析与群体对比
|
||||
- `clustering.py`:K-Means 聚类分析
|
||||
- `clustering.py`:`K-Means` 聚类分析
|
||||
- `shap_analysis.py`:基于 `SHAP` 的全局、局部与交互解释分析
|
||||
|
||||
## 4. 数据流设计
|
||||
|
||||
### 4.1 训练流程
|
||||
|
||||
1. 生成企业缺勤事件数据集
|
||||
1. 生成中国企业缺勤事件数据集
|
||||
2. 加载并清洗数据
|
||||
3. 构建衍生特征
|
||||
4. 进行标签编码和特征筛选
|
||||
5. 训练多种模型并评估性能
|
||||
3. 补充 `JD-R` 理论基础维度
|
||||
4. 构建衍生特征与 `JD-R` 复合指标
|
||||
5. 进行编码、特征筛选与模型训练
|
||||
6. 保存模型、特征信息和训练元数据
|
||||
|
||||
其中深度学习路径采用:
|
||||
|
||||
- `LSTM` 处理员工最近多次缺勤事件构成的时间窗口序列
|
||||
- `MLP` 处理员工静态属性特征
|
||||
- 融合层输出缺勤时长回归结果
|
||||
- `8` 步时间窗口组织员工缺勤事件序列
|
||||
- 时序分支编码 `15` 个事件/上下文特征
|
||||
- 静态分支编码 `13` 个员工稳定属性特征
|
||||
- `Transformer` 编码 + 门控融合输出缺勤时长回归结果
|
||||
|
||||
### 4.2 预测流程
|
||||
|
||||
1. 前端输入核心预测字段
|
||||
2. 后端构建完整预测样本
|
||||
3. 自动补齐默认字段
|
||||
4. 执行特征工程和编码
|
||||
4. 执行特征工程、`JD-R` 指标构建和编码
|
||||
5. 加载模型进行预测
|
||||
6. 返回缺勤时长、风险等级、模型名称和置信度
|
||||
6. 返回缺勤时长、风险等级、风险概率、模型名称和置信度
|
||||
7. 调用 `SHAP` 生成局部解释结果
|
||||
|
||||
### 4.3 分析流程
|
||||
|
||||
1. 读取清洗后的数据
|
||||
2. 计算统计指标或相关关系
|
||||
3. 组织成前端图表所需结构
|
||||
4. 返回 JSON 数据供前端展示
|
||||
2. 计算统计指标、相关关系与群体差异
|
||||
3. 按 `JD-R` 理论聚合工作要求、工作资源、个人资源、倦怠与投入
|
||||
4. 组织成前端图表所需结构
|
||||
5. 返回 JSON 数据供前端展示
|
||||
|
||||
## 5. 文件组织结构
|
||||
|
||||
@@ -98,6 +108,7 @@ backend/
|
||||
core/
|
||||
data/
|
||||
models/
|
||||
outputs/
|
||||
services/
|
||||
app.py
|
||||
|
||||
@@ -127,12 +138,13 @@ frontend/
|
||||
|
||||
- 适合传统机器学习建模
|
||||
- 提供随机森林、GBDT、Extra Trees 等成熟算法
|
||||
- 便于输出特征重要性并配合 `SHAP` 解释
|
||||
|
||||
### 6.4 PyTorch
|
||||
|
||||
- 用于实现 LSTM+MLP 深度学习模型
|
||||
- 支持将时序特征与静态特征进行融合建模
|
||||
- 便于在论文中增加深度学习对比实验内容
|
||||
- 用于实现深度学习时序建模
|
||||
- 支持 `Transformer` 编码与静态特征门控融合
|
||||
- 便于在论文中增加时序预测对比实验内容
|
||||
|
||||
## 7. 部署方式
|
||||
|
||||
@@ -144,6 +156,6 @@ frontend/
|
||||
|
||||
- 结构清晰,便于答辩说明
|
||||
- 前后端职责明确
|
||||
- 支持快速展示图表与预测效果
|
||||
- 支持后续扩展为数据库或更复杂模型架构
|
||||
- 同时支持传统机器学习模型与深度学习模型的实验对比
|
||||
- 同时支持统计、预测、聚类和理论解释
|
||||
- 支持 `SHAP` 全局与局部可解释分析
|
||||
- 构成“数据生成 - 特征工程 - 理论解释 - 预测决策”的闭环
|
||||
|
||||
Reference in New Issue
Block a user