MimicWrapper 類別
包裝函式解釋器,可減少使用 explain 模型套件所需的函數調用數目。
初始化 MimicWrapper。
接受<< 2d ndarray :p aram explainable_model:用來解釋黑箱模型的未初始化代理模型。
也稱為學生模型。
建構函式
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
必要
|
用來說明黑箱模型的未初始化代理模型。 也稱為學生模型。 |
|
explainer_kwargs
|
隨所選解釋器一起進行的任何關鍵詞自變數,此處並未涵蓋。 初始化基礎解釋器時,它們會以 kwargs 的形式傳入。 預設值: None
|
|
init_dataset
|
用於初始化說明工具的數據集標識碼或一般數據集(例如,x_train)。 預設值: None
|
|
run
|
執行此說明應該與相關聯。 預設值: None
|
|
features
|
功能名稱的清單。 預設值: None
|
|
classes
|
類別名稱做為字串清單。 類別名稱的順序應該符合模型輸出的順序。 只有在說明分類器時才需要。 預設值: None
|
|
model_task
|
選擇性參數,指定模型是否為分類或回歸模型。 在大部分情況下,模型的類型可以根據輸出的形狀來推斷,其中分類器具有predict_proba方法和輸出 2 維陣列,而回歸輸入器具有預測方法和輸出 1 維數位列。 預設值: ModelTask.Unknown
|
|
explain_subset
|
功能索引的清單。 如果指定,Azure 只會選取評估數據集中的功能子集以取得說明,這會在功能數目很大且您已經知道一組有趣的功能時,加速說明程式。 子集可以是模型摘要中的 top-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。 可運作之轉換的範例:
轉換的範例,會引發錯誤,因為它無法解譯為一對多:
最後一個範例無法運作,因為解譯社群套件無法判斷在採用數據行序列時,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
必要
|
執行此說明應該與相關聯。 |
|
features
必要
|
功能名稱的清單。 |
|
classes
必要
|
類別名稱做為字串清單。 類別名稱的順序應該符合模型輸出的順序。 只有在說明分類器時才需要。 |
|
model_task
必要
|
選擇性參數,指定模型是否為分類或回歸模型。 在大部分情況下,模型的類型可以根據輸出的形狀來推斷,其中分類器具有predict_proba方法和輸出 2 維陣列,而回歸輸入器具有預測方法和輸出 1 維數位列。 |
|
explain_subset
必要
|
功能索引的清單。 如果指定,則只會選取評估數據集中的功能子集以取得說明,這會在功能數目很大且用戶已經知道一組感興趣的功能時,加速說明程式。 子集可以是模型摘要中的 top-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。 可運作之轉換的範例:
轉換的範例,會引發錯誤,因為它無法解譯為一對多:
最後一個範例無法運作,因為解譯社群套件無法判斷在採用數據行序列時,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 搭配使用特別有效。 例如,在模組中使用 automl_setup_model_explanations 函<xref:azureml.train.automl.runtime.automl_explain_utilities>式,您可以使用 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
必要
|
字串清單,表示所需的說明類型。 目前支援「全域」和「本機」。 兩者都可以一次傳入;只會傳回一個說明。 |
|
eval_dataset
|
用來產生說明的數據集標識碼或一般數據集。 預設值: None
|
|
top_k
|
盡可能將傳回和儲存在執行歷程記錄中的數據量限制為前 k 個功能。 預設值: None
|
|
upload
|
如果為 True,說明會自動上傳至記憶體和視覺效果的執行歷程記錄。 如果未在初始化時傳入執行,則會建立一個。 預設值: True
|
|
upload_datasets
|
如果設定為 True 且未傳入任何數據集標識碼,評估數據集將會上傳至 Azure 記憶體。 這會改善 Web 檢視中可用的視覺效果。 預設值: False
|
|
tag
必要
|
要附加至說明的字串,以在上傳之後與其他人區別。 |
|
get_raw
|
如果在初始化期間傳入 True 和 參數 預設值: False
|
|
raw_feature_names
|
原始特徵名稱的清單,取代建構函式中的工程特徵名稱。 預設值: None
|
|
experiment_name
|
如果 為 True,但初始化期間未傳入任何執行,則提供說明 預設值: explain_model
|
|
raw_eval_dataset
|
要上傳的原始評估數據以取得原始說明。 預設值: None
|
|
true_ys
|
評估範例的真正標籤。 預設值: None
|
傳回
| 類型 | Description |
|---|---|
|
說明物件。 |