MimicWrapper Klass
En omslutningsförklaring som minskar antalet funktionsanrop som krävs för att använda explain-modellpaketet.
Initiera MimicWrapper.
"<<som accepterar en 2d ndarray :p aram explainable_model: Den oinitierade surrogatmodellen som används för att förklara black box-modellen.
Kallas även studentmodellen.
- Arv
-
azureml._logging.chained_identity.ChainedIdentityMimicWrapper
Konstruktor
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)
Parametrar
Name | Description |
---|---|
workspace
Obligatorisk
|
Arbetsyteobjektet där modeller och datauppsättningar definieras. |
model
Obligatorisk
|
str eller
<xref:<xref:model that implements sklearn.predict>()> eller
<xref:sklearn.predict_proba>() eller
<xref:<xref:pipeline function that accepts a 2d ndarray>>
Modell-ID för en modell som är registrerad på MMS eller en vanlig maskininlärningsmodell eller pipeline för att förklara. Om en modell anges måste den implementera sklearn.predict() eller sklearn.predict_proba(). Om en pipeline anges måste den innehålla en funktion som accepterar en 2d-ndarray. |
explainable_model
Obligatorisk
|
Den oinitierade surrogatmodellen som används för att förklara black box-modellen. Kallas även studentmodellen. |
explainer_kwargs
|
Nyckelordsargument som följer med den valda förklaringen beskrivs inte här. De skickas in som kwargs när den underliggande förklaringen initieras. Standardvärde: None
|
init_dataset
|
Datamängds-ID eller vanlig datauppsättning som används för att initiera förklaringen (t.ex. x_train). Standardvärde: None
|
run
|
Den körning som den här förklaringen ska associeras med. Standardvärde: None
|
features
|
En lista över funktionsnamn. Standardvärde: None
|
classes
|
Klassnamn som en lista med strängar. Klassnamnens ordning ska matcha modellutdata. Krävs endast om du förklarar klassificeraren. Standardvärde: None
|
model_task
|
Valfri parameter för att ange om modellen är en klassificerings- eller regressionsmodell. I de flesta fall kan modellens typ härledas baserat på utdataformen, där en klassificerare har en predict_proba metod och matar ut en 2-dimensionell matris, medan en regressor har en förutsägelsemetod och matar ut en 1-dimensionell matris. Standardvärde: ModelTask.Unknown
|
explain_subset
|
En lista över funktionsindex. Om det anges väljer Azure bara en delmängd av funktionerna i utvärderingsdatamängden som förklaring, vilket påskyndar förklaringsprocessen när antalet funktioner är stort och du redan känner till uppsättningen intressanta funktioner. Delmängden kan vara top-k-funktionerna från modellsammanfattningen. Den här parametern stöds inte när transformeringar anges. Standardvärde: None
|
transformations
|
En sklearn.compose.ColumnTransformer eller en lista med tupplar som beskriver kolumnnamnet och transformeraren. När transformeringar tillhandahålls är förklaringarna av funktionerna före omvandlingen. Formatet för en lista över transformeringar är detsamma som det här: https://github.com/scikit-learn-contrib/sklearn-pandas. Om du använder en transformering som inte finns i listan över sklearn.preprocessing-transformeringar som stöds av interpret-community-paketet kan den här parametern inte ta en lista med fler än en kolumn som indata för omvandlingen. Du kan använda följande sklearn.preprocessing-transformeringar med en lista med kolumner eftersom dessa redan är en till många eller en till en: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler. Exempel på transformeringar som fungerar:
Ett exempel på en transformering som skulle generera ett fel eftersom den inte kan tolkas som en till många:
Det sista exemplet fungerar inte eftersom interpret-community-paketet inte kan avgöra om my_own_transformer ger många till många eller en till många mappningar när du tar en sekvens med kolumner. Endast en parameter från "transformationer" eller "feature_maps" ska anges för att generera rådataförklaringar. Om du anger båda resulterar det i konfigurationsfel. Standardvärde: None
|
feature_maps
|
En lista över funktionsmappningar från rå till genererad funktion. Den här parametern kan vara en lista över numpy-matriser eller glesa matriser där varje matrispost (raw_index, generated_index) är vikten för varje obearbetat, genererat funktionspar. De andra posterna är inställda på noll. För en sekvens med transformeringar [t1, t2, ..., tn] som genererar genererade funktioner från råa funktioner motsvarar listan över funktionskartor den råa till genererade kartor i samma ordning som t1, t2 osv. Om den övergripande råa till den genererade funktionskartan från t1 till tn är tillgänglig, kan bara den funktionskartan i en enda elementlista skickas. Endast en parameter från "transformationer" eller "feature_maps" ska anges för att generera rådataförklaringar. Om du anger båda resulterar det i konfigurationsfel. Standardvärde: None
|
allow_all_transformations
|
Om du vill tillåta många till många och många till en omvandlingar. Standardvärde: None
|
workspace
Obligatorisk
|
Arbetsyteobjektet där modeller och datauppsättningar definieras. |
model
Obligatorisk
|
str eller
<xref:<xref:model that implements sklearn.predict>()> eller
<xref:sklearn.predict_proba>() eller
<xref:<xref:pipeline function>>
Modell-ID för en modell som är registrerad på MMS eller en vanlig maskininlärningsmodell eller pipeline för att förklara. Om en modell anges måste den implementera sklearn.predict() eller sklearn.predict_proba(). Om en pipeline anges måste den innehålla en funktion som accepterar en 2d-ndarray. |
explainer_kwargs
Obligatorisk
|
Nyckelordsargument som följer med den valda förklaringen beskrivs inte här. De skickas in som kwargs när den underliggande förklaringen initieras. |
init_dataset
Obligatorisk
|
Datamängds-ID eller vanlig datauppsättning som används för att initiera förklaringen (t.ex. x_train). |
run
Obligatorisk
|
Den körning som den här förklaringen ska associeras med. |
features
Obligatorisk
|
En lista över funktionsnamn. |
classes
Obligatorisk
|
Klassnamn som en lista med strängar. Klassnamnens ordning ska matcha modellutdata. Krävs endast om du förklarar klassificeraren. |
model_task
Obligatorisk
|
Valfri parameter för att ange om modellen är en klassificerings- eller regressionsmodell. I de flesta fall kan modellens typ härledas baserat på utdataformen, där en klassificerare har en predict_proba metod och matar ut en 2-dimensionell matris, medan en regressor har en förutsägelsemetod och matar ut en 1-dimensionell matris. |
explain_subset
Obligatorisk
|
Lista över funktionsindex. Om detta anges väljer du bara en delmängd av funktionerna i utvärderingsdatauppsättningen som förklaring, vilket påskyndar förklaringsprocessen när antalet funktioner är stort och användaren redan känner till uppsättningen av intresserade funktioner. Delmängden kan vara top-k-funktionerna från modellsammanfattningen. Det här argumentet stöds inte när transformeringar anges. |
transformations
Obligatorisk
|
En sklearn.compose.ColumnTransformer eller en lista med tupplar som beskriver kolumnnamnet och transformeraren. När transformeringar tillhandahålls är förklaringarna av funktionerna före omvandlingen. Formatet för en lista över transformeringar är detsamma som det här: https://github.com/scikit-learn-contrib/sklearn-pandas. Om du använder en transformering som inte finns i listan över sklearn.preprocessing-transformeringar som stöds av interpret-community-paketet kan den här parametern inte ta en lista med fler än en kolumn som indata för omvandlingen. Du kan använda följande sklearn.preprocessing-transformeringar med en lista med kolumner eftersom dessa redan är en till många eller en till en: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler. Exempel på transformeringar som fungerar:
Ett exempel på en transformering som skulle generera ett fel eftersom den inte kan tolkas som en till många:
Det sista exemplet fungerar inte eftersom interpret-community-paketet inte kan avgöra om my_own_transformer ger många till många eller en till många mappningar när du tar en sekvens med kolumner. Endast en parameter från "transformationer" eller "feature_maps" ska anges för att generera rådataförklaringar. Om du anger båda resulterar det i konfigurationsfel. |
feature_maps
Obligatorisk
|
list[array] eller
list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>
En lista över funktionsmappningar från rå till genererad funktion. Den här parametern kan vara en lista över numpy-matriser eller glesa matriser där varje matrispost (raw_index, generated_index) är vikten för varje obearbetat, genererat funktionspar. De andra posterna är inställda på noll. För en sekvens med transformeringar [t1, t2, ..., tn] som genererar genererade funktioner från råa funktioner motsvarar listan över funktionskartor den råa till genererade kartor i samma ordning som t1, t2 osv. Om den övergripande råa till den genererade funktionskartan från t1 till tn är tillgänglig, kan bara den funktionskartan i en enda elementlista skickas. Endast en parameter från "transformationer" eller "feature_maps" ska anges för att generera rådataförklaringar. Om du anger båda resulterar det i konfigurationsfel. |
Kommentarer
MimicWrapper kan användas för att förklara maskininlärningsmodeller och är särskilt effektivt tillsammans med AutoML. Med funktionen automl_setup_model_explanations
i modulen <xref:azureml.train.automl.runtime.automl_explain_utilities> kan du till exempel använda MimicWrapper för att beräkna och visualisera funktionsvikt. Mer information finns i Tolkningsbarhet: modellförklaringar i automatiserad maskininlärning.
I följande exempel används MimicWrapper i ett klassificeringsproblem.
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)
Mer information om det här exemplet finns i den här notebook-filen.
Metoder
explain |
Förklara en modells beteende och ladda eventuellt upp förklaringen för lagring och visualisering. |
explain
Förklara en modells beteende och ladda eventuellt upp förklaringen för lagring och visualisering.
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)
Parametrar
Name | Description |
---|---|
explanation_types
Obligatorisk
|
En lista med strängar som representerar de typer av förklaringar som önskas. För närvarande stöds "global" och "lokal". Båda kan skickas in samtidigt; endast en förklaring returneras. |
eval_dataset
|
Det datauppsättnings-ID eller den vanliga datauppsättning som används för att generera förklaringen. Standardvärde: None
|
top_k
|
Begränsa till mängden data som returneras och lagras i Körningshistorik till de viktigaste k funktionerna, när det är möjligt. Standardvärde: None
|
upload
|
Om det är Sant laddas förklaringen automatiskt upp till Körningshistorik för lagring och visualisering. Om en körning inte skickades vid initieringen skapas en. Standardvärde: True
|
upload_datasets
|
Om värdet är True och inga datauppsättnings-ID:n skickas, laddas utvärderingsdatauppsättningen upp till Azure Storage. Detta förbättrar visualiseringen som är tillgänglig i webbvyn. Standardvärde: False
|
tag
Obligatorisk
|
En sträng som ska kopplas till förklaringen för att skilja den från andra efter uppladdningen. |
get_raw
|
Om True och parametern Standardvärde: False
|
raw_feature_names
|
Listan över råa funktionsnamn, som ersätter konstruerade funktionsnamn från konstruktorn. Standardvärde: None
|
experiment_name
|
Önskat namn för att ge en förklaring om Standardvärde: explain_model
|
raw_eval_dataset
|
Råa evaldata som ska laddas upp för rådataförklaringar. Standardvärde: None
|
true_ys
|
De sanna etiketterna för utvärderingsexemplen. Standardvärde: None
|
Returer
Typ | Description |
---|---|
Ett förklaringsobjekt. |
Attribut
explainer
Hämta förklaringen som används internt av adaptern.
Returer
Typ | Description |
---|---|
Förklaringen som används internt av adaptern. |