期刊复现:基于RF模型的SHAP总效应自定义全局解释与特征散点图优化

大模型机器学习算法

picture.image

✨ 欢迎关注Python机器学习AI ✨

本节介绍: 基于RF模型的SHAP自定义全局解释与特征散点图优化 。数据采用模拟数据,作者根据个人对机器学习的理解进行代码实现与图表输出,细节并不保证与原文一定相同,仅供参考。 详细数据和代码、文献将在稍后上传至交流群,付费成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。 购买前请咨询,避免不必要的问题。

✨ 文献信息 ✨

picture.image

该文献利用随机森林回归模型(RF)分析城市热岛效应(UHI)强度,分别针对白天和夜间的两个数据集进行建模,并结合SHAP方法对模型结果进行变量解释。研究考虑了城市变量(如建筑高度、街道峡谷比率、建筑覆盖比率等)和气象变量(如空气温度、风速、太阳辐射等)来预测UHI强度。为了确保模型的稳定性和泛化能力,作者使用了10折交叉验证,分别对白天和夜间的数据集进行了独立的验证和优化

接下来,采用模拟数据来复现文献中的过程,使用与文献相同的参数和10折交叉验证。模拟数据集包含特征变量,如bathrooms、sqft_living、sqft_lot、grade、condition、waterfront、view和age,目标变量为log_price。将通过相同的随机森林回归模型(RF)进行建模,并结合SHAP方法进行变量解释,验证在该数据集上的模型性能与稳定性,下面为文献原图,会对这些图进行逐一的模拟实现

picture.image

picture.image

picture.image

picture.image

这些图通过SHAP值的可视化分析,展示了随机森林回归模型对白天和夜间UHI强度的预测性能,并深入解析了气象和城市变量对UHI强度的总效应。图1展示了模型的高预测准确性,图2则揭示了不同特征对UHI强度的贡献比例,图3和图4分别展示了气象变量和城市空间变量与UHI强度之间的非线性关系。这些分析重点聚焦于SHAP的 总效应 ,这里也着重复现这一部分,下一期推文将继续复现该文献中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.csv"  
df = pd.read_csv(path, index_col=0)  
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')  
  
# 输出每折的 R² 成绩以及平均 R² 成绩  
print(f"每折的 R² 成绩: {cv_scores}")  
print(f"平均 R² 成绩: {np.mean(cv_scores)}")  
  
model.fit(X_train, y_train)

picture.image

这段代码使用随机森林回归模型对数据集进行训练,并通过10折交叉验证评估模型的R²表现,划分训练集和测试集的方式与文献中的数据处理方法一致,特别是在使用随机森林回归和交叉验证来评估模型稳定性方面

picture.image

picture.image

也就是这里文献中提到的模型参数以及10折交叉验证每折成绩和其对应的平均成绩

picture.image

接下来是对模型性能的评估,这张图展示了模型在测试集上的预测效果,并通过可视化来呈现性能。与文献中的表达方式一致,图中展示了预测值与真实值的关系,并且通过颜色渐变反映了密度分布。同时,图中给出了RMSE(均方根误差)、MAE(平均绝对误差)和R²(拟合优度)值,以量化模型的性能。值得注意的是,作者使用的是模拟数据集,目的是展示相关图表的输出,而非精准的模型性能。因此,读者在实际应用时需要确保所使用的模型具有较为优异的精度性能,这里参考的可视化是往期文章——期刊配图:不同机器学习方法在目标域测试集上的散点核密度图

picture.image

在模型训练并验证其性能后,进入模型解释阶段,这一过程与文献中的配图类似。图中左侧展示了shap蜂巢图用于展示每个特征在模型预测中的重要性和影响,以便更直观地理解特征对预测结果的贡献。右侧则展示了这些变量的 绝对SHAP值平均值的比例 ,并根据特征的影响类型将其分为两个类别:'Physical Characteristics'(物理特征)和'Property Condition and View'(房产状况和视野)。细心的读者可以发现左侧图的y轴除了特征名称以外还有一个数值,其实这个数值就是特征对模型的 绝对SHAP值的平均值 表示其对模型输出的影响,这与文献中的方法相一致,能够帮助更直观地理解各个特征如何影响预测结果

picture.image

图中展示了属于 Physical Characteristics (物理特征)类别的特征在SHAP值上的散点可视化,包含了以下特征: bathrooms (浴室数)、 sqft_living (居住面积)、 sqft_lot (土地面积)和 age (房龄)。每个散点图展示了特征值与相应SHAP值之间的关系,红色虚线代表SHAP=0也就是该情况下的特征值对于模型没有任何影响。通过这些散点图,可以更清晰地看到各个物理特征对模型输出的影响,以及它们如何随着特征值的变化而变化,尤其是 sqft_livingage 这两个特征与SHAP值之间的非线性关系,同样的接下来绘制 Property Condition and View(房产状况和视野)的shap散点可视化

picture.image

到这里,文献中对于SHAP总效应的解读就告一段落了。需要注意的是,文献中使用了两个数据集,因此每种可视化形式展示了两个图表,而这里只是使用了一个数据集,但是代码逻辑完全相同。下一期文章,就将进入该文献SHAP主效应和交互效应的讲解与复现,相关内容将在下期文章中进行详细解析

✨ 该文章案例 ✨

picture.image

在上传至交流群的文件中,像往期文章一样,将对案例进行逐步分析,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。

同时,结合提供的免费AI聚合网站进行学习,能够让读者在理论与实践之间实现融会贯通,更加全面地掌握核心概念。

✨ 购买介绍 ✨

本节介绍到此结束,有需要学习数据分析和Python机器学习相关的朋友欢迎到淘宝店铺:Python机器学习AI,或添加作者微信deep_ML联系,购买作者的公众号合集。截至目前为止,合集已包含近300多篇文章,购买合集的同时,还将提供免费稳定的AI大模型使用,包括但不限于ChatGPT、Deepseek、Claude等。

更新的内容包含数据、代码、注释和参考资料。 作者仅分享案例项目,不提供额外的答疑服务。项目中将提供详细的代码注释和丰富的解读,帮助您理解每个步骤 。 购买前请咨询,避免不必要的问题。

✨ 群友反馈 ✨

picture.image

✨ 淘宝店铺 ✨

picture.image

请大家打开淘宝扫描上方的二维码,进入店铺,获取更多Python机器学习和AI相关的内容,或者添加作者微信deep_ML联系 避免淘宝客服漏掉信息 ,希望能为您的学习之路提供帮助!

往期推荐

机器学习在临床数据分析中的应用:从数据预处理到Web应用实现的完整流程教学

期刊配图:基于SHAP算法的驱动因子相互作用贡献矩阵图

因果推断:利用EconML实现双重机器学习估计条件平均处理效应 (CATE)

期刊复现:基于部分线性模型的双重机器学习方法

期刊复现:基于XGBoost模型的网页工具SHAP力图解释单样本预测结果

期刊配图:nature cities通过ALE(累积局部效应)解析特征对模型影响

期刊复现:结合因果推断与SHAP可解释性的机器学习实现应用流程

期刊配图:一区SCI常用数据缺失率展示图可视化

因果推断:注册行为对后续消费影响的因果推断分析案例

nature communications:基于Light GBM与随机森林结合的多模型特征选择方法

因果推断与机器学习结合:探索酒店预订取消的影响因素

picture.image

如果你对类似于这样的文章感兴趣。

欢迎关注、点赞、转发~

个人观点,仅供参考

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论