Dela via


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.ChainedIdentity
MimicWrapper

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
str eller array eller DataFrame eller csr_matrix

Datamängds-ID eller vanlig datauppsättning som används för att initiera förklaringen (t.ex. x_train).

standardvärde: None
run
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
str

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:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

Ett exempel på en transformering som skulle generera ett fel eftersom den inte kan tolkas som en till många:


   [
       (["col1", "col2"], my_own_transformer)
   ]

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
str eller array eller DataFrame eller csr_matrix

Datamängds-ID eller vanlig datauppsättning som används för att initiera förklaringen (t.ex. x_train).

run
Obligatorisk
Run

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
str

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:


   [
       (["col1", "col2"], sklearn_one_hot_encoder),
       (["col3"], None) #col3 passes as is
   ]
   [
       (["col1"], my_own_transformer),
       (["col2"], my_own_transformer),
   ]

Ett exempel på en transformering som skulle generera ett fel eftersom den inte kan tolkas som en till många:


   [
       (["col1", "col2"], my_own_transformer)
   ]

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
str eller array eller DataFrame eller csr_matrix

Det datauppsättnings-ID eller den vanliga datauppsättning som används för att generera förklaringen.

standardvärde: None
top_k
int

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
str

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 feature_maps skickades under initieringen kommer förklaringen som returneras att vara för rådatafunktionerna. Om falskt eller inte anges är förklaringen till data exakt som de skickas in.

standardvärde: False
raw_feature_names

Listan över råa funktionsnamn, som ersätter konstruerade funktionsnamn från konstruktorn.

standardvärde: None
experiment_name
str

Önskat namn för att ge en förklaring om upload är Sant men ingen körning skickades under initieringen

standardvärde: explain_model
raw_eval_dataset
str eller array eller DataFrame eller csr_matrix

Råa evaldata som ska laddas upp för rådataförklaringar.

standardvärde: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

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.