MimicWrapper 類別
包裝函式解譯器,可減少使用 explain 模型封裝所需的函式呼叫數目。
初始化 MimicWrapper。
' << ,接受 2d ndarray :p aram explainable_model:用來說明黑箱模型的未初始化 Surrogate 模型。
也稱為學生模型。
- 繼承
-
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, 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
|
執行此說明應該與 相關聯。 預設值: None
|
features
|
功能名稱的清單。 預設值: None
|
classes
|
類別名稱做為字串清單。 類別名稱的順序應該符合模型輸出的順序。 只有在說明分類器時才需要。 預設值: None
|
model_task
|
選擇性參數,可指定模型是分類或回歸模型。 在大部分情況下,可以根據輸出的形狀推斷模型類型,其中分類器具有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。 可運作的轉換範例:
轉換的範例會引發錯誤,因為它無法解譯為一對多:
最後一個範例無法運作,因為解譯社群套件無法判斷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
必要
|
功能索引的清單。 如果指定,則只會選取評估資料集中的特徵子集以取得說明,這會在特徵數目很大且使用者已經知道一組感興趣的功能時,加速說明程式。 子集可以是模型摘要中的前 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 特別有效。 例如,在模組中使用 <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
|
盡可能將傳回和儲存在執行歷程記錄中的資料量限制為前 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
|
評估範例的 true 標籤。 預設值: None
|
傳回
類型 | Description |
---|---|
說明物件。 |