✨ 欢迎关注Python机器学习AI ✨
本节介绍: 两个输入变量共同作用对模型的影响:3D偏依赖图(PDP)与ALE图 。数据采用模拟数据,作者根据个人对机器学习的理解进行代码实现与图表输出,细节并不保证与原文一定相同,仅供参考。 完整 数据和代码、文献将在稍后上传至交流群,付费成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。 购买前请咨询,避免不必要的问题。
✨ 文献信息 ✨
该文献配图使用 三维偏依赖图 (3D Partial Dependence Plots) 来可视化不同 成对输入变量 (如半纤维素含量HEC、最高处理温度HTT等)之间的 交互作用 如何共同影响目标产物(如产率)的预测值,旨在揭示关键工艺参数组合对结果的影响模式
接下来,我们将在模拟数据集上进行相应的复现,以更直观地理解其构建过程;但鉴于偏依赖图(PDP)对多重共线性较为敏感,若多个自变量(特征)之间高度相关,可能导致其估计结果产生偏差和不稳定性,因此我们也将一并展示同样形式的三维累积局部效应图(ALE图),作为对PDP结果的补充和稳健性验证
✨ 模拟实现 ✨
该模拟可视化展示了两个特征sqft_living和sqft_lot对模型预测影响的两种不同解释方法
左图为三维偏依赖图 (3D PDP)。其X轴表示sqft_living(居住面积),Y轴表示sqft_lot(地块面积)。Z轴(以及颜色映射条)代表的是偏依赖值 (Partial dependence),显示当sqft_living和sqft_lot取特定组合值时,模型对目标变量的平均预测值
右图为三维累积局部效应图(3D ALE)。其X轴和Y轴与左图相同,分别代表sqft_living和sqft_lot。然而,其 Z 轴(以及颜色映射条)代表的是对预测的影响 (Effect on prediction)。这表示的是,在特定的sqft_living和sqft_lot组合下,模型预测值相对于平均预测值的变化量或偏差, 正值表示该特征组合使预测增加,负值表示减少
关键区别在于 Z 轴的含义 :PDP 显示的是预测值的绝对水平,而 ALE 显示的是特征对预测值的相对影响或贡献,已经剔除了平均效应。因此,解读时务必注意,两者颜色映射条所代表的数值含义是完全不同的,不能混淆
✨ 基础代码 ✨
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-5-20公众号Python机器学习AI.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.ensemble import RandomForestRegressor
# 构建默认的随机森林回归模型
rf_model = RandomForestRegressor(random_state=42)
# 训练模型
rf_model.fit(X_train, y_train)
from sklearn.inspection import PartialDependenceDisplay
# 选择两个特征绘制2D PDP
features = ['sqft_living', 'sqft_lot']
# 使用 contour_kw 参数绘制2D PDP
fig, ax = plt.subplots(figsize=(10, 6), dpi=1200)
PartialDependenceDisplay.from_estimator(
rf_model,
X_test,
features=[features],
kind='average',
grid_resolution=100,
contour_kw={'cmap': 'viridis', 'alpha': 0.8},
ax=ax
)
plt.savefig("2.pdf", format='pdf',bbox_inches='tight', dpi=1200)
plt.show()
加载数据训练一个随机森林回归模型,然后对sqft_living和sqft_lot这两个特征,生成并显示一二维等高线偏依赖图,该图展示了这两个特征不同取值组合下模型对目标变量log_price的平均预测值
from PyALE import ale
ale_eff = ale(X=X_test, model=rf_model, feature=["sqft_lot", "sqft_living"], grid_size=100)
plt.savefig("1.pdf", format='pdf',bbox_inches='tight',dpi=1200)
使用PyALE库计算并显示特征sqft_lot和sqft_living对先前训练的随机森林模型rf_model预测的二维累积局部效应(2D ALE)
✨ 该文章案例 ✨
在上传至交流群的文件中,像往期文章一样,将对案例进行逐步分析,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。
同时,结合提供的免费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与随机森林结合的多模型特征选择方法
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考