shap.AdditiveExplainer
- class shap.AdditiveExplainer(model: Any, masker: Any, link: Any = None, feature_names: list[str] | None = None, linearize_link: bool = True)
计算广义加性模型的SHAP值。
这假设模型只有一阶效应。将其扩展到二阶和三阶效应是未来的工作(如果您现在将此应用于这些模型,您将得到不正确的结果,且不满足可加性)。
- __init__(model: Any, masker: Any, link: Any = None, feature_names: list[str] | None = None, linearize_link: bool = True) None
使用给定的masker对象为给定模型构建一个Additive解释器。
- 参数:
- model函数
一个可调用的 Python 对象,它接收一组输入数据样本并执行模型。
- masker函数或 numpy.array 或 pandas.DataFrame
一个可调用的Python对象,用于“遮盖”隐藏特征,形式为
masker(mask, *fargs)。它接受一个二进制mask和一个输入样本,并返回一个被遮盖样本的矩阵。这些被遮盖样本使用模型函数进行评估,然后对输出进行平均。作为SHAP使用的标准遮盖的快捷方式,您可以传递一个背景数据矩阵而不是一个函数,该矩阵将用于遮盖。要使用聚类博弈结构,您可以传递一个shap.maskers.Tabular(data, hclustering="correlation")对象,但请注意,此结构信息对加性模型的解释没有影响。
方法
__init__(model, masker[, link, ...])使用给定的masker对象为给定模型构建一个Additive解释器。
explain_row(*row_args, max_evals, ...)解释单行并返回元组 (row_values, row_expected_values, row_mask_shapes)。
load(in_file[, model_loader, masker_loader, ...])从给定的文件流加载一个解释器。
save(out_file[, model_saver, masker_saver])将解释器写入给定的文件流。
supports_model_with_masker(model, masker)判断此解释器是否能处理给定的模型。
属性
modelmaskeroutput_namesfeature_nameslinklinearize_link- explain_row(*row_args: Any, max_evals: int | Literal['auto'], main_effects: bool, error_bounds: bool, outputs: Any, silent: bool, **kwargs: Any) dict[str, Any]
解释单行并返回元组 (row_values, row_expected_values, row_mask_shapes)。
- classmethod load(in_file: Any, model_loader: Callable[..., Any] | None = None, masker_loader: Callable[..., Any] | None = None, instantiate: bool = True) Explainer | dict[str, Any]
从给定的文件流加载一个解释器。
- 参数:
- in_file用于加载对象的文件流。
- save(out_file: Any, model_saver: str | Callable[..., Any] = '.save', masker_saver: str | Callable[..., Any] = '.save') None
将解释器写入给定的文件流。
- static supports_model_with_masker(model: Any, masker: Any) bool
判断此解释器是否能处理给定的模型。
这是一个抽象的静态方法,需要由每个子类实现。