API 参考

此页面包含 SHAP 中公共对象和函数的 API 参考。 此外,还提供了一些示例笔记本,演示了如何使用每个对象/函数的 API。

解释

shap.Explanation(values[, base_values, ...])

表示 SHAP 解释的可切片并行数组集。

shap.Cohorts(**kwargs)

一个 Explanation 对象集合,通常每个对象解释相似样本的集群。

解释器

shap.Explainer(model[, masker, link, ...])

使用 Shapley 值来解释任何机器学习模型或 Python 函数。

shap.TreeExplainer(model[, data, ...])

使用 Tree SHAP 算法来解释集成树模型的输出。

shap.GPUTreeExplainer(model[, data, ...])

TreeExplainer 的实验性 GPU 加速版本。

shap.LinearExplainer(model, masker[, link, ...])

计算线性模型的 SHAP 值,可以选择考虑特征间的相关性。

shap.PermutationExplainer(model, masker[, ...])

此方法通过迭代输入的排列来近似 Shapley 值。

shap.PartitionExplainer(model, masker, *[, ...])

使用 Partition SHAP 方法来解释任何函数的输出。

shap.SamplingExplainer(model, data, **kwargs)

使用 Shapley 抽样值解释方法(也称为 IME)的扩展来计算 SHAP 值。

shap.AdditiveExplainer(model, masker[, ...])

计算广义加性模型的 SHAP 值。

shap.DeepExplainer(model, data[, session, ...])

旨在近似深度学习模型的 SHAP 值。

shap.KernelExplainer(model, data[, ...])

使用 Kernel SHAP 方法来解释任何函数的输出。

shap.GradientExplainer(model, data[, ...])

使用期望梯度(积分梯度的扩展)来解释模型。

shap.ExactExplainer(model, masker[, link, ...])

通过优化的精确枚举计算 SHAP 值。

shap.explainers.other.Coefficient(model)

简单地返回模型系数作为特征属性。

shap.explainers.other.Random(model, masker)

简单地返回随机(正态分布)特征属性。

shap.explainers.other.LimeTabular(model, data)

简单地将 lime.lime_tabular.LimeTabularExplainer 包装到通用的 shap 接口中。

shap.explainers.other.Maple(model, data)

简单地将 MAPLE 包装到通用的 SHAP 接口中。

shap.explainers.other.TreeMaple(model, data)

简单地将 tree MAPLE 包装到通用的 SHAP 接口中。

shap.explainers.other.TreeGain(model)

简单地返回树模型的全局增益/基尼特征重要性。

绘图

shap.plots.bar(shap_values[, max_display, ...])

创建一组 SHAP 值的条形图。

shap.plots.waterfall(shap_values[, ...])

将单个预测的解释绘制为瀑布图。

shap.plots.scatter(shap_values[, color, ...])

创建 SHAP 依赖散点图,可以选择按交互特征着色。

shap.plots.heatmap(shap_values[, ...])

创建一组 SHAP 值的热图。

shap.plots.force(base_value[, shap_values, ...])

使用加性力布局可视化给定的 SHAP 值。

shap.plots.text(shap_values[, ...])

使用着色和交互式标签绘制文本字符串的解释。

shap.plots.image(shap_values[, ...])

绘制图像输入的 SHAP 值。

shap.plots.partial_dependence(ind, model, data)

基本的偏依赖图函数。

shap.plots.decision(base_value, shap_values)

使用累积 SHAP 值可视化模型决策。

shap.plots.embedding(ind, shap_values[, ...])

使用 SHAP 值作为嵌入,我们将其投影到 2D 以进行可视化。

shap.plots.initjs()

初始化交互式力图所需的 javascript 库。

shap.plots.group_difference(shap_values, ...)

此图绘制两组之间平均 SHAP 值的差异。

shap.plots.image_to_text(shap_values)

绘制带有文本输出的图像输入的 SHAP 值。

shap.plots.monitoring(ind, shap_values, features)

创建 SHAP 监控图。

shap.plots.beeswarm(shap_values[, ...])

创建 SHAP 蜜蜂图,如果提供了特征值,则按特征值着色。

shap.plots.violin(shap_values[, features, ...])

创建 SHAP 小提琴图,如果提供了特征值,则按特征值着色。

掩码器

shap.maskers.Masker()

这是所有掩码器的超类。

shap.maskers.Independent(data[, max_samples])

这通过在给定的背景数据集上积分来掩盖表格特征。

shap.maskers.Partition(data[, max_samples, ...])

这通过在给定的背景数据集上积分来掩盖表格特征。

shap.maskers.Impute(data[, method])

这使用观察到的特征的值来估算缺失特征的值。

shap.maskers.Fixed()

这使输入在掩码期间保持不变,并用于诸如评分标签之类的事情。

shap.maskers.Composite(*maskers)

这会将几个不同输入的掩码器合并为一个复合掩码器。

shap.maskers.FixedComposite(masker)

一个掩码器,它将掩码数据和原始数据都作为一对输出。

shap.maskers.OutputComposite(masker, model)

一个掩码器,它是掩码器和模型的组合,并输出掩码参数和模型的输出。

shap.maskers.Text([tokenizer, mask_token, ...])

这根据给定的分词器掩盖标记。

shap.maskers.Image(mask_value[, shape])

使用模糊或修复来掩盖图像区域。

模型

shap.models.Model([model])

这是所有模型的超类。

shap.models.TeacherForcing(model[, ...])

使用 Teacher Forcing 技术为输出文本解释算法生成分数(对数几率)。

shap.models.TextGeneration([model, ...])

使用基本模型生成目标句子/ID。

shap.models.TopKLM(model, tokenizer[, k, ...])

为因果/掩码 LM 的前 k 个标记生成分数(对数几率)。

shap.models.TransformersPipeline(pipeline[, ...])

这包装了一个 transformers pipeline 对象,以便于解释。

实用工具

shap.utils.hclust(X[, y, linkage, metric, ...])

拟合特征 X 相对于目标变量 y 的分层聚类模型。

shap.utils.hclust_ordering(X[, metric, ...])

叶子排序是欠定义的,这选择了保持附近样本相似的排序。

shap.utils.partition_tree(X[, metric])

shap.utils.partition_tree_shuffle(indexes, ...)

以与给定分区树一致的方式随机打乱索引。

shap.utils.delta_minimization_order(all_masks)

shap.utils.approximate_interactions(index, ...)

按其他特征与给定索引处的特征的交互程度对其进行排序。

shap.utils.potential_interactions(...)

按其他特征与给定索引处的特征的交互程度对其进行排序。

shap.utils.sample(X[, nsamples, random_state])

执行输入数据 X 的无放回抽样。

shap.utils.shapley_coefficients(n)

shap.utils.convert_name(ind, shap_values, ...)

shap.utils.OpChain([root_name])

一种表示对象上的一组点链式操作的方法,而无需实际运行它们。

shap.utils.show_progress(iterable[, total, ...])

shap.utils.MaskedModel(model, masker, link, ...)

这是一个实用程序类,它组合了一个模型、一个掩码器对象和一个当前输入。

shap.utils.make_masks(cluster_matrix)

从给定的聚类构建稀疏 CSR 掩码矩阵。

数据集

shap.datasets.a1a([n_points])

以 scipy csr 矩阵格式返回稀疏数据集。

shap.datasets.adult([display, n_points])

以结构化格式返回 Adult 人口普查数据。

shap.datasets.california([n_points])

以表格格式返回加州住房数据。

shap.datasets.communitiesandcrime([n_points])

预测每 10 万人口的暴力犯罪总数。

shap.datasets.corrgroups60([n_points])

相关组(60 个特征)

shap.datasets.diabetes([n_points])

以友好的包返回糖尿病数据。

shap.datasets.imagenet50([resolution, n_points])

返回一组 50 张代表 ImageNet 图像的图像。

shap.datasets.imdb([n_points])

以友好的包返回经典的 IMDB 情感分析训练数据。

shap.datasets.independentlinear60([n_points])

独立线性(60 个特征)

shap.datasets.iris()

以方便的包返回经典的 Iris 数据集。

shap.datasets.linnerud([n_points])

以方便的包返回 Linnerud 数据集,用于多目标回归。

shap.datasets.nhanesi([display, n_points])

以友好的打包版本返回 NHANES I 数据,并将生存时间作为标签。

shap.datasets.rank()

从 LightGBM 存储库返回排名数据集。