什么是 Shapash

模型可解释性和可理解性一直是许多研究论文和开源项目的关注的重点。并且很多项目中都配备了数据专家和训练有素的专业人员。Shapash 是一个 Python 库,用于描述 AI 模型的动态交互。它希望通过使 AI 模型更加直观,让使用者更加相信模型。Shapash 对全局和局部合理性进行了直接的可视化。

Shapash 适用于大多数 sklearn、lightgbm、xgboost、catboost 模型,并可用于分类和回归任务。它利用 Shap 后端来计算特征的局部贡献度,但是,这可以用其他一些计算局部贡献度的策略代替。数据科学家可以利用 Shapash 解释器对他们的模型进行调查和故障排除,或者部署以提供每个推测的可视化。并且它还可以用于制作可以为最终客户和企业家带来巨大价值的 Web 应用程序。

shabash 库

Shapash的目标

01 显示清晰合理的结果

绘图和输出使用每个组件及其模式的标签:

02 Web 应用程序

数据科学家可以通过使用 Web 应用程序轻松探索全局和局部邻域之间的逻辑,从而快速理解他们的模型,并了解各种关键点如何发挥作用:

shapash 库 webapp

03 总结并导出解释

Shapash 提出了一个简短而清晰的解释。它允许每个客户(无论他们的背景是什么),都能理解对托管模型清晰的解释,因为对 Shapash 特征进行了总结和清晰的说明。

04 完整的数据科学报告

这里有完整的数据报告可以查看:https://shapash-demo.ossbymaif.fr/

Shapash 功能

Shapash 的一些功能如下所示:

  1. 机器学习模型:它适用于分类(二元或多类问题)和回归问题。它支持多种模型,如 Catboost、Xgboost、LightGBM、Sklearn Ensemble、线性模型和 SVM。

  2. 特征编码:它支持大量的编码技术来处理我们数据集中的分类特征,如单热编码、序数编码、Base N 编码、目标编码或二进制编码等。

  3. SklearnColumnTransformer: OneHotEncoder、OrdinalEncoder、StandardScaler、QuantileTransformer 或 PowerTransformer

  4. 可视化: 提供一组视觉效果以轻松解释你的结果,并显示可理解和清晰的结果。

  5. 它与 Lime 和 Shap 兼容。它使用 Shap 后端只需几行代码即可显示结果。

  6. 它为参数提供了许多选项,以简洁地获得结果。

  7. Shapash 安装简单和使用方便: 它提供了一个 SmartExplainer 类来理解你的模型并用简单的语法总结澄清。

  8. 部署: 对于操作使用的调查和部署(通过 API 或批处理模式)很重要。轻松创建 Web 应用程序以从全局导航到本地。

  9. 高度通用性: 要显示结果,需要进行非常多次的争论。但如果你在清理和归档数据方面做得越多,最终客户得到的结果就越清楚。

Shapash 如何工作

Shapash 是一个使机器学习易于理解和解释的Python库。数据爱好者可以轻松理解并分享他们的模型。Shapash 使用 LimeShap 作为后端,只需几行代码即可显示结果。Shapash 依赖于构建机器学习模型以使结果合理的各种重要进展。下图显示了 shapash 包的工作流程:

Shapash 是如何工作的

工作原理

  1. 首先,它编译每个步骤的元素,如数据准备、特征工程、模型拟合、模型评估和模型理解。

  2. 其次,它提供了一个 WebApp 和图表来更好地理解模型。可以与客户分享和讨论模型的结果。

  3. 最后,它为您提供了可解释性的摘要。

安装

可以使用以下代码安装 Shapash:

pip install shapash

对于 Jupyter Notebook: 如果你正在使用 jupyter notebook 并且想要查看内联图,那么你需要使用另一个命令:

pip install ipywidgets

入门

在这里我们将使用数据集房价预测来探索 Shapash 。这是一个回归问题,我们必须预测房价。数据集的链获取方法:在公众号『机器学习研习院』后台回复 【shapash】。首先我们分析数据集,包括单变量和双变量分析,然后使用特征重要性、特征贡献、局部和比较图对可解释性建模,然后是模型性能,最后是 WebApp。

分析数据集

单变量分析

使用可以查看下图,了解名为First Floor Square Feet的要素。我们可以看到一个表格,其中显示了我们的训练和测试数据集的多种统计数据,例如平均值、最大值、最小值、标准偏差、中位数等等。在右侧图中可以看到训练和测试数据集的分布图。Shapash 还提到了我们的特征是分类的还是数字的,它还提供了下拉选项,在下拉菜单中所有功能都可用。

单变量分析

对于分类特征,训练和测试数据集显示了非重复值和缺失值。在右侧,显示了一个条形图,其中显示了各要素中相应类别的百分比。

特征中的类别

目标分析

还可以看到对名为 Sales Price 的目标变量的详细分析。在左侧,显示了所有统计数据,如计数、平均值、标准差、最小值、最大值、中位数等,用于训练和预测数据集。在右侧,显示了训练和预测数据集的分布。

目标分析

多元变量分析

上面我们 详细讨论了单变量分析。在本节中,我们将看到多元分析。下图显示了训练和测试数据集的前 20 个特征的相关矩阵。还根据不同的颜色显示了相关性标度。这就是我们如何使用 Shapash 可视化特征之间的关系。

多元分析

模型可解释性

特征重要性图

通过使用这个库,我们可以看到该特征的重要性。特征重要性是一种寻找输入特征在预测输出值中的重要性的方法。下图显示了特征重要性曲线:

特征重要性图

特征贡献图

这些曲线帮助我们回答诸如特征如何影响我的预测、它的贡献是积极的还是消极的等等。这个图完成了模型的可解释性的重要性,模型的整体一致性更有可能理解特征对模型的影响。

我们可以看到数值和分类特征的贡献图。

对于数值特征

征贡献图

对于分类特征

对于分类特征

局部图

我们可以绘制局部图。下图显示了局部图:

局部图

比较图

我们可以绘制比较图。下图显示了比较图:

比较图

模型性能

在数据分析之后,我们正在训练机器学习模型。下图显示了我们预测的输出。在左侧,显示了真实值和预测值的统计数据,如计数、最小值、最大值、中值、标准偏差等。在右侧,显示了预测值和实际值的分布。

模型性能

WebApp

经过模型训练后,我们也可以构建一个WebApp。这个网络应用程序显示了我们数据的完整仪表板,包括我们迄今为止所涵盖的内容。下图显示了仪表板。

WebApp

项目地址:https://github.com/MAIF/shapash

写作最后

本篇文章简单介绍了shapash 的基本功能及绘图展示,相信大家对该python库有一定的认识。如果你还没有阅读过有关机器学习模型可解释性的shap的相关介绍,可以参阅如下两篇文章:
用 SHAP 可视化解释机器学习模型实用指南(上)
用 SHAP 可视化解释机器学习模型实用指南(下)

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群955171419,加入微信群请扫码:

【机器学习】机器学习模型解释神器:Shapash相关推荐

  1. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  2. R语言机器学习mlr3:模型解释

    获取更多R语言和生信知识,请欢迎关注公众号:医学和生信笔记 医学和生信笔记 公众号主要分享:1.医学小知识.肛肠科小知识:2.R语言和Python相关的数据分析.可视化.机器学习等:3.生物信息学学习 ...

  3. SHAP | 机器学习模型解释库

    来源:大邓和他的Python SHAP机器学习模型解释库 想象一下,你正试图训练一个机器学习模型来预测广告是否被特定的人点击.在收到关于某人的一些信息后,模型预测某人会不会点击广告. 但是为什么模型会 ...

  4. r语言 tunerf_R语言机器学习:caret包使用及其黑箱模型解释(连续变量预测)

    原标题:R语言机器学习:caret包使用及其黑箱模型解释(连续变量预测) 作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘.社交网络分析和机器学习等.希望与大家分享学习经验,推广并加深R语言在业界 ...

  5. 【机器学习】SHAP- 机器学习模型解释可视化工具

    SHAP 是机器学习模型解释可视化工具.在此示例中,使用 SHAP 计算使用 Python 和 scikit-learn 的神经网络的特征影响 .对于这个例子,使用 scikit-learn 的 糖尿 ...

  6. 机器学习项目实战:基于随机森林进行心脏病分类(含多种模型解释方法)

      本项目是Kaggle上面的一个经典竞赛题,心脏病分类问题,题目链接在这里. 主要基于随机森林的bagging集成学习框架,通过13个生理特征数据,实现对心脏病分类的预测.   由于自己想要在这个项 ...

  7. 报名 | AI Time:“ 论道自动机器学习与可解释机器学习”

    深度学习在各个领域取得了骄人的成绩,基本是舍我其谁了.之前还存在如何调参.如何选架构的问题,最近随着自动机器学习(AutoML)的快速发展,Neural architecture search(NAS ...

  8. 机器学习之模型——保存与加载

    机器学习之模型--保存与加载 知识点 fit() transform() fit_transform() 目的 API 流程 获取数据 划分数据集 标准化 预估器 保存模型 加载模型 得出模型 模型评 ...

  9. 机器学习常用模型:决策树_fairmodels:让我们与有偏见的机器学习模型作斗争

    机器学习常用模型:决策树 TL; DR (TL;DR) The R Package fairmodels facilitates bias detection through model visual ...

最新文章

  1. 如何linux中文改为英文,CentOS系统如何将中文语言改成英文
  2. OpenGL ES之GLSL实现仿抖音“灰度滤镜”和“颠倒滤镜”效果
  3. pdf 中添加文章操作
  4. [SQL基础教程]1-4 SQL 表的创建
  5. Oracle中去重复记录 不用distinct
  6. 表单验证的初步实现和省市级联
  7. [家里蹲大学数学杂志]第387期一套实变函数期末试题参考解答
  8. 关于nutz跨服务器上传文件
  9. bzoj2631:tree
  10. java的scjp考试_Sun认证Java程序员(SCJP)考试
  11. HTMLifier将scratch游戏打包为html文件
  12. 你真的搞懂Class,class了么?
  13. 微分方程和线性代数(先理解一阶微分形式不变性)
  14. 乐高机器人走进图书馆活动方案_乐高机器人制作~~乐高大派对
  15. Ethercat远程IO模块接线准则
  16. Dialog屏蔽Esc按键
  17. 计算几何VS解析几何
  18. Oracle实现使用时间函数实现输出“上午好/下午好”
  19. 柴达木盆地第四大气区探实 尖北产量超亿方
  20. 用python做飞机大战打到不同部位扣分不同_python制作飞机大战需要哪些python术语...

热门文章

  1. 初接触php,遇到一个低级问题
  2. Codeforces732D Exams
  3. Spring+Ibatis集成开发实例
  4. 变量的生存期和存储分配
  5. nginx 中location中root和alias的区别
  6. Base64编码算法
  7. ADO.NET数据绑定 DataTabele
  8. postman+newman+jenkins环境部署
  9. 关于cookie 跨页面处理
  10. vc6.0转vs2005中字符串的问题