feat: 添加 JD-R 理论分析模块与 SHAP 可解释性分析功能
- 后端新增 JD-R(工作要求-资源)理论维度数据生成,包含工作要求、工作资源、
个人资源、中介变量共 16 个新特征列
- 新增 JD-R 分析服务与 API(维度统计、倦怠投入分析、双路径中介分析、
分组轮廓、风险分布)
- 新增 SHAP 可解释性分析模块(全局重要性、局部解释、特征交互、依赖图)
- 预测服务增加风险分类模型加载与概率预测能力
- 前端新增 JD-R 分析页面(JDRAnalysis.vue),含雷达图、散点图、路径分析等可视化
- 预测页面增加风险概率展示与 SHAP 特征解释
- 路由与导航菜单同步更新
This commit is contained in:
31
backend/services/shap_service.py
Normal file
31
backend/services/shap_service.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from core.shap_analysis import SHAPAnalyzer
|
||||
|
||||
|
||||
class SHAPService:
|
||||
"""SHAP 可解释性分析服务"""
|
||||
|
||||
def __init__(self):
|
||||
self._analyzer = None
|
||||
|
||||
def _ensure_analyzer(self):
|
||||
if self._analyzer is None:
|
||||
self._analyzer = SHAPAnalyzer()
|
||||
|
||||
def get_global_importance(self, model_type='random_forest'):
|
||||
self._ensure_analyzer()
|
||||
return self._analyzer.global_shap_values(model_type)
|
||||
|
||||
def get_local_explanation(self, data, model_type='random_forest'):
|
||||
self._ensure_analyzer()
|
||||
return self._analyzer.local_shap_values(data, model_type)
|
||||
|
||||
def get_interactions(self, model_type='random_forest', top_n=10):
|
||||
self._ensure_analyzer()
|
||||
return self._analyzer.shap_interaction(model_type, top_n)
|
||||
|
||||
def get_dependence(self, feature_name, model_type='random_forest'):
|
||||
self._ensure_analyzer()
|
||||
return self._analyzer.shap_dependence(feature_name, model_type)
|
||||
|
||||
|
||||
shap_service = SHAPService()
|
||||
Reference in New Issue
Block a user