加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

如何解决机器学习树集成模型的解释性问题

发布时间:2019-10-26 01:16:26 所属栏目:经验 来源:SAMshare
导读:【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 01 机器学习模型不可解释的原因 前些天在同行交流群里,有个话题一直在群里热烈地讨论,那就是 如何解释机器学习模型 ,因为在风控领域,一个模型如果不能得到很好的解释一般都不会被通过

这个数据集有这些特征:'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT'

  1. # visualize the training set predictions  
  2. shap.force_plot(explainer.expected_value, shap_values, X) 

output:

如何解决机器学习树集成模型的解释性问题

上图可以看出每个特征之间的相互作用(输出图是可以交互的)。

但是为了理解单个特性如何影响模型的输出,我们可以将该特性的SHAP值与数据集中所有示例的特性值进行比较。由于SHAP值代表了模型输出中的一个特性的变化,下面的图代表了预测的房价随着RM(一个区域中每栋房子的平均房间数)的变化而变化的情况。

单一RM值的垂直色散表示与其他特征的相互作用。要帮助揭示这些交互依赖关系,dependence_plot 自动选择 另一个特征来着色。比如使用RAD着色,突显了RM(每户平均房数)对RAD的值较高地区的房价影响较小。

  1. """创建一个SHAP图用于展示 单一特征在整个数据集的表现情况,每个点代表一个样本"""  
  2. shap.dependence_plot("RM", shap_values, X) 

output:

如何解决机器学习树集成模型的解释性问题

为了得到整体水平上每个特征的重要度情况,我们可以画出所有特征对于所有sample的SHAP值,然后根据SHAP值之和来降序排序,颜色代表特征重要度(红色代表高,蓝色代表低),每个点代表一个样本。

  1. """画出所有特征的重要度排序图"""  
  2. shap.summary_plot(shap_values, X) 

output:

如何解决机器学习树集成模型的解释性问题

我们也可以只是显示SHAP值的所有样本的均值,画出bar图。

  1. shap.summary_plot(shap_values, X, plot_type="bar") 

output:

References

[1] A Unified Approach to Interpreting Model Predictions

http://papers.nips.cc/paper/7...

[2] Consistent Individualized Feature Attribution for Tree Ensembles

https://arxiv.org/pdf/1802.03...

[3] Interpretable Machine Learning

https://christophm.github.io/...

[4] shap 官方文档

https://github.com/slundberg/...

本文由博客一文多发平台 OpenWrite 发布!

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读