共用方式為


MimicWrapper 類別

包裝函式解譯器,可減少使用 explain 模型封裝所需的函式呼叫數目。

初始化 MimicWrapper。

' << ,接受 2d ndarray :p aram explainable_model:用來說明黑箱模型的未初始化 Surrogate 模型。

也稱為學生模型。

繼承
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, explain_subset=None, transformations=None, feature_maps=None, allow_all_transformations=None)

參數

名稱 Description
workspace
必要

定義模型和資料集的工作區物件。

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

註冊至 MMS 或一般機器學習模型或管線的模型識別碼,以說明。 如果指定模型,它必須實作 sklearn.predict () 或 sklearn.predict_proba () 。 如果指定管線,它必須包含可接受 2d ndarray 的函式。

explainable_model
必要

用來說明黑箱模型的未初始化 Surrogate 模型。 也稱為學生模型。

explainer_kwargs

任何搭配所選解譯器的關鍵字引數,不在此說明。 初始化基礎說明工具時,它們會以 kwargs 的形式傳入。

預設值: None
init_dataset

用來初始化解譯器的資料集識別碼或一般資料集 (例如x_train) 。

預設值: None
run
Run

執行此說明應該與 相關聯。

預設值: None
features

功能名稱的清單。

預設值: None
classes

類別名稱做為字串清單。 類別名稱的順序應該符合模型輸出的順序。 只有在說明分類器時才需要。

預設值: None
model_task
str

選擇性參數,可指定模型是分類或回歸模型。 在大部分情況下,可以根據輸出的形狀推斷模型類型,其中分類器具有predict_proba方法和輸出 2 維陣列,而回歸輸入器具有預測方法和輸出 1 維陣列。

預設值: ModelTask.Unknown
explain_subset

功能索引的清單。 如果指定,Azure 只會選取評估資料集中的特徵子集以取得說明,這會在特徵數目很大且您已經知道一組有趣的特徵時,加速說明程式。 子集可以是模型摘要中的前 K 個特徵。 設定轉換時不支援此參數。

預設值: None
transformations

sklearn.compose.ColumnTransformer 或描述資料行名稱和轉換程式的 Tuple 清單。 提供轉換時,說明是在轉換之前的功能。 轉換清單的格式與這裡的格式相同: https://github.com/scikit-learn-contrib/sklearn-pandas

如果您使用的轉換不在 解譯社群 套件所支援的 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)
   ]

最後一個範例無法運作,因為解譯社群套件無法判斷my_own_transformer在取得一連串資料行時,提供多對多或一對多對應。

應該只指定 'transformations' 或 'feature_maps' 中的一個參數來產生原始說明。 指定這兩者將會導致設定例外狀況。

預設值: None
feature_maps

從原始到產生的特徵對應清單。 此參數可以是 numpy 陣列或疏鬆矩陣的清單,其中每個陣列專案 (raw_index,generated_index) 是每個原始產生的功能組權數。 其他專案會設定為零。 針對一連串轉換 [t1,t2, ..., tn] 從原始特徵產生產生的特徵,特徵對應清單會以與 t1、t2 等相同順序對應至產生的原始對應。如果從 t1 到 tn 的整體原始到產生的特徵對應可供使用,則可以傳遞單一元素清單中的該功能對應。

應該只指定 'transformations' 或 'feature_maps' 中的一個參數來產生原始說明。 指定這兩者將會導致設定例外狀況。

預設值: None
allow_all_transformations

是否允許多對多和多對一轉換。

預設值: None
workspace
必要

定義模型和資料集的工作區物件。

model
必要
str 或 <xref:<xref:model that implements sklearn.predict>()> 或 <xref:sklearn.predict_proba>() 或 <xref:<xref:pipeline function>>

註冊至 MMS 或一般機器學習模型或管線的模型識別碼,以說明。 如果指定模型,它必須實作 sklearn.predict () 或 sklearn.predict_proba () 。 如果指定管線,它必須包含可接受 2d ndarray 的函式。

explainer_kwargs
必要

任何搭配所選解譯器的關鍵字引數,不在此說明。 初始化基礎說明工具時,它們會以 kwargs 的形式傳入。

init_dataset
必要

用來初始化說明工具 (的資料集識別碼或一般資料集,例如x_train) 。

run
必要
Run

執行此說明應該與 相關聯。

features
必要

功能名稱的清單。

classes
必要

類別名稱做為字串清單。 類別名稱的順序應該符合模型輸出的順序。 只有在說明分類器時才需要。

model_task
必要
str

選擇性參數,可指定模型是分類或回歸模型。 在大部分情況下,可以根據輸出的形狀推斷模型類型,其中分類器具有predict_proba方法和輸出 2 維陣列,而回歸輸入器具有預測方法和輸出 1 維陣列。

explain_subset
必要

功能索引的清單。 如果指定,則只會選取評估資料集中的特徵子集以取得說明,這會在特徵數目很大且使用者已經知道一組感興趣的功能時,加速說明程式。 子集可以是模型摘要中的前 K 個特徵。 設定轉換時,不支援這個引數。

transformations
必要

sklearn.compose.ColumnTransformer 或描述資料行名稱和轉換程式的 Tuple 清單。 提供轉換時,說明是在轉換之前的功能。 轉換清單的格式與這裡的格式相同: https://github.com/scikit-learn-contrib/sklearn-pandas

如果您使用的轉換不在 解譯社群 套件所支援的 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)
   ]

最後一個範例無法運作,因為解譯社群套件無法判斷my_own_transformer在取得一連串資料行時,提供多對多或一對多對應。

應該只指定 'transformations' 或 'feature_maps' 中的一個參數來產生原始說明。 指定這兩者將會導致設定例外狀況。

feature_maps
必要
list[array] 或 list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>

從原始到產生的特徵對應清單。 此參數可以是 numpy 陣列或疏鬆矩陣的清單,其中每個陣列專案 (raw_index,generated_index) 是每個原始產生的功能組權數。 其他專案會設定為零。 針對一連串轉換 [t1,t2, ..., tn] 從原始特徵產生產生的特徵,特徵對應清單會以與 t1、t2 等相同順序對應至產生的原始對應。如果從 t1 到 tn 的整體原始到產生的特徵對應可供使用,則可以傳遞單一元素清單中的該功能對應。

應該只指定 'transformations' 或 'feature_maps' 中的一個參數來產生原始說明。 指定這兩者將會導致設定例外狀況。

備註

MimicWrapper 可用來說明機器學習模型,而且與 AutoML 特別有效。 例如,在模組中使用 <xref:azureml.train.automl.runtime.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)

參數

名稱 Description
explanation_types
必要

字串清單,表示所需的說明類型。 目前支援 'global' 和 'local'。 這兩者一次可以傳入;只會傳回一個說明。

eval_dataset

用來產生說明的資料集識別碼或一般資料集。

預設值: None
top_k
int

盡可能將傳回和儲存在執行歷程記錄中的資料量限制為前 k 個功能。

預設值: None
upload

如果為 True,則說明會自動上傳至儲存體和視覺效果的執行歷程記錄。 如果在初始化時未傳入執行,則會建立一個。

預設值: True
upload_datasets

如果設定為 True 且未傳入任何資料集識別碼,評估資料集將會上傳至 Azure 儲存體。 這可改善 Web 檢視中可用的視覺效果。

預設值: False
tag
必要
str

要附加至說明的字串,以在上傳後與其他人區別。

get_raw

如果在初始化期間傳入 True 和 參數 feature_maps ,則傳回的說明將會用於原始特徵。 如果為 False 或未指定,則說明會與傳入的資料完全相同。

預設值: False
raw_feature_names

原始特徵名稱的清單,取代建構函式的工程特徵名稱。

預設值: None
experiment_name
str

如果 upload 為 True,但初始化期間未傳入任何執行,則提供說明所需的名稱

預設值: explain_model
raw_eval_dataset

要上傳的原始評估資料以進行原始說明。

預設值: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

評估範例的真正標籤。

預設值: None

傳回

類型 Description

說明物件。

屬性

explainer

取得包裝函式在內部使用的解譯器。

傳回

類型 Description

包裝函式內部使用的解譯器。