MimicWrapper Klasa

Objaśnienie otoki, które zmniejsza liczbę wywołań funkcji niezbędnych do korzystania z pakietu modelu wyjaśnień.

Zainicjuj program MimicWrapper.

"<<akceptuje 2d ndarray :p aram explainable_model: Niezainicjowany model zastępczy używany do wyjaśnienia modelu czarnej skrzynki.

Znany również jako model ucznia.

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

Parametry

Nazwa Opis
workspace
Wymagane

Obiekt obszaru roboczego, w którym zdefiniowano modele i zestawy danych.

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

Identyfikator modelu zarejestrowanego w programie MMS lub zwykłym modelu uczenia maszynowego lub potoku do wyjaśnienia. Jeśli określono model, musi on implementować element sklearn.predict() lub sklearn.predict_proba(). Jeśli określono potok, musi zawierać funkcję, która akceptuje 2d ndarray.

explainable_model
Wymagane

Niezainicjowany model zastępczy używany do wyjaśnienia modelu czarnej skrzynki. Znany również jako model ucznia.

explainer_kwargs

Wszystkie argumenty słów kluczowych, które idą z wybranym objaśniaczem, nie zostały tutaj omówione inaczej. Zostaną one przekazane jako kwargs po zainicjowaniu podstawowego objaśnienia.

Domyślna wartość: None
init_dataset

Identyfikator zestawu danych lub zwykły zestaw danych używany do inicjowania objaśnienia (np. x_train).

Domyślna wartość: None
run
Run

Uruchomienie tego wyjaśnienia powinno być skojarzone z.

Domyślna wartość: None
features

Lista nazw funkcji.

Domyślna wartość: None
classes

Nazwy klas jako lista ciągów. Kolejność nazw klas powinna być zgodna z kolejnością danych wyjściowych modelu. Wymagane tylko w przypadku wyjaśnienia klasyfikatora.

Domyślna wartość: None
model_task
str

Opcjonalny parametr określający, czy model jest modelem klasyfikacji, czy regresji. W większości przypadków typ modelu można wywnioskować na podstawie kształtu danych wyjściowych, gdzie klasyfikator ma metodę predict_proba i generuje tablicę dwuwymiarową, podczas gdy regresor ma metodę predict i zwraca tablicę wymiarową 1.

Domyślna wartość: ModelTask.Unknown
explain_subset

Lista indeksów funkcji. Jeśli zostanie określony, platforma Azure wybiera tylko podzbiór funkcji w zestawie danych oceny w celu wyjaśnienia, co przyspieszy proces wyjaśnienia, gdy liczba funkcji jest duża i znasz już zestaw interesujących funkcji. Podzbiorem mogą być najważniejsze funkcje z podsumowania modelu. Ten parametr nie jest obsługiwany w przypadku ustawiania przekształceń.

Domyślna wartość: None
transformations

Sklearn.compose.ColumnTransformer lub lista krotki opisujących nazwę kolumny i transformator. Po podaniu przekształceń wyjaśnienia dotyczą funkcji przed przekształceniem. Format listy przekształceń jest taki sam jak w tym przypadku: https://github.com/scikit-learn-contrib/sklearn-pandas.

Jeśli używasz przekształcenia, które nie znajduje się na liście przekształceń sklearn.preprocessing obsługiwanych przez pakiet interpret-community , ten parametr nie może pobrać listy więcej niż jednej kolumny jako danych wejściowych dla przekształcenia. Można użyć następujących przekształceń sklearn.preprocessing z listą kolumn, ponieważ są one już jeden do wielu lub jeden do jednego: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Przykłady przekształceń, które działają:


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

Przykład przekształcenia, który zgłosi błąd, ponieważ nie można go zinterpretować jako jednego do wielu:


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

Ostatni przykład nie zadziała, ponieważ pakiet interpret-community nie może określić, czy my_own_transformer daje wiele do wielu lub jeden do wielu mapowań podczas sekwencji kolumn.

Aby wygenerować nieprzetworzone wyjaśnienia, należy określić tylko jeden parametr z "transformations" lub "feature_maps". Określenie obu spowoduje wyjątek konfiguracji.

Domyślna wartość: None
feature_maps

Lista map funkcji z nieprzetworzonych do wygenerowanych funkcji. Ten parametr może być listą tablic numpy lub rozrzedzonych macierzy, gdzie każdy wpis tablicy (raw_index, generated_index) jest wagą dla każdej nieprzetworzonej, wygenerowanej pary cech. Pozostałe wpisy są ustawione na zero. W przypadku sekwencji przekształceń [t1, t2, ..., tn] generujących wygenerowane funkcje na podstawie nieprzetworzonych cech lista map funkcji odpowiada pierwotnej mapie generowanej w takiej samej kolejności, jak t1, t2 itp. Jeśli dostępna jest ogólna mapa funkcji nieprzetworzona do wygenerowania z t1 do tn, można przekazać tylko tę mapę funkcji na jednej liście elementów.

Aby wygenerować nieprzetworzone wyjaśnienia, należy określić tylko jeden parametr z "transformations" lub "feature_maps". Określenie obu spowoduje wyjątek konfiguracji.

Domyślna wartość: None
allow_all_transformations

Czy zezwolić wielu na wiele i wiele do jednego przekształcenia.

Domyślna wartość: None
workspace
Wymagane

Obiekt obszaru roboczego, w którym zdefiniowano modele i zestawy danych.

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

Identyfikator modelu zarejestrowanego w programie MMS lub zwykłym modelu uczenia maszynowego lub potoku do wyjaśnienia. Jeśli określono model, musi on implementować element sklearn.predict() lub sklearn.predict_proba(). Jeśli określono potok, musi zawierać funkcję, która akceptuje 2d ndarray.

explainer_kwargs
Wymagane

Wszystkie argumenty słów kluczowych, które idą z wybranym objaśniaczem, nie zostały tutaj omówione inaczej. Zostaną one przekazane jako kwargs po zainicjowaniu podstawowego objaśnienia.

init_dataset
Wymagane

Identyfikator zestawu danych lub zwykły zestaw danych używany do inicjowania objaśnienia (np. x_train).

run
Wymagane
Run

Uruchomienie tego wyjaśnienia powinno być skojarzone z.

features
Wymagane

Lista nazw funkcji.

classes
Wymagane

Nazwy klas jako lista ciągów. Kolejność nazw klas powinna być zgodna z kolejnością danych wyjściowych modelu. Wymagane tylko w przypadku wyjaśnienia klasyfikatora.

model_task
Wymagane
str

Opcjonalny parametr określający, czy model jest modelem klasyfikacji, czy regresji. W większości przypadków typ modelu można wywnioskować na podstawie kształtu danych wyjściowych, gdzie klasyfikator ma metodę predict_proba i generuje tablicę dwuwymiarową, podczas gdy regresor ma metodę predict i zwraca tablicę wymiarową 1.

explain_subset
Wymagane

Lista indeksów funkcji. Jeśli zostanie określony, wybiera tylko podzbiór funkcji w zestawie danych oceny w celu wyjaśnienia, co przyspieszy proces wyjaśnienia, gdy liczba funkcji jest duża, a użytkownik zna już zestaw zainteresowanych funkcji. Podzbiorem mogą być najważniejsze funkcje z podsumowania modelu. Ten argument nie jest obsługiwany w przypadku ustawiania przekształceń.

transformations
Wymagane

Sklearn.compose.ColumnTransformer lub lista krotki opisujących nazwę kolumny i transformator. Po podaniu przekształceń wyjaśnienia dotyczą funkcji przed przekształceniem. Format listy przekształceń jest taki sam jak w tym przypadku: https://github.com/scikit-learn-contrib/sklearn-pandas.

Jeśli używasz przekształcenia, które nie znajduje się na liście przekształceń sklearn.preprocessing obsługiwanych przez pakiet interpret-community , ten parametr nie może pobrać listy więcej niż jednej kolumny jako danych wejściowych dla przekształcenia. Można użyć następujących przekształceń sklearn.preprocessing z listą kolumn, ponieważ są one już jeden do wielu lub jeden do jednego: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Przykłady przekształceń, które działają:


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

Przykład przekształcenia, który zgłosi błąd, ponieważ nie można go zinterpretować jako jednego do wielu:


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

Ostatni przykład nie zadziała, ponieważ pakiet interpret-community nie może określić, czy my_own_transformer daje wiele do wielu lub jeden do wielu mapowań podczas sekwencji kolumn.

Aby wygenerować nieprzetworzone wyjaśnienia, należy określić tylko jeden parametr z "transformations" lub "feature_maps". Określenie obu spowoduje wyjątek konfiguracji.

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

Lista map funkcji z nieprzetworzonych do wygenerowanych funkcji. Ten parametr może być listą tablic numpy lub rozrzedzonych macierzy, gdzie każdy wpis tablicy (raw_index, generated_index) jest wagą dla każdej nieprzetworzonej, wygenerowanej pary cech. Pozostałe wpisy są ustawione na zero. W przypadku sekwencji przekształceń [t1, t2, ..., tn] generujących wygenerowane funkcje na podstawie nieprzetworzonych cech lista map funkcji odpowiada pierwotnej mapie generowanej w takiej samej kolejności, jak t1, t2 itp. Jeśli dostępna jest ogólna mapa funkcji nieprzetworzona do wygenerowania z t1 do tn, można przekazać tylko tę mapę funkcji na jednej liście elementów.

Aby wygenerować nieprzetworzone wyjaśnienia, należy określić tylko jeden parametr z "transformations" lub "feature_maps". Określenie obu spowoduje wyjątek konfiguracji.

Uwagi

Program MimicWrapper może służyć do wyjaśniania modeli uczenia maszynowego i jest szczególnie skuteczny w połączeniu z rozwiązaniem AutoML. Na przykład przy użyciu automl_setup_model_explanations funkcji w <xref:azureml.train.automl.runtime.automl_explain_utilities> module można użyć programu MimicWrapper do obliczania i wizualizowania ważności funkcji. Aby uzyskać więcej informacji, zobacz Interpretowanie: wyjaśnienia modelu w zautomatyzowanym uczeniu maszynowym.

W poniższym przykładzie program MimicWrapper jest używany w problemie klasyfikacji.


   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)

Aby uzyskać więcej informacji na temat tego przykładu, zobacz ten notes.

Metody

explain

Wyjaśnij zachowanie modelu i opcjonalnie przekaż to wyjaśnienie dotyczące magazynu i wizualizacji.

explain

Wyjaśnij zachowanie modelu i opcjonalnie przekaż to wyjaśnienie dotyczące magazynu i wizualizacji.

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)

Parametry

Nazwa Opis
explanation_types
Wymagane

Lista ciągów reprezentujących żądane typy wyjaśnień. Obecnie obsługiwane są "globalne" i "lokalne". Oba mogą zostać przekazane jednocześnie; zostanie zwrócone tylko jedno wyjaśnienie.

eval_dataset

Identyfikator zestawu danych lub zwykły zestaw danych używany do generowania wyjaśnienia.

Domyślna wartość: None
top_k
int

Ogranicz ilość danych zwracanych i przechowywanych w historii uruchamiania do najważniejszych funkcji k, jeśli to możliwe.

Domyślna wartość: None
upload

Jeśli to prawda, wyjaśnienie jest automatycznie przekazywane do historii uruchamiania na potrzeby magazynu i wizualizacji. Jeśli przebieg nie został przekazany podczas inicjowania, zostanie utworzony.

Domyślna wartość: True
upload_datasets

Jeśli ustawiono wartość True i nie przekazano żadnych identyfikatorów zestawów danych, zestaw danych oceny zostanie przekazany do usługi Azure Storage. Poprawi to wizualizację dostępną w widoku internetowym.

Domyślna wartość: False
tag
Wymagane
str

Ciąg do dołączenia do wyjaśnienia, aby odróżnić go od innych po przekazaniu.

get_raw

Jeśli wartość True i parametr feature_maps został przekazany podczas inicjowania, zwrócone wyjaśnienie będzie dotyczyć nieprzetworzonych funkcji. Jeśli wartość False lub nie zostanie określona, wyjaśnienie będzie dotyczyć danych dokładnie tak, jak są przekazywane.

Domyślna wartość: False
raw_feature_names

Lista nieprzetworzonych nazw cech, zastępując nazwy cech zaprojektowanych z konstruktora.

Domyślna wartość: None
experiment_name
str

Żądana nazwa, aby podać wyjaśnienie, jeśli upload ma wartość True, ale podczas inicjowania nie przekazano żadnego przebiegu

Domyślna wartość: explain_model
raw_eval_dataset

Nieprzetworzone dane oceny, które mają zostać przekazane w celu uzyskania nieprzetworzonych wyjaśnień.

Domyślna wartość: None
true_ys
list | <xref:pandas.Dataframe> | ndarray

Prawdziwe etykiety dla przykładów oceny.

Domyślna wartość: None

Zwraca

Typ Opis

Obiekt wyjaśnienia.

Atrybuty

explainer

Uzyskaj objaśnienie, które jest używane wewnętrznie przez otokę.

Zwraca

Typ Opis

Objaśnienie, które jest używane wewnętrznie przez otokę.