背景
代码目标是实现机器学习模型的训练、调优、评估以及结果的可视化分析,项目主要包括以下几个步骤:
- 数据加载与预处理:
首先从Excel文件中加载了包含多特征的医学数据,并将其存储在df中,使用LightGBM模型进行特征的重要性排序。通过训练LGBM模型并获取特征重要性(feature_importances_),对特征进行排序,并选取前30个最重要的特征,最后根据LGBM模型的特征重要性及特征组合在交叉验证下的平均成绩,选择了前8个特征进行模型训练。这些特征是:X_30, X_39, X_46, X_32, X_34, X_33, X_9, X_28,目标变量是y(即分类标签),并将特征和目标变量分开存储,进行后续的模型训练 - 模型训练与调优:
使用多种机器学习模型进行训练,包括人工神经网络(ANN)、决策树(DT)、极限随机树(ET)、梯度提升机(GBM)、K近邻(KNN)、LightGBM(LGBM)、随机森林(RF)、支持向量机(SVM)和XGBoost(XGB)。为每个模型定义了不同的超参数,并通过GridSearchCV进行网格搜索,找到最优的参数配置,每个模型使用5折交叉验证来评估其性能,确保模型在不同数据子集上的表现稳定 - 模型评估与性能对比:
对每个模型进行评估,计算常见的分类指标,包括准确率、敏感性(召回率)、特异性、精确度(阳性预测值)、负性预测值、F1分数以及Kappa系数等,绘制多个图表进行模型性能对比,包括ROC曲线、Precision-Recall曲线等,以展示不同模型在训练集和测试集上的表现 - 模型结果的可视化:
对最优模型(在这个例子中是ExtraTreesClassifier)进行了深入的可视化分析。通过SHAP值解释模型的决策过程,展示特征的重要性和对每个样本预测的影响,使用PCA进行降维,将数据投影到一维空间,并绘制散点图展示每个数据点在降维空间中的分布,同时根据预测的概率值对数据点进行颜色编码,区分不同类别,绘制了多个SHAP图(如条形图、散点图、瀑布图等),这些图表帮助解释模型的决策依据和各特征对模型预测的影响
该篇文章为单独付费文章、 如需获取本文的源代码和数据集,请底部添加作者微信联系
特征筛选
- 特征重要性排序
使用初步训练的轻梯度提升机(LGBM)分类器对变量的重要性进行排序,并选择排名前30的变量 - 前向特征选择
使用多个LGBM分类器,通过逐步添加变量的方式,依次评估每个变量对模型性能的贡献 - 模型优化与最终选择
根据接受者操作特征曲线(AUC)评估分类器的性能。当添加变量到第7个时,模型性能不再显著提升,因此最终选择前7个变量用于模型开发
构建9个模型
- 基于特征筛选确定的特征['X_30', 'X_39', 'X_46', 'X_32', 'X_34', 'X_33', 'X_9', 'X_28']进行多模型比较
- 模型包括ANN、DT、ET、GBM、KNN、LightGBM、RF、SVM、XGBoost
- 利用k折交叉验证+网格搜索+手动微调确定各模型最优参数
针
对最优模型ET进行可视化
- 训练集测试集基于PCA降维与模型预测概率的分类效果可视化
- 训练集测试集P-R曲线绘制
- 训练集测试集ROC-AUC曲线
针对最优模型ET进行shap解释
参考文献
完整 代码与数据集获取:如需获取本文的源代码和数据集,请添加作者微信联系
往期推荐
聚类与解释的结合:利用K-Means聚类辅助SHAP模型解释并可视化
期刊配图:SHAP可视化改进依赖图+拟合线+边缘密度+分组对比
期刊配图:SHAP蜂巢图与柱状图多维组合解读特征对模型的影响
基于mRMR筛选和递归特征选择的多模型性能评估与AUC可视化对比
期刊配图:SHAP可视化进阶蜂巢图与特征重要性环形图的联合展示方法
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考