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.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)
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
|
Die Dataset-ID oder das reguläre Dataset, das zum Initialisieren des Erklärungsmoduls verwendet wird (z. B. x_train). Standardwert: None
|
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
|
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:
Ein Beispiel für eine Transformation, die einen Fehler verursacht, da sie nicht als 1:n-Transformation interpretiert werden kann:
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
|
Die Dataset-ID oder das reguläre Dataset, das zum Initialisieren des Erklärers verwendet wird (z. B. x_train). |
run
Erforderlich
|
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
|
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:
Ein Beispiel für eine Transformation, die einen Fehler verursacht, da sie nicht als 1:n-Transformation interpretiert werden kann:
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
|
Die Dataset-ID oder das reguläre Dataset, das zum Generieren der Erklärung verwendet wird. Standardwert: None
|
top_k
|
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
|
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 Standardwert: False
|
raw_feature_names
|
Die Namensliste der Rohfeatures, wobei die Namen der entwickelten Features aus dem Konstruktor ersetzt werden. Standardwert: None
|
experiment_name
|
Der gewünschte Name für eine Erklärung, wenn Standardwert: explain_model
|
raw_eval_dataset
|
Unformatierte Auswertungsdaten, die für Roherklärungen hochgeladen werden sollen Standardwert: None
|
true_ys
|
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. |