项目简介
本次推文打造了一款骨质疏松风险预测可视化分析平台。无需编写复杂的训练代码,也不用手动绘制各类专业图表,只需一键运行后在浏览器中打开平台,加载数据、勾选所需模型并点击训练按钮,15种机器学习模型将自动完成全流程训练,同时生成多维度结果对比图与SHAP可解释性分析报告,判断哪些因素是引起骨质疏松的关键元凶!
平台支持单患者信息实时预测,并清晰展示模型决策依据。若您拥有自有骨质疏松临床数据,只要格式兼容,即可直接上传使用。
先简单演示一下程序:
开发背景
骨质疏松是老年人群高发的慢性代谢性骨病,早期症状隐匿,多数患者直至发生脆性骨折才被确诊,此时已错过最佳干预时机。基于机器学习的高危人群风险预测模型,能够为临床早期筛查提供有力支撑,具有重要的公共卫生价值与临床应用意义。
本期分享中,我将整个研究流程封装为可视化平台——只需勾选模型即可自动完成训练、性能对比、图表生成与SHAP分析全流程,能够为论文写作与课题研究节省大量时间与精力。
内置数据集说明
平台内置了一份经过标准化预处理的骨质疏松风险预测数据集,包含1958条患者临床记录与14项特征指标:
数值特征(1个):
年龄(Age)
分类特征(13个):
性别(Gender):Male / Female
激素变化(Hormonal Changes):Normal / Postmenopausal
家族史(Family History):Yes / No
种族(Race/Ethnicity):Asian / Caucasian / African American
体重状况(Body Weight):Underweight / Normal
钙摄入(Calcium Intake):Low / Adequate
维生素D摄入(Vitamin D Intake):Insufficient / Sufficient
体力活动(Physical Activity):Sedentary / Active
吸烟(Smoking):Yes / No
饮酒(Alcohol Consumption):Moderate / NA
既往疾病(Medical Conditions):Hyperthyroidism / Rheumatoid Arthritis / NA
用药史(Medications):Corticosteroids / NA
既往骨折(Prior Fractures):Yes / No
目标变量: 是否确诊骨质疏松(Osteoporosis),其中0代表未患病,1代表患病。数据集正负样本各979条,分布完全均衡。
数据中存在部分缺失值(主要集中在饮酒史、既往疾病、用药史等字段),平台采用将缺失值作为独立类别"NA"的处理方式,最大限度保留样本信息,避免数据丢失。
若您拥有自有骨质疏松临床数据,只需保证特征名称与取值格式与上述规范一致,即可直接上传至平台进行分析。
平台核心功能详解
第一步:一键式探索性数据分析(EDA)
加载平台内置数据集或上传您的自有数据后,平台将自动完成全维度探索性分析并生成以下可视化结果:
数据基本信息概览:样本量、特征数、缺失值统计、正负样本比例
目标变量分布:饼图+柱状图双重展示
年龄特征分析:按患病/未患病分组的分布直方图与小提琴图
各分类特征取值分布统计
卡方检验(Chi-Square):识别与骨质疏松显著相关的特征
Cramer's V系数:量化特征与目标变量的相关程度



第二步:多模型批量训练
平台集成了15种主流机器学习与深度学习模型,分为以下五大类:
经典Boosting模型(5种): XGBoost、LightGBM、CatBoost、Gradient Boosting、HistGradientBoosting——表格数据建模的首选方案,在实际项目中应用最为广泛。
集成学习模型(3种): Random Forest、Extra Trees、AdaBoost——经典基线方法,性能稳定且易于解释。
线性与基础神经网络(2种): Logistic Regression、MLP Neural Network——逻辑回归是学术研究的基准对比标配,多层感知器则提供了非线性建模能力。
表格深度学习模型(3种): TabNet、FT-Transformer、TabPFN——近几年表格数据深度学习领域的代表性工作。
Boosting优化变体(2种): LightGBM-GOSS、CatBoost-Ordered——采用不同采样与训练策略的优化版本。
平台支持模型全选/反选操作,无需逐个点击。训练过程实时显示进度条,使用内置数据集时,全部15种模型仅需1-2分钟即可完成训练。训练结束后自动生成性能排行榜,按AUC-ROC值从高到低排序。




第三步:全面的SHAP可解释性分析
SHAP(SHapley Additive exPlanations)是目前最主流的模型可解释性方法,平台提供以下五种SHAP可视化分析:
蜂群图(Beeswarm Plot):从全局视角展示所有特征对模型预测结果的贡献分布,可直观发现如"年龄越大SHAP值越高"、"有家族史样本的SHAP值偏向正值"等规律。
特征重要性柱状图:按平均绝对SHAP值排序展示各特征的全局重要性,写论文时可直接引用。
依赖图(Dependence Plot):选定一个特征,展示其不同取值下对预测结果的影响趋势。
瀑布图(Waterfall Plot):单样本分析神器。从基准值出发,清晰展示每个特征如何将预测概率向上或向下调整,最终得到最终预测结果,是案例研究(Case Study)的必备工具。
热力图(Heatmap):将多个样本的SHAP值按行排列,便于发现群体层面的特征影响模式。
平台还支持多模型SHAP结果对比,可直观比较不同模型对特征重要性的认知差异。若您训练了TabNet模型,平台还会额外展示其自带的注意力权重图,可与SHAP分析结果相互验证,增强结论的可靠性。




第四步:单患者实时风险预测
选择任意一个已训练完成的模型,通过滑块输入患者年龄、下拉框选择其他临床特征,点击预测按钮即可获得:

风险等级仪表盘:以0-100%刻度直观展示风险等级,分为绿色(低风险)、黄色(中风险)、红色(高风险)三个区间
精确预测概率:结果精确至小数点后四位
模型置信度进度条:展示模型对当前预测结果的确定程度
SHAP瀑布图:清晰解释该患者风险评估结果的形成原因——是年龄因素主导?还是家族史影响?亦或是钙摄入不足导致?每个特征的贡献大小与方向一目了然。
该功能非常适合用于论文中的"临床应用演示"或"案例分析"章节,几张截图即可完整展示平台的实用价值。

自有数据上传说明
若您拥有自行采集的骨质疏松临床数据(如医院脱敏后的患者数据),可将其整理为CSV格式上传至平台。只需满足以下格式要求即可无缝使用:
特征列名与内置数据集保持一致(Age、Gender、Hormonal Changes 等)
目标列名为 Osteoporosis,取值为0(未患病)和1(患病)
分类特征的取值范围与内置数据保持一致
满足上述条件即可直接使用平台全部功能,对样本量无特殊限制。
其他实用细节
中英文双语切换:侧边栏一键切换界面语言,图表默认保留英文(符合学术论文规范),界面文字可根据需求自由选择
本地安全运行:所有数据处理与计算均在本地完成,不会上传至任何外部服务器,充分保障患者隐私与数据安全
一键启动:运行
run.py脚本后将自动打开浏览器并进入平台界面结果导出:所有模型训练结果表格均可下载为CSV格式,便于后续进一步分析
代码获取
代码分为APP可视化、和源代码两种形式。
APP可视化平台代码也非封装形式,都是源码呈现,你可以自定义扩展。如果你有更强的开发能力,本期推文也仅仅起一个抛砖引玉的作用。
APP可视化需要安装的包如下:
streamlit>=1.28.0
plotly>=5.18.0
pandas>=1.5.0
numpy>=1.23.0
scikit-learn>=1.2.0
xgboost>=1.7.0
lightgbm>=3.3.0
catboost>=1.2.0
shap>=0.44.0
torch>=2.0.0
pytorch_tabnet>=4.0.0
tabpfn>=0.1.11
matplotlib>=3.6.0
seaborn>=0.12.0
scipy>=1.10.0
joblib>=1.2.0非可视化源代码需要安装的包如下:
numpy~=1.26.0
pandas~=2.3.2
matplotlib~=3.9.2
seaborn~=0.13.2
xgboost~=2.1.4
lightgbm~=4.6.0
torch~=2.8.0+cu126
shap~=0.47.2
scipy~=1.13.1
scikit-learn~=1.6.1
catboost~=1.2.10
tabpfn~=0.1.11代码获取链接:
https://mbd.pub/o/bread/YZaTk5tvaA==
或者点击下方阅读原文获取。

337

被折叠的 条评论
为什么被折叠?



