MimicWrapper 类
包装解释器,它减少了使用解释模型包所需的函数调用次数。
- 继承
-
azureml._logging.chained_identity.ChainedIdentityMimicWrapper
构造函数
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)
参数
- 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 的函数。
- init_dataset
- str 或 array 或 DataFrame 或 DenseData 或 csr_matrix
用于初始化解释器的数据集 ID 或常规数据集(例如 x_train)。
- model_task
- str
用于指定模型是分类模型还是回归模型的可选参数。 在大多数情况下,可以根据输出的形状推理模型的类型,其中的分类器具有 predict_proba 方法并输出二维数组,而回归器具有 predict 方法并输出一维数组。
特征索引列表。 如果指定,则 Azure 仅选择评估数据集中的特征子集进行解释,当特征数量较大并且你已经知道关注的特征集时,这可以加速解释过程。 该子集可以是模型摘要中的 top-k 特征。 设置了转换时不支持此参数。
- transformations
- ColumnTransformer 或 list[tuple]
一个 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]
功能的列表从原始功能映射到生成的功能。 此参数可以是 numpy 数组或稀疏矩阵的列表,其中每个数组条目 (raw_index, generated_index) 是每个原始生成的特征对的权重。 其他项设置为零。 对于转换序列 [t1,t2,...,tn] 从原始功能生成生成的功能,功能映射的列表对应于按 t1、t2 等相同顺序生成的映射的原始映射。如果提供了从 t1 到 tn 的整体原始到生成功能的映射,则可以传递单个元素列表中的该功能映射。
注解
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)
参数
- get_raw
- bool
如果为 True 且在初始化期间传入了参数 feature_maps,则返回的解释将适用于原始特征。 如果为 False 或未指定,则解释将适用于与传入了该参数时完全相同的数据。
- true_ys
- <xref:<xref:list | pandas.Dataframe | numpy.ndarray>>
评估示例的 true 标签。
返回
一个解释对象。
返回类型
属性
explainer
反馈
提交和查看相关反馈