前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习模型可解释性进行到底 ——PDP&ICE图(三)

机器学习模型可解释性进行到底 ——PDP&ICE图(三)

作者头像
悟乙己
发布2021-12-07 14:58:58
3K0
发布2021-12-07 14:58:58
举报
文章被收录于专栏:素质云笔记素质云笔记

文章目录

1 部分依赖图(Partial Dependence Plot)

1.1 理论解读

参考:「AI黑箱探测」事后模型归因解析Part 1

部分依赖图简称PDP图,能够展现出一个或两个特征变量对模型预测结果影响的函数关系:近似线性关系、单调关系或者更复杂的关系。

单一变量PDP图的具体实施步骤如下:

  • 挑选一个我们感兴趣的特征变量,并定义搜索网格;
  • 将搜索网格中的每一个数值代入上述PDP函数中的X_s,使用黑箱模型进行预测,并将得到的预测值取平均;
  • 画出特征变量的不同取值与预测值之间的关系,该图即为部分依赖图。

以比特币数据集为例,我们使用PDP方法对Xgboost模型结果进行解析。下图刻画的是单变量“区块大小”与比特币价格之间的函数关系。这是一个典型的非线性关系:当“区块大小”在12000-15000范围内增长时,比特币价格逐渐上涨;随着“区块大小”的进一步增长,会对比特币价格产生负向影响,直到区块大小高于20000时,又会对比特币价格产生正向影响。

在这里插入图片描述
在这里插入图片描述

PDP图的优点在于易实施,缺点在于不能反映特征变量本身的分布情况,且拥有苛刻的假设条件——变量之间严格独立。若变量之间存在相关关系,会导致计算过程中产生过多的无效样本,估计出的值比实际偏高。另一个缺点是样本整体的非均匀效应(Heterogeneous effect):PDP只能反映特征变量的平均水平,忽视了数据异质对结果产生的影响。

1.2 如何根据PDP 进行特征筛选

PDP, ICE: 模型可视化技术之一

特征选择:

  • 当某个特征的PDP曲线几乎水平或者无规律抖动的时候, 这个特征可能是无用的特征.
  • 当某个特征的PDP曲线非常陡峭的时候, 说明这个特征的贡献度是比较大的.

2 个体条件期望图(Individual Conditional Expectation Plot)

参考:「AI黑箱探测」事后模型归因解析Part 1

个体条件期望图(ICE Plot)计算方法与PDP类似,它刻画的是每个个体的预测值与单一变量之间的关系。个体条件期望图消除了非均匀效应的影响,它的原理和实现方法如下:对某一个体,保持其他变量不变,随机置换我们选定的特征变量的取值,放入黑箱模型输出预测结果,最后绘制出针对这个个体的单一特征变量与预测值之间的关系图。

继续以上述比特币数据为例,下图反映的是“区块大小”对比特币价格影响的ICE图,其中浅蓝色线反映的是每个个体的条件期望图,深蓝色线反映所有个体的平均水平。从图中可看出所有个体并不一定遵循相同的变化趋势,因此相较于PDP的一概而论,ICE图能够更准确地反映特征变量与目标之间的关系。

在这里插入图片描述
在这里插入图片描述

ICE图的优点在于易于理解,能够避免数据异质的问题。在ICE图提出之后,人们又提出了衍生ICE图,能够进一步检测变量之间的交互关系并在ICE图中反映出来。

ICE图的缺点在于只能反映单一特征变量与目标之间的关系,仍然受制于变量独立假设的要求,同时ICE图像往往由于个体过多导致图像看起来过于冗杂,不容易获取解释信息。

3 sklearn 0.24+实现:PDP&ICE图

sklearn 0.24版本有更新两个图的画法,可参考:Partial Dependence and Individual Conditional Expectation Plots

3.1 部分依赖图(Partial Dependence Plot)

代码语言:javascript
复制
print('Computing partial dependence plots...')
tic = time()
features = ['MedInc', 'AveOccup', 'HouseAge', 'AveRooms']
display = plot_partial_dependence(
       est, X_train, features, kind="average", subsample=50,
       n_jobs=3, grid_resolution=20, random_state=0
)
# average / individual 

print(f"done in {time() - tic:.3f}s")
display.figure_.suptitle(
    'Partial Dependence Plot\n'
)
display.figure_.subplots_adjust(hspace=0.3)
在这里插入图片描述
在这里插入图片描述

3.2 二维-部分依赖图(Partial Dependence Plot)

代码语言:javascript
复制
features = ['AveOccup', 'HouseAge', ('AveOccup', 'HouseAge')]
print('Computing partial dependence plots...')
tic = time()
_, ax = plt.subplots(ncols=3, figsize=(9, 4))
display = plot_partial_dependence(
    est, X_train, features, kind='average', n_jobs=3, grid_resolution=20,
    ax=ax,
)
print(f"done in {time() - tic:.3f}s")
display.figure_.suptitle(
    'Partial dependence of house value on non-location features\n'
    'for the California housing dataset, with Gradient Boosting'
)
display.figure_.subplots_adjust(wspace=0.4, hspace=0.3)
在这里插入图片描述
在这里插入图片描述

3.3 Individual Conditional Expectation Plot

个体条件期望图(Individual Conditional Expectation Plot)

代码语言:javascript
复制
print('Computing partial dependence plots...')
tic = time()
features = ['MedInc', 'AveOccup', 'HouseAge', 'AveRooms']
display = plot_partial_dependence(
       est, X_train, features, kind="individual", subsample=50,
       n_jobs=3, grid_resolution=20, random_state=0
)
# average / individual 

print(f"done in {time() - tic:.3f}s")
display.figure_.suptitle(
    'Individual Conditional Expectation Plot\n'
)
display.figure_.subplots_adjust(hspace=0.3)
在这里插入图片描述
在这里插入图片描述

3.4 both:PDP + ICE

代码语言:javascript
复制
# both = PDP + ICE
print('Computing partial dependence plots...')
tic = time()
features = ['MedInc', 'AveOccup', 'HouseAge', 'AveRooms']
display = plot_partial_dependence(
       est, X_train, features, kind="both", subsample=50,
       n_jobs=3, grid_resolution=20, random_state=0
)
# average / individual 

print(f"done in {time() - tic:.3f}s")
display.figure_.suptitle(
    'Individual Conditional Expectation Plot\n'
)
display.figure_.subplots_adjust(hspace=0.3)
在这里插入图片描述
在这里插入图片描述

其中,深色的是PDP,浅色的是ICE的样本

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1 部分依赖图(Partial Dependence Plot)
    • 1.1 理论解读
      • 1.2 如何根据PDP 进行特征筛选
      • 2 个体条件期望图(Individual Conditional Expectation Plot)
      • 3 sklearn 0.24+实现:PDP&ICE图
        • 3.1 部分依赖图(Partial Dependence Plot)
          • 3.2 二维-部分依赖图(Partial Dependence Plot)
            • 3.3 Individual Conditional Expectation Plot
              • 3.4 both:PDP + ICE
              相关产品与服务
              区块链
              云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档