透明报告论文复现心血管疾病Stacking集成SHAP

复现报告:BRFSS心脏病Stacking预测 — 32万样本22分钟完成6种模型训练与SHAP分析

复现报告:BRFSS心脏病Stacking预测 — 32万样本22分钟完成6种模型训练与SHAP分析

想亲眼看看完整的研究过程和最终论文?

我们为这个案例准备了可交互的展示页面,包含完整的分析过程和生成结果。

查看完整展示

复现目标

原论文:Chen Y, Chong L, Bao Z, Wang S, Wang Y, Feng Y. An interpretability heart disease prediction model based on stacking ensemble with SHAP. Frontiers in Molecular Biosciences. 2026;12. doi:10.3389/fmolb.2025.1763157. PMCID: PMC12963821.

作者机构:青岛大学附属医院(陈彦洁 - 腹部超声科、丛立强 - 泌尿外科、鲍正浩 - 腹部超声科、冯亚男 - 腹部超声科)、青岛理工大学信息与控制工程学院(王少强)、青岛理工大学理学院(王宇辰)。

数据集:Kaggle BRFSS 2020(Behavioral Risk Factor Surveillance System)。319,795条样本,17个特征变量 + 1个目标变量。类别分布严重不平衡:No=292,422(91.44%), Yes=27,373(8.56%)。

复现范围

  • ✅ 覆盖:多模型分类对比(Naive Bayes、Decision Tree、Random Forest、Gradient Boosting、Extra Trees、Stacking Ensemble)、SHAP可解释性分析、特征重要性排序、特征交互分析
  • ❌ 未覆盖:CatBoost模型(运行环境未安装该库,以Extra Trees替代)、贝叶斯超参数优化、网格搜索调参

方法差异

  • 过采样:原论文使用Borderline-SMOTE vs AI使用标准SMOTE
  • 超参数优化:原论文对GB/CatBoost进行贝叶斯优化、对Decision Tree进行网格搜索 vs AI使用默认参数
  • 交叉验证:均使用5折交叉验证
  • 模型选择:原论文包含CatBoost vs AI以Extra Trees替代

执行记录

指标数值
耗时22分钟(17:12:30 → 17:34:28 UTC)
积分消耗231.39积分(¥2.31)
Python脚本10个
分析图表12张
数据文件4个JSON
训练模型已保存
分析报告1份

复现结果对比

特征重要性排序对比(SHAP分析)

排名原论文AI复现AI SHAP值一致性
1SleepTimeAgeCategory_70-7416.72⚠️ 不一致
2GenHealthAsthma_Yes15.08⚠️ 不一致
3AgeCategorySmoking_Yes13.80⚠️ 不一致
4SexDiffWalking_Yes13.31⚠️ 不一致
5BMIPhysicalActivity_No6.71⚠️ 不一致

表面看差异较大,但需注意关键方法论差异:AI对分类变量进行了one-hot编码,因此原论文中的"AgeCategory"被拆分为AgeCategory_70-74、AgeCategory_80+、AgeCategory_75-79等多个独立特征。如果将同一原始变量的各编码值合并计算,AgeCategory(合计贡献 16.72 + 4.34 + 4.10 = 25.16)和GenHealth(GenHealth_Fair 4.07 + 其他等级)均出现在两份结果中。差异在于:原论文中SleepTime排名第一,而AI结果中吸烟(13.80)和哮喘(15.08)的贡献更为突出,这可能与SMOTE变体不同和超参数差异有关。

AI发现的特征交互效应:Age80+ × GenHealth_Poor(交互强度0.85)、Stroke × DiffWalking(0.72)、Diabetic × KidneyDisease(0.68),这些交互在原论文中未单独报告。

模型性能对比

模型原论文Accuracy(Table 7)AI Accuracy原论文AUC(Table 7)AI AUC原论文F1(Table 7)AI F1
Naive Bayes0.740.68320.810.80660.730.3038
Decision Tree0.880.76290.880.79370.880.3220
CatBoost0.880.960.88
Gradient Boosting0.840.81140.920.82900.840.3734
Extra Trees0.85860.76300.2908
Random Forest0.86560.78750.3082
Stacking Ensemble0.86690.8250.970.840.86910.39
Hard Voting87%
Soft Voting88%

关于指标差异的重要说明:AI复现结果的Precision和F1显著低于原论文,这并非模型质量问题,而是评估指标的统计口径不同。原论文报告的是加权(weighted)指标,受多数类(No, 91.44%)主导;AI复现报告的是少数类(心脏病=Yes, 仅8.56%)的指标。在91.44%的类别不平衡下,少数类的Precision天然较低——例如AI的Naive Bayes少数类Precision仅0.1871,但AUC(0.8066)与原论文(0.81)高度一致,说明模型的排序能力是可比的。

AUC作为不受类别分布影响的指标,更适合跨研究对比。AI的Stacking AUC(0.84)低于原论文(0.97),差距主要来自以下因素。

差距分析

  1. SMOTE变体差异:原论文使用Borderline-SMOTE(仅在决策边界生成合成样本),AI使用标准SMOTE(均匀过采样)。Borderline-SMOTE在不平衡比例高达1:10.7的场景下通常表现更优。
  2. 无超参数优化:原论文对Gradient Boosting和CatBoost进行了贝叶斯优化,对Decision Tree进行了网格搜索。AI使用默认参数,这对集成模型(尤其是Stacking的元学习器)影响显著。
  3. CatBoost缺失:原论文Stacking的基学习器包含CatBoost(AUC 0.96),AI以Extra Trees(AUC 0.7630)替代,基学习器质量下降直接影响Stacking性能。
  4. 加权 vs 少数类指标:Accuracy和F1的差异主要源于统计口径不同,AUC的差距(0.84 vs 0.97)才是真实的模型性能差距。

AI做到了什么

  • 22分钟完成32万样本的数据预处理、6种模型训练与评估
  • 生成12张分析图表,包括SHAP蜂群图、特征重要性bar plot、混淆矩阵
  • 完成SHAP特征交互分析,发现3组显著交互效应
  • 识别出AgeCategory和GenHealth作为关键风险因子,与原论文一致
  • 完整的可重复分析代码(10个Python脚本)
  • 2.31元完成全部分析

AI没做到什么

  • 未训练CatBoost:原论文Stacking的核心基学习器,其AUC(0.96)远超AI替代的Extra Trees(0.7630),直接拉低了Stacking整体性能
  • 未进行超参数优化:原论文的贝叶斯优化和网格搜索是性能提升的关键步骤,AI全部使用默认参数
  • 未使用Borderline-SMOTE:在8.56%的极端不平衡场景下,过采样策略的选择对模型性能影响显著
  • 评估指标口径不一致:AI报告少数类指标,原论文报告加权指标,导致Precision/F1/Accuracy的直接对比存在误导性
  • 未复现投票集成:原论文报告了Hard Voting(87%)和Soft Voting(88%)的结果,AI未实现
  • 未做SleepTime的深入分析:原论文SHAP排名第一的特征在AI结果中不突出,未进一步排查原因

结论

在AUC这一类别不平衡场景下最可靠的指标上,AI的Stacking(0.84)与原论文(0.97)存在0.13的差距。差距主要源于三个可量化因素:CatBoost缺失(原论文基学习器AUC 0.96 vs AI替代的Extra Trees 0.7630)、无超参数优化、标准SMOTE替代Borderline-SMOTE。特征重要性方面,AgeCategory和GenHealth在两份分析中均为核心风险因子,但one-hot编码导致排序不可直接对比。

22分钟、2.31元完成32万样本的基础验证。AI能够快速建立baseline并生成可解释性分析,但从baseline到原论文水平的性能提升(AUC 0.84 → 0.97)依赖于研究者在过采样策略、超参数调优和模型选择上的专业判断。

查看完整AI分析过程 →

数据安全与使用说明

  • 你上传的数据仅用于当次分析,不会用于模型训练或与第三方共享。
  • 所有案例均经作者授权后发布,敏感信息已做脱敏处理。
  • AI 生成的论文仅供参考,最终发表前请由领域专家审核。

上传你的数据,体验同样的效果

从 CSV 到完整论文,只需一步。免费开始你的 AI 辅助科研之旅。

免费开始你的研究