pdp部分依赖图

目录

一、作用

二、存在的问题

三、代码

3.1 单特征对预测结果的边际效应

3.2 两个特征对预测结果的边际效应


一、作用

【定义一】:部分依赖图(Partial Dependence Plot)显示了一个或两个特征对机器学习模型的预测结果的边际效应

【定义二】通过改变感兴趣特征的值同时保持补充特征的值不变,分析模型输出,从而计算特征变量对模型预测结果影响的函数关系:例如近似线性关系、单调关系或者更复杂的关系。

二、存在的问题

  • 自变量间可能存在复杂的交互关系,所以单看一个变量的pdp图是不全面的
  • pdp图不显示特征分布,这可能会产生误导,因为可能会过度解释几乎没有数据的区域
  • pdp假设计算部分依赖的特征与其他特征不相关,如果相关,pdp图会包含不可能的点
  • pdp绘制的是平均响应,个体间的异质性可能无法被观察到;即有可能个体间的变化差异明显。(个体间的变化差异通过个体条件期望(Individual Conditional Expectation,ICE)曲线观察
  • 由于算法的精度和难以避免的过拟合,pdp图可能存在较小的波动,而解释性研究更加关注整体的变化趋势。

三、代码

def partial_dependence(
        ind,  //目标特征
        model,  //预测函数model.predict
        data,  //数据集
        xmin="percentile(0)",
        xmax="percentile(100)",
        npoints=None, 
        feature_names=None, 
        hist=True, 
        model_expected_value=False, //平均模型预测
        feature_expected_value=False, //平均特征值
        shap_values=None,
        ylabel=None, 
        ice=True,  //是否制作部份依赖图或个体条件期望图
        ace_opacity=1, 
        pd_opacity=1, 
        pd_linewidth=2,
        ace_linewidth='auto', 
        ax=None, 
        show=True)

补充说明:model_expected_value,feature_expected_value

3.1 单特征对预测结果的边际效应

from sklearn.datasets import fetch_california_housing
from sklearn.ensemble import RandomForestRegressor
X, y = fetch_california_housing(return_X_y=True, as_frame=True)
model = RandomForestRegressor(random_state=42).fit(X, y)
X100 = X.sample(n=100)

from shap.plots._partial_dependence import partial_dependence
partial_dependence(ind="AveOccup", model=model.predict, data=X100, ice=False, model_expected_value=True, feature_expected_value=True)
partial_dependence(ind="MedInc", model=model.predict, data=X100, ice=False, model_expected_value=True, feature_expected_value=True)

 

partial_dependence(ind="AveOccup", model=model.predict, data=X100, ice=True, model_expected_value=True, feature_expected_value=True)
partial_dependence(ind="MedInc", model=model.predict, data=X100, ice=True, model_expected_value=True, feature_expected_value=True)

3.2 两个特征对预测结果的边际效应

 pip install plotly_express

import plotly_express as px
fig = px.scatter(x=X["AveOccup"], y=X["MedInc"], color=y,labels={"x": "AveOccup", "y": "MedInc", "color": "price"},range_x=(0, 10))
fig.write_image('./1.png')
fig.show()

【参考资料】

  1. 8.1 Partial Dependence Plot (PDP) | Interpretable Machine Learning
  2. 科研中的部分依赖图(pdp)绘制 - 知乎
  3. 4.1. Partial Dependence and Individual Conditional Expectation plots — scikit-learn 1.1.3 documentation
  4. https://www.toutiao.com/article/7076250560642515467/?app=news_article&timestamp=1667365264&use_new_style=1&req_id=202211021301040101511830281138B758&group_id=7076250560642515467&wxshare_count=1&tt_from=weixin&utm_source=weixin&utm_medium=toutiao_android&utm_campaign=client_share&share_token=52f690e2-4a1d-4ecb-a4c9-66974484cac5&source=m_redirect

### 回答1: plot_partial_dependence是Python中的一个函数,用于绘制偏依赖图。它的参数包括模型、特征、特征索引、目标类别、网格数量、网格范围等。通过调整这些参数,可以绘制出不同的偏依赖图,帮助我们更好地理解模型的特征重要性和预测结果。 ### 回答2: plot_partial_dependence是一个函数参数,用于绘制偏依赖图。偏依赖图是一种可视化工具,用于描述机器学习模型中特定特征对预测结果的影响程度。 在sklearn中,plot_partial_dependence函数用于绘制偏依赖图。它接受以下参数: - estimator:一个训练好的机器学习模型,如分类器或回归器。 - X:特征矩阵,表示用于预测的特征值。 - features:要绘制偏依赖图的特征索引列表。 - feature_names:特征的名称列表,用于标记坐标轴。 - target:目标类的索引,仅适用于多类分类问题。 - ax:用于绘制图形的轴对象。 plot_partial_dependence函数会根据给定的特征索引和特征值,在给定的模型上计算并绘制偏依赖图。偏依赖图展示了特征对预测结果的影响程度,通常以二维图形的形式呈现。 通过绘制偏依赖图,我们可以更好地理解特征与预测结果之间的关系。例如,对于一个回归模型,我们可以通过绘制某个特征的偏依赖图,来观察该特征值变化时预测结果的变化情况。这有助于我们理解特征对模型预测的贡献。 总之,plot_partial_dependence参数是用于绘制偏依赖图的函数参数,可以通过可视化特征与预测结果之间的关系来帮助我们理解机器学习模型的特征重要性。 ### 回答3: plot_partial_dependence是Matplotlib的一个函数,用于可视化机器学习模型的偏依赖关系。它通常与sklearn中的partial_dependence函数一起使用。 partial_dependence函数用于计算给定模型的特征的偏依赖关系。偏依赖关系描述了模型对于一个或多个特征的响应的变化情况。然后,plot_partial_dependence函数可以使用这些偏依赖关系来创建一个可视化图表。 plot_partial_dependence函数通过绘制给定特征对于预测响应的影响的图表来帮助我们理解模型是如何利用特征的。它可以绘制出特征与响应之间的关系图,展示特征对于模型预测的重要性和影响程度。 使用plot_partial_dependence时,我们需要指定模型、要分析的特征和要观察的观测值。函数将生成一个图表,其中 x 轴代表特征的取值范围,y 轴代表模型的响应。此外,函数还可以绘制出置信区间,以反映预测的可靠性。 通过观察生成的图表,我们可以更好地理解模型如何使用特征进行预测。我们可以直观地看到特征与模型响应的关系,从而可以获得有关特征对模型输出的影响程度的洞察。这有助于我们了解模型的复杂性和特征的重要性,并帮助我们进行特征选择和模型优化。 总之,plot_partial_dependence函数是一个强大的工具,可以帮助我们可视化机器学习模型的偏依赖关系,从而更好地理解模型如何利用特征进行预测。通过其图表可以获得对特征的重要性和影响程度的直观认识,为模型优化和解释提供有价值的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值