MimicWrapper 类

包装解释器,它减少了使用解释模型包所需的函数调用次数。

继承
azureml._logging.chained_identity.ChainedIdentity
MimicWrapper

构造函数

MimicWrapper(workspace, model, explainable_model, explainer_kwargs=None, init_dataset=None, run=None, features=None, classes=None, model_task=<ModelTask.Unknown: 'unknown'>, explain_subset=None, transformations=None, feature_maps=None, allow_all_transformations=None)

参数

workspace
Workspace
必需

在其中定义了模型和数据集的工作区对象。

model
str 或 <xref:<xref:model that implements sklearn.predict>()> 或 <xref:sklearn.predict_proba>() 或 <xref:<xref:pipeline function that accepts a 2d ndarray>>
必需

注册到 MMS 的模型的模型 ID,或者要解释的常规机器学习模型或管道。 如果指定了模型,则必须实现 sklearn.predict() 或 sklearn.predict_proba()。 如果指定了管道,则必须包含一个接受 2d ndarray 的函数。

explainable_model
BaseExplainableModel
必需

用于解释黑盒模型的未初始化代理模型。 也称为学生模型。

explainer_kwargs
dict
默认值: None

此处不会另行介绍与所选解释器一起使用的任何关键字参数。 在初始化基础解释器时,这些参数将作为 kwargs 传入。

init_dataset
strarrayDataFrameDenseDatacsr_matrix
默认值: None

用于初始化解释器的数据集 ID 或常规数据集(例如 x_train)。

run
Run
默认值: None

应与此解释关联的运行。

features
list[str]
默认值: None

特征名称列表。

classes
list[str]
默认值: None

作为字符串列表的类名。 类名的顺序应与模型输出的顺序相匹配。 仅在解释分类器时才是必需的。

model_task
str
默认值: ModelTask.Unknown

用于指定模型是分类模型还是回归模型的可选参数。 在大多数情况下,可以根据输出的形状推理模型的类型,其中的分类器具有 predict_proba 方法并输出二维数组,而回归器具有 predict 方法并输出一维数组。

explain_subset
list[int]
默认值: None

特征索引列表。 如果指定,则 Azure 仅选择评估数据集中的特征子集进行解释,当特征数量较大并且你已经知道关注的特征集时,这可以加速解释过程。 该子集可以是模型摘要中的 top-k 特征。 设置了转换时不支持此参数。

transformations
ColumnTransformerlist[tuple]
默认值: None

一个 sklearn.compose.ColumnTransformer,或描述列名和转换器的元组列表。 当提供了转换时,解释属于转换之前的特征。 转换列表的格式与以下网页中所述的格式相同:https://github.com/scikit-learn-contrib/sklearn-pandas

如果使用的转换不在 interpret-community 包支持的 sklearn.preprocessing 转换列表中,则此参数不能将包含多个列的列表用作转换的输入。 可将以下 sklearn.preprocessing 转换与列列表一起使用,因为它们已经存在一对多或一对一的映射:Binarizer、KBinsDiscretizer、KernelCenterer、LabelEncoder、MaxAbsScaler、MinMaxScaler、Normalizer、OneHotEncoder、OrdinalEncoder、PowerTransformer、QuantileTransformer、RobustScaler、StandardScaler。

有效转换的示例:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

由于无法解释为一对多映射,因此会引发错误的转换的示例:


   [
       (["col1", "col2"], my_own_transformer)
   ]

最后一个示例无效,因为 interpret-community 包无法确定 my_own_transformer 在提取列序列时是否提供多对多或一对多的映射。

feature_maps
list[array] 或 list[csr_matrix]
默认值: None

特征的列表从原始特征映射到生成的特征。 此参数可以是 numpy 数组或稀疏矩阵的列表,其中每个数组条目 (raw_index, generated_index) 是每个原始生成的特征对的权重。 其他项设置为零。 对于转换序列 [t1,t2,...,tn] 从原始功能生成生成的功能,功能映射的列表对应于按 t1、t2 等相同顺序生成的映射的原始映射。如果提供了从 t1 到 tn 的整体原始到生成功能的映射,则可以传递单个元素列表中的该功能映射。

allow_all_transformations
bool
默认值: None

是否允许多对多和多对一转换。

注解

MimicWrapper 可用于解释机器学习模型,与 AutoML 结合使用时特别有作用。 例如,借助 automl_explain_utilities 模块中的 automl_setup_model_explanations 函数,可以使用 MimicWrapper 来计算和可视化特征重要性。 有关详细信息,请参阅可解释性:自动化机器学习中的模型说明

在以下示例中,MimicWrapper 用于分类问题。


   from azureml.interpret.mimic_wrapper import MimicWrapper
   explainer = MimicWrapper(ws, automl_explainer_setup_obj.automl_estimator,
                explainable_model=automl_explainer_setup_obj.surrogate_model,
                init_dataset=automl_explainer_setup_obj.X_transform, run=automl_run,
                features=automl_explainer_setup_obj.engineered_feature_names,
                feature_maps=[automl_explainer_setup_obj.feature_map],
                classes=automl_explainer_setup_obj.classes,
                explainer_kwargs=automl_explainer_setup_obj.surrogate_model_params)

有关此示例的详细信息,请参阅此笔记本

方法

explain

解释模型的行为,并选择性地上传该解释以进行存储和可视化。

explain

解释模型的行为,并选择性地上传该解释以进行存储和可视化。

explain(explanation_types, eval_dataset=None, top_k=None, upload=True, upload_datasets=False, tag='', get_raw=False, raw_feature_names=None, experiment_name='explain_model', raw_eval_dataset=None, true_ys=None)

参数

explanation_types
list[str]
必需

表示所需解释类型的字符串列表。 目前支持“global”和“local”。 两者可以同时传入;只会返回一个解释。

eval_dataset
strarrayDataFrameDenseDatacsr_matrix
默认值: None

用于生成解释的数据集 ID 或常规数据集。

top_k
int
默认值: None

在可能的情况下,限制针对 top k 特征返回并存储在运行历史记录中的数据量。

upload
bool
默认值: True

如果为 True,则自动将解释上传到运行历史记录以进行存储和可视化。 如果在初始化时未传入运行,则创建一个运行。

upload_datasets
bool
默认值: False

如果设置为 True 且未传入任何数据集 ID,则将评估数据集上传到 Azure 存储。 这会改善 Web 视图中可用的可视化效果。

tag
str
必需

上传后附加到解释的字符串,以将该解释与其他解释区分开来。

get_raw
bool
默认值: False

如果为 True 且在初始化期间传入了参数 feature_maps,则返回的解释将适用于原始特征。 如果为 False 或未指定,则解释将适用于与传入了该参数时完全相同的数据。

raw_feature_names
list[str]
默认值: None

原始特征名称的列表,替换构造函数中的工程特征名称。

experiment_name
str
默认值: explain_model

如果 upload 为 True 但在初始化期间未传入运行,则返回用于提供解释的所需名称

raw_eval_dataset
strarrayDataFrameDenseDatacsr_matrix
默认值: None

要上传以进行原始解释的原始评估数据。

true_ys
<xref:<xref:list | pandas.Dataframe | numpy.ndarray>>
默认值: None

评估示例的 true 标签。

返回

一个解释对象。

返回类型

属性

explainer

获取包装器在内部使用的解释器。

返回

包装器在内部使用的解释器。

返回类型