shap.explainers.other.Random

class shap.explainers.other.Random(model, masker, link=CPUDispatcher(<function identity>), feature_names=None, linearize_link=True, constant=False, **call_args)

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

这仅用于基准比较。它支持完全随机的属性和在所有解释中恒定的随机属性。

__init__(model, masker, link=CPUDispatcher(<function identity>), feature_names=None, linearize_link=True, constant=False, **call_args)

为传递的模型构建一个新的解释器。

参数:
model对象或函数

用户提供的函数或模型对象,它接受样本数据集并计算这些样本的模型输出。

masker函数、numpy.array、pandas.DataFrame、tokenizer、None,或每个模型输入的这些列表

用于“掩盖”隐藏特征的函数,形式为 masked_args = masker(*model_args, mask=mask)。它接受与模型相同形式的输入,但仅适用于具有二进制掩码的单个样本,然后返回掩码样本的可迭代对象。然后将使用模型函数评估这些掩码样本,并对输出进行平均。作为 SHAP 标准掩码的快捷方式,您可以传递背景数据矩阵而不是函数,该矩阵将用于掩码。shap 中提供了特定于域的掩码函数,例如用于图像的 shap.ImageMasker 和用于文本的 shap.TokenMasker。除了确定如何替换隐藏特征外,掩码器还可以约束用于解释模型的合作博弈的规则。例如,shap.TabularMasker(data, hclustering=”correlation”) 将强制执行博弈的联盟的层次聚类(在这种特殊情况下,属性称为 Owen 值)。

link函数

用于在模型输出单位和 SHAP 值单位之间映射的链接函数。默认情况下它是 shap.links.identity,但 shap.links.logit 可能很有用,以便在概率单位中计算期望,而解释保持在(更自然地加性的)对数几率单位中。有关链接函数如何工作的更多详细信息,请参阅广义线性模型的链接函数的任何概述。

algorithm“auto”、“permutation”、“partition”、“tree” 或 “linear”

用于估计 Shapley 值的算法。有许多不同的算法可以用来估计 Shapley 值(以及约束博弈的相关值),这些算法各有优缺点,在不同的情况下是首选的。默认情况下,“auto” 选项尝试根据传递的模型和掩码器做出最佳选择,但始终可以通过传递特定算法的名称来覆盖此选择。所用算法的类型将决定此构造函数返回的子类对象的类型,如果您喜欢或需要更精细地控制其选项,您也可以直接构建这些子类。

output_namesNone 或字符串列表

模型输出的名称。例如,如果模型是图像分类器,则 output_names 将是所有输出类的名称。此参数是可选的。当 output_names 为 None 时,此解释器生成的 Explanation 对象将没有任何 output_names,这可能会影响下游绘图。

seed: None 或 int

用于重现性的种子

方法

__init__(模型, 掩码器[, 链接, ...])

为传递的模型构建一个新的解释器。

explain_row(*row_args, max_evals, ...)

解释单行。

load(in_file[, model_loader, masker_loader, ...])

从给定的文件流加载 Explainer。

save(out_file[, model_saver, masker_saver])

将解释器写入给定的文件流。

supports_model_with_masker(模型, 掩码器)

确定此解释器是否可以处理给定的模型。

explain_row(*row_args, max_evals, main_effects, error_bounds, batch_size, outputs, silent)

解释单行。

classmethod load(in_file, model_loader=<bound method Model.load of <class 'shap.models._model.Model'>>, masker_loader=<bound method Serializable.load of <class 'shap.maskers._masker.Masker'>>, instantiate=True)

从给定的文件流加载 Explainer。

参数:
in_file要从中加载对象的文件流。
save(out_file, model_saver='.save', masker_saver='.save')

将解释器写入给定的文件流。

static supports_model_with_masker(model, masker)

确定此解释器是否可以处理给定的模型。

这是一个抽象静态方法,旨在由每个子类实现。