✨ 欢迎关注Python机器学习AI ✨
✨ 第一期:多模态早期融合,后续中期和晚期融合系列更新中~ ✨
本节介绍:对于 多模态数据临床与影像早期融合 的一个完整流程复现,包含视频讲解。数据采用模拟数据,作者根据个人对机器学习的理解进行代码实现与图表输出,仅供参考。为单独付费项目(包含早期、中期、晚期融合, 后续中期和晚期融合系列更新中~ ) 。需要的朋友可关注公众文末提供的购买方式。 购买前请咨询,避免不必要的问题。
✨ 早期融合 ✨
早期融合(Early Fusion)是多模态学习中的一种方法,指的是在模型处理过程中,先将不同模态的数据(例如,临床数据和影像数据)合并成一个统一的输入特征,然后再输入到模型进行训练和预测
- 数据收集:从不同的数据源收集数据,例如,影像数据(如CT扫描、MRI图像)和结构化的临床数据(如病人的年龄、性别、病史等)
- 特征提取:每种数据类型经过各自的预处理与特征提取过程。比如,影像数据可以通过卷积神经网络(CNN)提取视觉特征,临床数据可以进行标准化、归一化等处理
- 数据融合:将不同模态(如影像特征和临床特征)的数据直接合并成一个统一的特征向量。这通常是通过简单的拼接操作实现的
- 模型训练:将融合后的特征输入到机器学习模型中(如支持向量机、决策树、神经网络等)进行训练,模型通过这些特征进行预测
早期融合的优点在于它能在最初的阶段就整合不同类型的信息,有助于模型捕捉不同模态间的潜在关系。然而,早期融合也存在一些挑战,例如不同模态的特征可能具有不同的尺度和复杂度,因此如何有效地融合这些特征,避免信息丢失或噪声干扰,是早期融合中的一个关键问题
✨ 项目流程 ✨
第一步将临床数据(rad_clinical.csv)和影像数据(rad_features.csv,已向量化处理为结构化数据)通过ID列进行合并,并将两个label列合并为一个最终的标签列
接下来进行特征工程处理,①单变量特征选择,目的是找出与目标变量(label)存在显著差异的特征,以便后续建模时重点关注这些特征,从1565个特征降维到了361个特征 ②这一步考虑进行多重共线性的排查,但是传统的方差膨胀因子(VIF)方法可能会导致奇异矩阵的问题,尤其是在特征维度较高时(比如361个特征)。同时,使用相关系数来剔除高度相关的特征,虽然可行,但会带来较大的工作量。针对这些问题,可以通过结合L1正则化(Lasso回归)和逻辑回归的方法来有效地处理多重共线性问题,当然Lasso主要目的是进行特征选择,在多重共线性问题中,多个相关性强的特征往往会导致回归模型的不稳定性和过拟合。Lasso通过将部分系数缩小到零,实际上可以将相关性较强的特征剔除,从而有效缓解多重共线性的问题
AUC(曲线下面积)随λ(L1正则化参数)变化的折线图
L1正则化(Lasso回归)中系数随λ变化的轨迹图。展示了不同的λ值对每个特征系数的影响,帮助理解在不同正则化强度下,哪些特征被选中或被忽略,最终从361个特征降到18个特征
不同特征子集递归过程中,在不同评估指标下的表现
These features are from the clinical data: ['PR', 'Family history', 'Retraction phenomenon', 'US-reported ALN status', 'Adler grade']
These features are from the image data: ['lbp_3D_m1_glcm_ClusterShade', 'wavelet_LHH_gldm_DependenceEntropy', 'wavelet_LHH_firstorder_Maximum', 'wavelet_HHH_gldm_LargeDependenceLowGrayLevelEmphasis', 'logarithm_ngtdm_Busyness', 'lbp_3D_k_glrlm_ShortRunLowGrayLevelEmphasis', 'logarithm_glszm_LargeAreaHighGrayLevelEmphasis', 'wavelet_LHH_firstorder_90Percentile', 'wavelet_LHL_glcm_ClusterProminence']
通过早期融合后,临床数据和影像数据的特征会被合并成一个综合的特征集。在这个特征集上,经过特征选择后最终保留了原始临床数据特征有5个,原始影像数据特征有9个,共14个特征进行接下来的模型构建
其实,早期融合并不是在特征选择流程中最终一定包含临床和影像数据,可能只包含其中一类数据,当然这种问题可以通过中期或晚期融合来解决,后续会进一步讲解
得到了上面的14个特征后 将数据集按7:3的比例划分为训练集和测试集。由于数据集是样本不均衡的,为了提升模型对少数类的学习能力,对训练集进行了SMOTETomek采样,结合了SMOTE和Tomek Links方法来平衡数据集。接着,使用多种机器学习模型进行训练(网格搜索+K折),包括DT、梯度提升GBDT、RF、SVC、GNB、LightGBM、KN和逻辑回归
在对比的多个机器学习模型中,随机森林(RF)模型表现最佳,其AUC值为0.771,明显高于其他模型,说明它在区分正负样本方面具有更强的能力。其次是GBDT(0.752)和LightGBM(0.715),也表现良好。而传统的模型如逻辑回归(Logistic,0.400)和支持向量机(SVM,0.487)AUC值较低,几乎接近或低于随机猜测的水平(AUC=0.5),说明这些模型在当前特征和数据下并不适合
当然这里也给出了模型其它的一些评价指标
同时绘制了对最佳单一模型随机森林(RF)进行的决策曲线分析(DCA)和校准曲线绘制,评估了在不同阈值下的模型效益和预测的准确性,同时考虑到集成学习模型(如RF、GBDT和LightGBM)在此任务中显著优于其他单一模型,所以接下来对最优的四个模型进行11种情况的堆叠,探讨堆叠模型在性能上是否有提升
Model 1: LightGBM loaded.
Model 2: RF loaded.
Model 3: GBDT loaded.
Model 4: DT loaded.
Model 5: LightGBM_RF trained.
Model 6: LightGBM_GBDT trained.
Model 7: LightGBM_DT trained.
Model 8: RF_GBDT trained.
Model 9: RF_DT trained.
Model 10: GBDT_DT trained.
Model 11: LightGBM_RF_GBDT trained.
Model 12: LightGBM_RF_DT trained.
Model 13: LightGBM_GBDT_DT trained.
Model 14: RF_GBDT_DT trained.
Model 15: LightGBM_RF_GBDT_DT trained.
从堆叠模型后的性能结果表可以看出,虽然RF模型的AUC值最高(0.7742),但它的F1分数排名仅第4,灵敏度排名第12,这表明它对少数类的预测能力较弱。而数据集本身是不均衡的,因此单纯依靠AUC可能不足以评估模型的综合性能。在这种情况下,应结合F1分数、灵敏度(Sensitivity)和特异性(Specificity)等指标进行综合考虑,选择一个平衡各项指标表现的最佳模型,尤其是在面对不均衡数据时
从综合排名的可视化图可以得出结论,RF-GBDT堆叠模型被认为是最优模型。虽然其AUC值(0.7617)稍低于RF模型(0.7742),但它在其他评价指标上,如F1值和灵敏度(Sensitivity),表现更好,尤其是在对少数类样本的识别能力上。因此,最终确定RF-GBDT堆叠模型为最优模型
这里展示RF-GBDT堆叠模型的可视化结果,包括决策曲线分析(DCA)、校准曲线以及混淆矩阵,评估了该模型在测试集上的表现,显示了其在不同阈值下的净效益、校准性能以及分类效果
RF、GBDT、LightGBM和RF-GBDT堆叠模型的ROC曲线对比图,现在就可以对RF-GBDT堆叠模型进行SHAP解释,对于SHAP部分详细的解读放在视频里面,这里不过多进行解释
SHAP值的特征重要性可视化,展示了每个特征对RF-GBDT堆叠模型预测的贡献。图中的每个点代表一个样本的SHAP值,点的位置表示该特征对模型输出的影响,点的颜色表示特征的值(从低到高)。特征的重要性通过其对预测结果的影响程度(SHAP值的平均绝对值)来排序。比如,US-reported ALN status是影响模型预测的最重要特征,贡献度为35.90%,而PR和其他一些特征对模型预测的贡献较小。该图有助于理解哪些特征在模型决策中起到了关键作用
这里绘制了影响排名前四特征的SHAP依赖图的改进版,展示特征与目标变量之间的关系。每个图中的点代表一个样本,横坐标是特征的取值,纵坐标是该特征对预测结果的影响(SHAP值)。图中的拟合曲线和置信区间展示了该特征对模型输出的影响趋势,帮助识别特征值的变化对目标变量的影响。底部的直方图展示了每个特征的分布情况
SHAP的单样本解释,展示了针对类别0(负类)样本的预测过程,其中f(x)表示该样本预测为类别1的概率。图中的每个箭头代表一个特征对预测结果的贡献,箭头的方向和长度表示特征对预测类别1概率的影响方向和大小。红色箭头表示该特征推高了预测概率,而蓝色箭头则表示降低了预测概率
同样也可以通过SHAP瀑布图进行单样本解释,这里是用于对类别1样本的预测过程进行单样本解释,显示了每个特征对预测结果的贡献。图中的每个箭头代表一个特征对模型预测的影响,箭头的长度和颜色表示该特征对预测值的贡献方向和大小,最终输出的预测值为0.718
RF-GBDT模型的WEB部署界面,用户可以通过输入临床和影像学特征来进行预测。界面左侧是输入框,用户可以选择或输入特征值,如PR、Family history、US-reported ALN status等;右侧展示了模型的预测结果以及预测的概率值。图中显示,模型预测该患者为“未患病”的概率为 69.47%,而“患病”的概率为 30.5%。最终的模型被成功部署到
https://dmtweb.streamlit.app/
供用户进行实时预测
详细的解读、参考文献以及如何替换数据并将其转化为适用于自己的项目,将在视频中详细说明
✨ 该文章案例 ✨
在完整项目压缩包中,将对案例进行逐步分析包括视频讲解等,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。
✨ 淘宝店铺 ✨
请大家打开淘宝扫描上方的二维码,进入店铺,获取更多Python机器学习和AI相关的内容,或者添加作者微信deep_ML联系 避免淘宝客服漏掉信息 ,希望能为您的学习之路提供帮助!
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考
