Freigeben über


MimicWrapper Klasse

Ein Wrapper-Erklärungsmodul, das die Anzahl der Funktionsaufrufe reduziert, die für die Verwendung des Modellerklärungspakets erforderlich sind.

Initialisieren Sie den MimicWrapper.

"<<, das ein 2d ndarray :p aram explainable_model akzeptiert: Das nicht initialisierte Ersatzmodell, das verwendet wird, um das Blackbox-Modell zu erklären.

Dieses wird auch als „Student Model“ bezeichnet.

Vererbung
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)

Parameter

Name Beschreibung
workspace
Erforderlich

Das Arbeitsbereichsobjekt, in dem die Modelle und Datasets definiert sind.

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

Die Modell-ID eines bei MMS registrierten Modells oder eines regulären Machine Learning-Modells oder einer ML-Pipeline, auf das bzw. die das Erklärungsmodul angewendet werden soll. Wenn ein Modell angegeben wird, muss es sklearn.predict() oder sklearn.predict_proba() implementieren. Wenn eine Pipeline angegeben wird, muss sie eine Funktion enthalten, die ein zweidimensionales Array akzeptiert.

explainable_model
Erforderlich

Das nicht initialisierte Ersatzmodell, das zum Erläutern des Blackboxmodells verwendet wird. Dieses wird auch als „Student Model“ bezeichnet.

explainer_kwargs

Die Schlüsselwortargumente, die mit dem ausgewählten Erklärungsmodule verwendet werden, werden hier nicht behandelt. Sie werden beim Initialisieren des zugrunde liegenden Erklärungsmoduls als kwargs übergeben.

Standardwert: None
init_dataset
str oder array oder DataFrame oder csr_matrix

Die Dataset-ID oder das reguläre Dataset, das zum Initialisieren des Erklärungsmoduls verwendet wird (z. B. x_train).

Standardwert: None
run
Run

Die Ausführung, der diese Erklärung zugeordnet werden sollte.

Standardwert: None
features

Eine Liste der Featurenamen

Standardwert: None
classes

Klassennamen als Zeichenfolgeliste. Die Reihenfolge der Klassennamen sollte mit der Reihenfolge der Modellausgabe übereinstimmen. Nur erforderlich, wenn der Klassifizierer erläutert wird.

Standardwert: None
model_task
str

Optionaler Parameter, um anzugeben, ob es sich um ein Klassifizierungs- oder Regressionsmodell handelt. In den meisten Fällen kann der Typ des Modells von der Form der Ausgabe abgeleitet werden, wobei ein Klassifizierer über eine predict_proba-Methode verfügt und ein zweidimensionales Array ausgibt, während ein Regressor über eine predict-Methode verfügt und ein eindimensionales Array ausgibt.

Standardwert: ModelTask.Unknown
explain_subset

Eine Liste der Featureindizes. Wenn diese angegeben ist, wählt Azure nur eine Teilmenge der Features im Auswertungsdataset zur Erklärung aus. Dies beschleunigt den Erklärungsprozess, wenn viele Features vorhanden sind und Sie bereits wissen, welche Features relevant sind. Die Teilmenge könnte zum Beispiel die Top-k-Features aus der Modellzusammenfassung sein. Dieser Parameter wird nicht unterstützt, wenn Transformationen festgelegt werden.

Standardwert: None
transformations

Ein sklearn.compose.ColumnTransformer oder eine Liste der Tupel, die den Spaltennamen und den Transformer beschreiben. Wenn Transformationen bereitgestellt werden, werden Erklärungen zu den Features vor der Transformation angegeben. Eine Transformationsliste weist das folgende Format auf: https://github.com/scikit-learn-contrib/sklearn-pandas.

Wenn Sie eine Transformation verwenden, die nicht in der Liste der sklearn.preprocessing-Transformationen enthalten ist, die vom interpret-community-Paket unterstützt werden, kann dieser Parameter keine Liste mit mehr als einer Spalte als Eingabe für die Transformation verwenden. Sie können die folgenden sklearn.preprocessing-Transformationen mit einer Spaltenliste verwenden, da es sich bereits um 1:1- oder 1:n-Transformationen handelt: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler und StandardScaler.

Beispiele für funktionierende Transformationen:


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

Ein Beispiel für eine Transformation, die einen Fehler verursacht, da sie nicht als 1:n-Transformation interpretiert werden kann:


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

Das letzte Beispiel funktioniert nicht, da das interpret-community-Paket nicht bestimmen kann, ob my_own_transformer beim Annehmen einer Spaltensequenz eine m:n- oder 1:n-Zuordnung angibt.

Es sollte nur ein Parameter aus "Transformationen" oder "feature_maps" angegeben werden, um unformatierte Erklärungen zu generieren. Die Angabe von beidem führt zu konfigurationsseitiger Ausnahme.

Standardwert: None
feature_maps

Eine Liste der Featurezuordnungen von rohen zu generierten Features. Dieser Parameter kann eine Liste aus Numpy-Arrays oder schwach besetzten Matrizen sein, wobei jeder Arrayeintrag (raw_index, generated_index) der Gewichtung für jedes rohe, generierte Featurepaar entspricht. Die anderen Einträge werden auf „null“ festgelegt. Bei einer Transformationssequenz [t1, t2, …, tn], in der generierte Features aus Rohfeatures entstehen, entspricht die Liste der Featurezuordnungen den Zuordnungen von roh zu generiert in derselben Reihenfolge wie t1, t2 und so weiter. Wenn die gesamte Featurezuordnung von roh zu generiert von t1 bis tn verfügbar ist, kann nur diese Featurezuordnung in einer einzelnen Elementliste übergeben werden.

Es sollte nur ein Parameter aus "Transformationen" oder "feature_maps" angegeben werden, um unformatierte Erklärungen zu generieren. Die Angabe von beidem führt zu konfigurationsseitiger Ausnahme.

Standardwert: None
allow_all_transformations

Gibt an, ob m:n- und n:1-Transformationen zulässig sind.

Standardwert: None
workspace
Erforderlich

Das Arbeitsbereichsobjekt, in dem die Modelle und Datasets definiert sind.

model
Erforderlich
str oder <xref:<xref:model that implements sklearn.predict>()> oder <xref:sklearn.predict_proba>() oder <xref:<xref:pipeline function>>

Die Modell-ID eines bei MMS registrierten Modells oder eines regulären Machine Learning-Modells oder einer ML-Pipeline, auf das bzw. die das Erklärungsmodul angewendet werden soll. Wenn ein Modell angegeben wird, muss es sklearn.predict() oder sklearn.predict_proba() implementieren. Wenn eine Pipeline angegeben wird, muss sie eine Funktion enthalten, die ein zweidimensionales Array akzeptiert.

explainer_kwargs
Erforderlich

Die Schlüsselwortargumente, die mit dem ausgewählten Erklärungsmodule verwendet werden, werden hier nicht behandelt. Sie werden beim Initialisieren des zugrunde liegenden Erklärungsmoduls als kwargs übergeben.

init_dataset
Erforderlich
str oder array oder DataFrame oder csr_matrix

Die Dataset-ID oder das reguläre Dataset, das zum Initialisieren des Erklärers verwendet wird (z. B. x_train).

run
Erforderlich
Run

Die Ausführung, der diese Erklärung zugeordnet werden sollte.

features
Erforderlich

Eine Liste der Featurenamen

classes
Erforderlich

Klassennamen als Zeichenfolgeliste. Die Reihenfolge der Klassennamen sollte mit der Reihenfolge der Modellausgabe übereinstimmen. Nur erforderlich, wenn der Klassifizierer erläutert wird.

model_task
Erforderlich
str

Optionaler Parameter, um anzugeben, ob es sich um ein Klassifizierungs- oder Regressionsmodell handelt. In den meisten Fällen kann der Typ des Modells von der Form der Ausgabe abgeleitet werden, wobei ein Klassifizierer über eine predict_proba-Methode verfügt und ein zweidimensionales Array ausgibt, während ein Regressor über eine predict-Methode verfügt und ein eindimensionales Array ausgibt.

explain_subset
Erforderlich

Liste der Featureindizes. Wenn angegeben, wählt nur eine Teilmenge der Features im Auswertungsdataset zur Erklärung aus, wodurch der Erklärungsprozess beschleunigt wird, wenn die Anzahl der Features groß ist und der Benutzer den Satz der interessierten Features bereits kennt. Die Teilmenge könnte zum Beispiel die Top-k-Features aus der Modellzusammenfassung sein. Dieses Argument wird nicht unterstützt, wenn Transformationen festgelegt werden.

transformations
Erforderlich

Ein sklearn.compose.ColumnTransformer oder eine Liste der Tupel, die den Spaltennamen und den Transformer beschreiben. Wenn Transformationen bereitgestellt werden, werden Erklärungen zu den Features vor der Transformation angegeben. Eine Transformationsliste weist das folgende Format auf: https://github.com/scikit-learn-contrib/sklearn-pandas.

Wenn Sie eine Transformation verwenden, die nicht in der Liste der sklearn.preprocessing-Transformationen enthalten ist, die vom interpret-community-Paket unterstützt werden, kann dieser Parameter keine Liste mit mehr als einer Spalte als Eingabe für die Transformation verwenden. Sie können die folgenden sklearn.preprocessing-Transformationen mit einer Spaltenliste verwenden, da es sich bereits um 1:1- oder 1:n-Transformationen handelt: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler und StandardScaler.

Beispiele für funktionierende Transformationen:


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

Ein Beispiel für eine Transformation, die einen Fehler verursacht, da sie nicht als 1:n-Transformation interpretiert werden kann:


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

Das letzte Beispiel funktioniert nicht, da das interpret-community-Paket nicht bestimmen kann, ob my_own_transformer beim Annehmen einer Spaltensequenz eine m:n- oder 1:n-Zuordnung angibt.

Es sollte nur ein Parameter aus "Transformationen" oder "feature_maps" angegeben werden, um unformatierte Erklärungen zu generieren. Die Angabe von beidem führt zu konfigurationsseitiger Ausnahme.

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

Eine Liste der Featurezuordnungen von rohen zu generierten Features. Dieser Parameter kann eine Liste aus Numpy-Arrays oder schwach besetzten Matrizen sein, wobei jeder Arrayeintrag (raw_index, generated_index) der Gewichtung für jedes rohe, generierte Featurepaar entspricht. Die anderen Einträge werden auf „null“ festgelegt. Bei einer Transformationssequenz [t1, t2, …, tn], in der generierte Features aus Rohfeatures entstehen, entspricht die Liste der Featurezuordnungen den Zuordnungen von roh zu generiert in derselben Reihenfolge wie t1, t2 und so weiter. Wenn die gesamte Featurezuordnung von roh zu generiert von t1 bis tn verfügbar ist, kann nur diese Featurezuordnung in einer einzelnen Elementliste übergeben werden.

Es sollte nur ein Parameter aus "Transformationen" oder "feature_maps" angegeben werden, um unformatierte Erklärungen zu generieren. Die Angabe von beidem führt zu konfigurationsseitiger Ausnahme.

Hinweise

Die MimicWrapper-Klasse kann zur Erklärung von Machine Learning-Modellen verwendet werden. In Kombination mit automatisiertem maschinellen Lernen ist sie besonders effektiv. Wenn Sie beispielsweise die Funktion automl_setup_model_explanations im Modul <xref:azureml.train.automl.runtime.automl_explain_utilities> verwenden, können Sie mit MimicWrapper die Featurerelevanz berechnen und visualisieren. Weitere Informationen finden Sie unter Interpretierbarkeit: Modellerklärungen beim automatisierten maschinellen Lernen.

Im folgenden Beispiel wird MimicWrapper in einem Klassifizierungsproblem verwendet.


   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)

Weitere Informationen zu diesem Beispiel finden Sie in diesem Notebook.

Methoden

explain

Hiermit können Sie das Modellverhalten erklären und diese Erklärung optional zu Speicher- und Visualisierungszwecken hochladen.

explain

Hiermit können Sie das Modellverhalten erklären und diese Erklärung optional zu Speicher- und Visualisierungszwecken hochladen.

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)

Parameter

Name Beschreibung
explanation_types
Erforderlich

Eine Zeichenfolgeliste, die die gewünschten Erklärungsarten darstellen. Derzeit werden „global“ und „local“ unterstützt. Beide können gleichzeitig übergeben werden, doch nur eine Erklärung wird zurückgegeben.

eval_dataset
str oder array oder DataFrame oder csr_matrix

Die Dataset-ID oder das reguläre Dataset, das zum Generieren der Erklärung verwendet wird.

Standardwert: None
top_k
int

Beschränken Sie die Menge der zurückgegebenen und im Ausführungsverlauf gespeicherten Daten nach Möglichkeit auf die Top-k-Features.

Standardwert: None
upload

Der Wert „True“ gibt an, dass die Erklärung zur Speicherung und Visualisierung automatisch in den Ausführungsverlauf hochgeladen wird. Wenn bei der Initialisierung keine Ausführung übergeben wurde, wird eine erstellt.

Standardwert: True
upload_datasets

Wenn „True“ festgelegt ist und keine Dataset-IDs übergeben werden, wird das Auswertungsdataset in Azure Storage hochgeladen. Dadurch wird die in der Webansicht verfügbare Visualisierung verbessert.

Standardwert: False
tag
Erforderlich
str

Eine Zeichenfolge, die an die Erklärung angefügt werden soll, um sie nach dem Upload von anderen zu unterscheiden.

get_raw

Wenn der Wert „True“ lautet und der Parameter feature_maps während der Initialisierung übergeben wurde, wird die zurückgegebene Erklärung für die Rohfeatures zurückgegeben. Wenn der Wert „False“ lautet oder nicht angegeben ist, wird die Erklärung für die Daten genau so verwendet, wie sie übergeben wurde.

Standardwert: False
raw_feature_names

Die Namensliste der Rohfeatures, wobei die Namen der entwickelten Features aus dem Konstruktor ersetzt werden.

Standardwert: None
experiment_name
str

Der gewünschte Name für eine Erklärung, wenn upload den Wert „True“ aufweist, aber während der Initialisierung keine Ausführung übergeben wurde

Standardwert: explain_model
raw_eval_dataset
str oder array oder DataFrame oder csr_matrix

Unformatierte Auswertungsdaten, die für Roherklärungen hochgeladen werden sollen

Standardwert: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

Die richtigen Bezeichnungen für die Auswertungsbeispiele

Standardwert: None

Gibt zurück

Typ Beschreibung

Ein Erklärungsobjekt

Attribute

explainer

Rufen Sie das Erklärungsmodul ab, das intern vom Wrapper verwendet wird.

Gibt zurück

Typ Beschreibung

Das Erklärungsmodul, das intern vom Wrapper verwendet wird.