✨ 欢迎关注Python机器学习AI ✨
本节介绍: 基于RF模型的SHAP主效应蜂巢图和交互效应堆叠柱状图分析的可视化形式 。数据采用模拟数据,作者根据个人对机器学习的理解进行代码实现与图表输出,细节并不保证与原文一定相同,仅供参考。 详细数据和代码、文献将在稍后上传至交流群,付费成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。 购买前请咨询,避免不必要的问题。
✨ 文献信息 ✨
根据文献中的可视化图表可知
图11:白天和夜间UHI强度的主要效应
图11展示气象和城市变量对UHI强度的主要效应。每个变量的主要效应反映了它们单独对UHI强度的影响,不考虑与其他变量的交互作用。在白天和夜间,气温是影响UHI强度的最重要因素。建筑高度在白天对UHI强度有负面影响,这是由于高楼的遮阳效应。而建筑覆盖率和渗透比率对UHI强度有正向或负向的影响,且这种关系在白天和夜间有所不同。总体来看,白天和夜间的UHI强度受气象和城市变量的不同程度影响,且大多数变量的主要效应在夜间比白天更为显著
图12:白天和夜间UHI强度的交互效应
图12则展示了变量间的交互效应,特别是第二阶交互效应的总和。交互效应表示两个或更多变量之间的联合影响。通过比较主要效应和交互效应,可以看出,交互效应对UHI强度预测的影响非常显著。在白天,气温和建筑高度的主要效应高于它们的交互效应。而在夜间,气温和建筑覆盖率等城市变量的交互效应更加突出,表明在夜间城市变量之间的相互作用对UHI强度的影响更为复杂。总的来说,气象变量之间、城市变量之间的交互作用更加明显,而气象变量和城市变量之间的交互作用相对较少
这些结果表明,气象和城市变量之间的复杂交互效应在影响城市热岛强度时起着至关重要的作用。因此,制定有效的城市热岛缓解策略时,需要考虑这些变量的非线性关系和交互作用。这里主要强调了特征变量间的主效应和交互效应对UHI强度的影响,而至于该文献中特征变量的总效应复现,可以参考往期文章——期刊复现:基于RF模型的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"seattle_sample_all.xlsx"
df = pd.read_excel(path)
from sklearn.model_selection import train_test_split
# 划分特征和目标变量
X = df.drop(['log_price', 'UTM_X', 'UTM_Y'], axis=1)
y = df['log_price']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
from sklearn.model_selection import cross_val_score, KFold
from sklearn.ensemble import RandomForestRegressor
# 初始化随机森林回归模型
model = RandomForestRegressor(
n_estimators=100, # 使用100棵决策树
max_depth=None, # 没有最大深度限制
bootstrap=True, # 使用bootstrap样本
criterion='squared_error', # 使用均方误差准则
max_features='sqrt', # 每棵树评估特征的平方根('sqrt')
random_state=42, # 设置随机种子,确保结果可复现
verbose=False
)
# 创建 KFold 交叉验证对象并设置随机种子
kf = KFold(n_splits=10, random_state=42, shuffle=True)
# 使用 10 折交叉验证评估模型表现,评分标准使用 R²(拟合优度)
cv_scores = cross_val_score(model, X_train, y_train, cv=kf, scoring='r2')
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
plt.figure()
shap.summary_plot(shap_values, X_test, feature_names=shap_values_with_mean.columns, plot_type="dot", show=False)
plt.savefig("Total effects.pdf", format='pdf',bbox_inches='tight',dpi=1200)
plt.show()
使用随机森林回归模型对数据进行训练,并通过SHAP(Shapley Additive exPlanations)方法计算特征对模型输出的影响,最后生成SHAP值的可视化图表,X轴名称“SHAP value (impact on model output)”表示特征的SHAP值绝对值均值,代表特征对模型的总效应,类似于常见文献中的SHAP值蜂巢图结果
接下来的这种蜂巢图可视化,细心的读者可以注意到X轴名称发生了变化,从"SHAP value (impact on model output)"变为了"Main effect SHAP",这意味着这张图表示的是SHAP主效应值的影响。主效应值仅表示单个特征对模型输出的影响,不包含特征之间的交互影响,类似于文献中的图11。接下来,根据这种思路复现图12,专注于特征间的交互效应,计算并展示特征间的交互SHAP值,以便深入理解各个变量之间的相互关系和联合影响
详细数据和代码、文献将在稍后上传至交流群,付费成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。
✨ 该文章案例 ✨
在上传至交流群的文件中,像往期文章一样,将对案例进行逐步分析,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。
同时,结合提供的免费AI聚合网站进行学习,能够让读者在理论与实践之间实现融会贯通,更加全面地掌握核心概念。
✨ 购买介绍 ✨
本节介绍到此结束,有需要学习数据分析和Python机器学习相关的朋友欢迎到淘宝店铺:Python机器学习AI,或添加作者微信deep_ML联系,购买作者的公众号合集。截至目前为止,合集已包含近300多篇文章,购买合集的同时,还将提供免费稳定的AI大模型使用,包括但不限于ChatGPT、Deepseek、Claude等。
更新的内容包含数据、代码、注释和参考资料。 作者仅分享案例项目,不提供额外的答疑服务。项目中将提供详细的代码注释和丰富的解读,帮助您理解每个步骤 。 购买前请咨询,避免不必要的问题。
✨ 群友反馈 ✨
✨ 淘宝店铺 ✨
请大家打开淘宝扫描上方的二维码,进入店铺,获取更多Python机器学习和AI相关的内容,或者添加作者微信deep_ML联系 避免淘宝客服漏掉信息 ,希望能为您的学习之路提供帮助!
往期推荐
机器学习在临床数据分析中的应用:从数据预处理到Web应用实现的完整流程教学
因果推断:利用EconML实现双重机器学习估计条件平均处理效应 (CATE)
期刊复现:基于XGBoost模型的网页工具SHAP力图解释单样本预测结果
期刊配图:nature cities通过ALE(累积局部效应)解析特征对模型影响
期刊复现:结合因果推断与SHAP可解释性的机器学习实现应用流程
nature communications:基于Light GBM与随机森林结合的多模型特征选择方法
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考
