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

VSole2022-07-29 16:10:43

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

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

  • 如何学习的?
  • 学到了什么?
  • 针对一个特定输入为什么会做出如此决策?
  • 决策是否可靠?

在本文中,我将介绍6个用于可解释性的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

LIME

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

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


使用pip安装

pip install lime

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构建的局部解释交互式图

ELI5

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

  • scikit-learn
  • XGBoost、LightGBM CatBoost
  • Keras

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

  • 检查模型参数并说明模型是如何全局工作的;
  • 检查模型的单个预测并说明什么模型会做出这样的决定。

使用ELI5库生成全局权值

使用ELI5库生成局部权重

OmniXAI

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

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

机器学习python
本作品采用《CC 协议》,转载必须注明作者和本文链接
Python 有其优点和缺点,但它仍然被广泛使用。也是一种风险像所有编程语言一样,Python 会频繁更新。
挖洞一定要去实战,不能只在漏洞环境复现漏洞,实战和环境是不一样的。实战环境的选择:
伴随着5G、大数据、人工智能、物联网等技术的飞速发展,各行各业的业务场景日益复杂,数据呈现出大规模、多样性的特点,特别是非结构化数据呈现出爆发式的增长态势。企业对数据库技术的需求不再局限于结构化的OLTP数据交易,而是需要进一步扩展到对多样化数据进行实时处理的场景。
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。一.RNN文本分类1.RNN循环神经网络英文是Recurrent Neural Networks,简称RNN。假设有一组数据data0、data1、data2、data3,使用同一个神经网络预测它们,得到对应的结果。RNN常用于自然语言处理、机器翻译、语音识别、图像识别等领域。本文将采用词向量、TFIDF两种方式进行实验。
Python人工智能第17篇实现经典得MNIST分类案例
以前他们公司用的方案就是Windows Defender配合微软Azure上的云原生防护服务Sentinel。这是一种云安全防护,由知识图谱和机器学习驱动,用于识别病毒库里没出现过的全新威胁。进入条目并选择启用。下一步是开启勒索软件专项防护。
一.文本分类文本分类旨在对文本集按照一定的分类体系或标准进行自动分类标记,属于一种基于分类体系的自动分类。牛亚峰老师将传统的文本分类流程归纳如下图所示。在传统的文本分类中,基本上大部分机器学习方法都在文本分类领域有所应用。本文将采用词向量、TFIDF两种方式进行实验。
目前机器学习广泛应用于网络流量分析任务,特征提取、模型选择、参数调优等众多因素决定着模型的性能,每当面对不同的网络流量或新的任务,就需要研究人员重新开发模型,这个反复性的过程往往是费时费力的。因此有必要为不同网络流量创建一个通用的表示,可以用于各种不同的模型,跨越广泛的问题类,并将整个建模过程自动化。本文关注通用的自动化网络流量分析问题,致力于使研究人员将更多的精力用于优化模型和特征上,并有更多的
当人工智能遇上安全第7篇文章介绍基于机器学习的安全数据集,希望对您有帮助
VSole
网络安全专家