Alibi 是一个旨在机器学习模型检查和解释的 Python 库。该库的重点是为分类和回归模型提供黑盒、白盒、局部和全局解释方法的高质量实现。
如果您对异常值检测、概念漂移或对抗性实例检测感兴趣,请查看我们的姐妹项目 alibi-detect。
图像的锚点解释 | 文本的综合渐变 |
反事实例子 | 累积局部效应 |
Alibi 可以从以下位置安装:
pip
)conda
/ mamba
)Alibi 可以从 PyPI 安装:
pip install alibi
或者,可以安装开发版本:
pip install git+https://github.com/SeldonIO/alibi.git
要利用解释的分布式计算,请使用ray
安装alibi
:
pip install alibi[ray]
对于 SHAP 支持,请按如下方式安装alibi
:
pip install alibi[shap]
要从 conda-forge 安装,建议使用 mamba,可以使用以下命令将其安装到基础conda 环境:
conda install mamba -n base -c conda-forge
对于标准 Alibi 安装:
mamba install -c conda-forge alibi
对于分布式计算支持:
mamba install -c conda-forge alibi ray
对于 SHAP 支持:
mamba install -c conda-forge alibi shap
alibi 解释 API 的灵感来自scikit-learn
,由不同的初始化、拟合和解释步骤组成。我们将使用 AnchorTabular 解释器来说明 API:
from alibi . explainers import AnchorTabular
# initialize and fit explainer by passing a prediction function and any other required arguments
explainer = AnchorTabular ( predict_fn , feature_names = feature_names , category_map = category_map )
explainer . fit ( X_train )
# explain an instance
explanation = explainer . explain ( x )
返回的解释是一个带有属性meta
和data
Explanation
对象。 meta
是一个包含解释器元数据和任何超参数的字典,而data
是一个包含与计算解释相关的所有内容的字典。例如,对于 Anchor 算法,可以通过explanation.data['anchor']
(或explanation.anchor
)访问解释。可用字段的具体细节因方法而异,因此我们鼓励读者熟悉支持的方法类型。
下表总结了每种方法的可能用例。
方法 | 型号 | 说明 | 分类 | 回归 | 表格 | 文本 | 图片 | 分类特征 | 需要火车组 | 分布式 |
---|---|---|---|---|---|---|---|---|---|---|
爱尔 | BB | 全球的 | ✔ | ✔ | ✔ | |||||
部分依赖 | BB WB | 全球的 | ✔ | ✔ | ✔ | ✔ | ||||
PD方差 | BB WB | 全球的 | ✔ | ✔ | ✔ | ✔ | ||||
排列重要性 | BB | 全球的 | ✔ | ✔ | ✔ | ✔ | ||||
锚 | BB | 当地的 | ✔ | ✔ | ✔ | ✔ | ✔ | 对于表格 | ||
化学电子显微镜 | BB* TF/Keras | 当地的 | ✔ | ✔ | ✔ | 选修的 | ||||
反事实 | BB* TF/Keras | 当地的 | ✔ | ✔ | ✔ | 不 | ||||
原型反事实 | BB* TF/Keras | 当地的 | ✔ | ✔ | ✔ | ✔ | 选修的 | |||
强化学习的反事实 | BB | 当地的 | ✔ | ✔ | ✔ | ✔ | ✔ | |||
积分梯度 | TF/喀拉斯 | 当地的 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | 选修的 | |
内核形状 | BB | 当地的 全球的 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
树形 | 世界银行 | 当地的 全球的 | ✔ | ✔ | ✔ | ✔ | 选修的 | |||
相似性解释 | 世界银行 | 当地的 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
这些算法提供特定于实例的分数,衡量模型进行特定预测的置信度。
方法 | 型号 | 分类 | 回归 | 表格 | 文本 | 图片 | 分类特征 | 需要火车组 |
---|---|---|---|---|---|---|---|---|
信任分数 | BB | ✔ | ✔ | ✔(1) | ✔(2) | 是的 | ||
线性测量 | BB | ✔ | ✔ | ✔ | ✔ | 选修的 |
钥匙:
这些算法提供了数据集的精炼视图,并帮助构建 1-KNN可解释分类器。
方法 | 分类 | 回归 | 表格 | 文本 | 图片 | 分类特征 | 火车组标签 |
---|---|---|---|---|---|---|---|
原型选择 | ✔ | ✔ | ✔ | ✔ | ✔ | 选修的 |
累积局部效应(ALE、Apley 和 Zhu,2016)
部分依赖(JH Friedman,2001)
部分依赖方差(Greenwell et al., 2018)
排列重要性(Breiman,2001;Fisher 等,2018)
锚点解释(Ribeiro 等人,2018)
对比解释法(CEM,Dhurandhar 等,2018)
反事实解释(Wachter 等人的扩展,2017)
原型引导的反事实解释(Van Looveren 和 Klaise,2019)
通过 RL 进行与模型无关的反事实解释(Samoilescu et al., 2021)
积分梯度(Sundararajan 等人,2017)
内核 Shapley 加法解释(Lundberg 等人,2017)
树 Shapley 加法解释(Lundberg 等人,2020)
信任分数(Jiang 等人,2018)
线性测量
原型选择
相似性解释
如果您在研究中使用不在场证明,请考虑引用它。
BibTeX 条目:
@article{JMLR:v22:21-0017,
author = {Janis Klaise and Arnaud Van Looveren and Giovanni Vacanti and Alexandru Coca},
title = {Alibi Explain: Algorithms for Explaining Machine Learning Models},
journal = {Journal of Machine Learning Research},
year = {2021},
volume = {22},
number = {181},
pages = {1-7},
url = {http://jmlr.org/papers/v22/21-0017.html}
}