您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

6个顶级的可解释AI (XAI)的Python框架推荐

时间:2022-07-29 11:46:01  来源:  作者:Moez Ali

随着人工智能的发展为了解决具有挑战性的问题,人们创造了更复杂、更不透明的模型。AI就像一个黑匣子,能自己做出决定,但是人们并不清楚其中缘由。建立一个AI模型,输入数据,然后再输出结果,但有一个问题就是我们不能解释AI为何会得出这样的结论。需要了解AI如何得出某个结论背后的原因,而不是仅仅接受一个在没有上下文或解释的情况下输出的结果。


 

可解释性旨在帮助人们理解:

· 如何学习的?

· 学到了什么?

· 针对一个特定输入为什么会做出如此决策?

· 决策是否可靠?

在本文中,我将介绍6个用于可解释性的Python/ target=_blank class=infotextkey>Python框架

 

SHAP

 

SHapley Additive explanation (SHapley Additive explanation)是一种解释任何机器学习模型输出的博弈论方法。它利用博弈论中的经典Shapley值及其相关扩展将最优信贷分配与局部解释联系起来(详见论文的细节和引用)。

数据集中每个特征对模型预测的贡献由Shapley值解释。Lundberg和Lee的SHAP算法最初发表于2017年,这个算法被社区在许多不同的领域广泛采用。


 

使用pip或conda安装shap库。

# install with pip
pip install shap
# install with conda
conda install -c conda-forge shap


 

使用Shap库构建瀑布图


 

使用Shap库构建Beeswarm图


 

使用Shap库构建部分依赖图

 

LIME

 

在可解释性领域,最早出名的方法之一是LIME。 它可以帮助解释机器学习模型正在学习什么以及为什么他们以某种方式预测。 Lime目前支持对表格的数据,文本分类器和图像分类器的解释。

知道为什么模型会以这种方式进行预测对于调整算法是至关重要的。借助LIME的解释,能够理解为什么模型以这种方式运行。如果模型没有按照计划运行,那么很可能在数据准备阶段就犯了错误。


 

使用pip安装

pip install lime


 

LIME 构建的局部解释图


 

LIME构建的Beeswarm 图

 

Shapash

 

“ Shapash是一个使机器学习对每个人都可以进行解释和理解Python库。 Shapash提供了几种类型的可视化,显示了每个人都能理解的明确标签。 数据科学家可以更轻松地理解他们的模型并分享结果。 最终用户可以使用最标准的摘要来理解模型是如何做出判断的。”

为了表达数据中包含故事、见解和模型的发现,互动性和漂亮的图表必不可少。 业务和数据科学家/分析师向AI/ML结果展示和互动的最佳方法是将其可视化并且放到web中。Shapash库可以生成交互式仪表盘,并收集了许多可视化图表。与外形/石灰解释性有关。 它可以使用SHAP/Lime作为后端,也就是说他只提供了更好看的图表。


 

使用Shapash构建特征贡献图


 

使用Shapash库创建的交互式仪表板


 

使用Shapash构建的局部解释图

 

InterpretML

 

InterpretML是一个开源的Python包,它向研究人员提供机器学习可解释性算法。InterpretML支持训练可解释模型(glassbox),以及解释现有的ML管道(blackbox)。

InterpretML展示了两种类型的可解释性:glassbox模型——为可解释性设计的机器学习模型(如:线性模型、规则列表、广义可加模型)和黑箱可解释性技术——用于解释现有系统(如:部分依赖,LIME)。使用统一的API并封装多种方法,拥有内置的、可扩展的可视化平台,该包使研究人员能够轻松地比较可解释性算法。InterpretML还包括了explanation Boosting machine的第一个实现,这是一个强大的、可解释的、glassbox模型,可以像许多黑箱模型一样精确。


 

使用InterpretML构建的局部解释交互式图


 

使用InterpretML构建的全局解释图

 

ELI5

 

ELI5是一个可以帮助调试机器学习分类器并解释它们的预测的Python库。目前支持以下机器学习框架:

· scikit-learn

· XGBoost、LightGBM CatBoost

· Keras

ELI5有两种主要的方法来解释分类或回归模型:

· 检查模型参数并说明模型是如何全局工作的;

· 检查模型的单个预测并说明什么模型会做出这样的决定。


 

使用ELI5库生成全局权值


 

使用ELI5库生成局部权重

 

OmniXAI

 

OmniXAI (Omni explained AI的简称),是Salesforce最近开发并开源的Python库。它提供全方位可解释的人工智能和可解释的机器学习能力来解决实践中机器学习模型在产生中需要判断的几个问题。对于需要在ML过程的各个阶段解释各种类型的数据、模型和解释技术的数据科学家、ML研究人员,OmniXAI希望提供一个一站式的综合库,使可解释的AI变得简单。


 

以下是OmniXAI提供的与其他类似库的对比


 

https://avoid.overfit.cn/post/1d08a70ed36a41a481d9f2a66b01971a

作者:Moez Ali

最后,下面是这6个框架的官方地址:

https://shap.readthedocs.io/en/latest/index.html

https://Github.com/marcotcr/lime

https://shapash.readthedocs.io/en/latest/

https://interpret.ml/

https://eli5.readthedocs.io/

https://github.com/salesforce/OmniXAI

作者:Moez Ali

编辑:黄继彦



Tags:Python框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Python框架怎么选?5 款主流 Web 框架对比
Web 开发框架多如牛毛,本文好学编程仅选择了几个主要流行的框架进行了介绍,后续我会再分享其他好用、高效的 Web 框架。欢迎关注。在进行 Web 开发时,选择合适的框架是一个关键...【详细内容】
2023-12-27  Search: Python框架  点击:(107)  评论:(0)  加入收藏
6个顶级的可解释AI (XAI)的Python框架推荐
随着人工智能的发展为了解决具有挑战性的问题,人们创造了更复杂、更不透明的模型。AI就像一个黑匣子,能自己做出决定,但是人们并不清楚其中缘由。建立一个AI模型,输入数据,然后再...【详细内容】
2022-07-29  Search: Python框架  点击:(310)  评论:(0)  加入收藏
5个顶级异步Python框架
https://geekflare.com/python-asynchronous-web-frameworks/大家好,欢迎来到 Crossin的编程教室 !Python在3.4引入了 asyncio 库,3.6新增了关键字async和await,此后,异步框架迅...【详细内容】
2022-02-21  Search: Python框架  点击:(210)  评论:(0)  加入收藏
今年很火的五大Python框架
web框架是什么?web开发框架是一组工具,同时也提供了非常多的资源,供软件开发人员构建和管理网站、提供web服务、编写web应用程序。它是一个抽象工具,能使开发应用程序和重复使用...【详细内容】
2019-09-16  Search: Python框架  点击:(640)  评论:(0)  加入收藏
▌简易百科推荐
Qt与Flutter:在跨平台UI框架中哪个更受欢迎?
在跨平台UI框架领域,Qt和Flutter是两个备受瞩目的选择。它们各自具有独特的优势,也各自有着广泛的应用场景。本文将对Qt和Flutter进行详细的比较,以探讨在跨平台UI框架中哪个更...【详细内容】
2024-04-12  刘长伟    Tags:UI框架   点击:(7)  评论:(0)  加入收藏
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(11)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(23)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(62)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(52)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(43)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(58)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(72)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(95)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(91)  评论:(0)  加入收藏
站内最新
站内热门
站内头条