✨ 欢迎关注Python机器学习AI ✨
本节介绍:基于参考可视化的shap组合形式 。数据采用模拟数据,作者根据个人对机器学习的理解进行代码实现与图表输出,细节并不保证与原文一定相同,仅供参考。 详细数据和代码将在稍后上传至交流群,付费成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。 购买前请咨询,避免不必要的问题。 文末点赞、推荐、转发参与免费包邮赠书~
✨ 参考可视化 ✨
✨ 模拟可视化 ✨
✨ 代码实现 ✨
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['axes.unicode_minus'] = False
import warnings
# 忽略所有警告
warnings.filterwarnings("ignore")
path = r"2025-4-11公众号Python机器学习AI.xlsx"
df = pd.read_excel(path)
from sklearn.model_selection import train_test_split
# 划分特征和目标变量
X = df.drop(['Electrical_cardioversion'], axis=1)
y = df['Electrical_cardioversion']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X,
y,
test_size=0.3,
random_state=42,
stratify=df['Electrical_cardioversion']
)
from xgboost import XGBClassifier
from sklearn.model_selection import GridSearchCV, KFold
from sklearn.metrics import accuracy_score, roc_auc_score
# 定义 XGBoost 分类模型
model_xgb = XGBClassifier(use_label_encoder=False, eval_metric='logloss', random_state=8)
# 定义参数网格
param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [3, 5, 7],
'learning_rate': [0.01, 0.1, 0.2],
'subsample': [0.8, 1.0],
'colsample_bytree': [0.8, 1.0]
}
# 使用 K 折交叉验证
kfold = KFold(n_splits=5, shuffle=True, random_state=8)
# 使用网格搜索寻找最佳参数
grid_search = GridSearchCV(estimator=model_xgb, param_grid=param_grid, scoring='accuracy',
cv=kfold, verbose=1, n_jobs=-1)
# 拟合模型
grid_search.fit(X_train, y_train)
# 使用最优参数训练模型
xgboost = grid_search.best_estimator_
import sys
import os
# 将标准输出重定向到os.devnull
sys.stdout = open(os.devnull, 'w')
import shap
explainer = shap.TreeExplainer(xgboost)
shap_values = explainer.shap_values(X_test)
plt.figure()
shap.summary_plot(shap_values, X_test, feature_names=X_test.columns, plot_type="dot", max_display=10, show=False, cmap="coolwarm")
# 设置 max_display 参数 来显示多少个特征
plt.savefig("1.pdf", format='pdf', bbox_inches='tight', dpi=1200)
plt.show()
使用 XGBoost 分类模型,通过网格搜索和交叉验证优化超参数,并使用 SHAP 值对测试集进行解释,最终绘制并保存特征重要性可视化图(通过 SHAP summary plot)
plt.figure(figsize=(10, 5), dpi=1200)
shap.summary_plot(shap_values, X_test, plot_type="bar", show=False)
plt.tight_layout()
plt.savefig("2.pdf", format='pdf',bbox_inches='tight')
plt.show()
绘制 SHAP 值的条形图(bar 类型),把这两个可视化组合起来就得到了最基础的shap组合图
左边的条形图显示了每个特征的平均 SHAP 值(特征对模型输出的平均影响),帮助识别哪些特征对模型的预测贡献最大;右边的散点图则展示了每个特征的 SHAP 值如何随特征值的变化而变化,并通过颜色表示特征值的高低,帮助理解特征值对模型输出的具体影响
现在,通过将左侧的可视化替换为当前的极坐标图,能够展示每个特征对模型输出的影响大小,并以更直观的方式表现各特征的重要性,从而达到文献复现的效果,里面的ECV代表的是模型目标
✨ 该文章案例 ✨
在上传至交流群的文件中,像往期文章一样,将对案例进行逐步分析,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。
同时,结合提供的免费AI聚合网站进行学习,能够让读者在理论与实践之间实现融会贯通,更加全面地掌握核心概念。
✨ 购买介绍 ✨
本节介绍到此结束,有需要学习数据分析和Python机器学习相关的朋友欢迎到淘宝店铺:Python机器学习AI,或添加作者微信deep_ML联系,购买作者的公众号合集。截至目前为止,合集已包含200多篇文章,购买合集的同时,还将提供免费稳定的AI大模型使用,包括但不限于ChatGPT、Deepseek、Claude等。
更新的内容包含数据、代码、注释和参考资料。 作者仅分享案例项目,不提供额外的答疑服务。项目中将提供详细的代码注释和丰富的解读,帮助您理解每个步骤 。 购买前请咨询,避免不必要的问题。
✨ 群友反馈 ✨
✨ 淘宝店铺 ✨
请大家打开淘宝扫描上方的二维码,进入店铺,获取更多Python机器学习和AI相关的内容,或者添加作者微信deep_ML联系 避免淘宝客服漏掉信息 ,希望能为您的学习之路提供帮助!
✨ 免费赠书 ✨
支持知识分享,畅享学习乐趣!特别感谢清华大学出版社 对本次赠书活动的鼎力支持!即日起,只需点赞、推荐、转发 此文章,作者将从后台随机抽取一位幸运儿,免费包邮赠送清华出版社提供的《大模型智能推荐系统:技术解析与开发实践》这本精彩书籍📚!
💡 赶快参与,一键三连,说不定你就是那位幸运读者哦!
往期推荐
Frontiers in Oncology:利用生存机器学习RSF模型预测患者预后模拟实现
期刊配图:通过SHAP组图解读模型探索不同类型特征和分组对模型的影响
机器学习在临床数据分析中的应用:从数据预处理到Web应用实现的完整流程教学
Psychiatry Research基于SHAP可解释性的机器学习模型构建与评估:混淆矩阵、ROC曲线、DCA与校准曲线分析
nature communications:基于Light GBM与随机森林结合的多模型特征选择方法
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考