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.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)
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 w celu wyjaśnienia. Jeśli określono model, musi zaimplementować element sklearn.predict() lub sklearn.predict_proba(). Jeśli potok jest określony, 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
|
Wszelkie argumenty słów kluczowych, które przechodzą z wybranym wyjaśnieniem, w przeciwnym razie nie zostały tutaj omówione. Zostaną one przekazane jako kwargs, gdy podstawowy objaśnienie zostanie zainicjowane. Domyślna wartość: None
|
init_dataset
|
Identyfikator zestawu danych lub zwykły zestaw danych używany do inicjowania modułu wyjaśniającego (np. x_train). Domyślna wartość: None
|
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 danymi wyjściowymi modelu. Wymagane tylko w przypadku wyjaśnienia klasyfikatora. Domyślna wartość: None
|
model_task
|
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 wyprowadza tablicę 2 wymiarową, a regresor ma metodę przewidywania i wyprowadza 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 ewaluacyjnych w celu wyjaśnienia, co przyspieszy proces wyjaśnienia, gdy liczba funkcji jest duża i znasz już zestaw interesujących funkcji. Podzestaw może być top-k funkcji 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 udostępnieniu przekształceń objaśnienia są cechami przed przekształceniem. Format listy przekształceń jest taki sam jak w tym miejscu: 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 przyjąć listy więcej niż jednej kolumny jako danych wejściowych dla transformacji. 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ą:
Przykład przekształcenia, który zgłosi błąd, ponieważ nie można go zinterpretować jako jeden do wielu:
Ostatni przykład nie działa, ponieważ pakiet interpret-community nie może określić, czy my_own_transformer daje wiele do wielu mapowań w przypadku sekwencji kolumn. Należy określić tylko jeden parametr z "transforms" lub "feature_maps", aby wygenerować nieprzetworzone wyjaśnienia. Określenie obu spowoduje wyjątek konfiguracji. Domyślna wartość: None
|
feature_maps
|
Lista map funkcji z nieprzetworzonej do wygenerowanej 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 z nieprzetworzonych funkcji, lista map funkcji odpowiada nieprzetworzonym mapom wygenerowanym w tej samej kolejności co t1, t2 itp. Jeśli dostępna jest ogólna mapa funkcji nieprzetworzona do wygenerowanej z t1 do tn, można przekazać tylko tę mapę funkcji na jednej liście elementów. Należy określić tylko jeden parametr z "transforms" lub "feature_maps", aby wygenerować nieprzetworzone wyjaśnienia. 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 w celu wyjaśnienia. Jeśli określono model, musi zaimplementować element sklearn.predict() lub sklearn.predict_proba(). Jeśli potok jest określony, musi zawierać funkcję, która akceptuje 2d ndarray. |
explainer_kwargs
Wymagane
|
Wszelkie argumenty słów kluczowych, które przechodzą z wybranym wyjaśnieniem, w przeciwnym razie nie zostały tutaj omówione. Zostaną one przekazane jako kwargs, gdy podstawowy objaśnienie zostanie zainicjowane. |
init_dataset
Wymagane
|
Identyfikator zestawu danych lub zwykły zestaw danych używany do inicjowania objaśnienia (np. x_train). |
run
Wymagane
|
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 danymi wyjściowymi modelu. Wymagane tylko w przypadku wyjaśnienia klasyfikatora. |
model_task
Wymagane
|
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 wyprowadza tablicę 2 wymiarową, a regresor ma metodę przewidywania i wyprowadza tablicę wymiarową 1. |
explain_subset
Wymagane
|
Lista indeksów funkcji. Jeśli zostanie określony, wybierze 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. Podzestaw może być top-k funkcji 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 udostępnieniu przekształceń objaśnienia są cechami przed przekształceniem. Format listy przekształceń jest taki sam jak w tym miejscu: 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 przyjąć listy więcej niż jednej kolumny jako danych wejściowych dla transformacji. 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ą:
Przykład przekształcenia, który zgłosi błąd, ponieważ nie można go zinterpretować jako jeden do wielu:
Ostatni przykład nie działa, ponieważ pakiet interpret-community nie może określić, czy my_own_transformer daje wiele do wielu mapowań w przypadku sekwencji kolumn. Należy określić tylko jeden parametr z "transforms" lub "feature_maps", aby wygenerować nieprzetworzone wyjaśnienia. 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 nieprzetworzonej do wygenerowanej 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 z nieprzetworzonych funkcji, lista map funkcji odpowiada nieprzetworzonym mapom wygenerowanym w tej samej kolejności co t1, t2 itp. Jeśli dostępna jest ogólna mapa funkcji nieprzetworzona do wygenerowanej z t1 do tn, można przekazać tylko tę mapę funkcji na jednej liście elementów. Należy określić tylko jeden parametr z "transforms" lub "feature_maps", aby wygenerować nieprzetworzone wyjaśnienia. 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ą być przekazywane 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
|
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 prawda, wyjaśnienie zostanie automatycznie przekazane do historii uruchamiania dla 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
|
Ciąg do dołączenia do wyjaśnienia, aby odróżnić go od innych po przekazaniu. |
get_raw
|
Jeśli wartość True i parametr 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
|
Żądana nazwa, aby podać wyjaśnienie, jeśli 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
|
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ę. |