Sdílet prostřednictvím


MimicWrapper Třída

Obálka vysvětlující, která snižuje počet volání funkcí potřebných k použití balíčku modelu vysvětlení.

Inicializuje MimicWrapper.

"<<to přijímá 2d ndarray :p aram explainable_model: Neinicializovaný náhradní model použitý k vysvětlení modelu černé skříňky.

Označuje se také jako model studenta.

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

Name Description
workspace
Vyžadováno

Objekt pracovního prostoru, ve kterém jsou definovány modely a datové sady.

model
Vyžadováno
str nebo <xref:<xref:model that implements sklearn.predict>()> nebo <xref:sklearn.predict_proba>() nebo <xref:<xref:pipeline function that accepts a 2d ndarray>>

ID modelu zaregistrovaného v MMS nebo běžný model strojového učení nebo kanál, který se má vysvětlit. Pokud je zadaný model, musí implementovat sklearn.predict() nebo sklearn.predict_proba(). Pokud je zadaný kanál, musí obsahovat funkci, která přijímá 2d ndarray.

explainable_model
Vyžadováno

Neinicializovaný náhradní model použitý k vysvětlení modelu černé skříňky. Označuje se také jako model studenta.

explainer_kwargs

Všechny argumenty klíčových slov, které jsou součástí zvoleného vysvětlující metody, se zde jinak nezabývá. Při inicializaci základního vysvětlujíče se předají jako kwargs.

Default value: None
init_dataset
str nebo array nebo DataFrame nebo csr_matrix

ID datové sady nebo běžná datová sada použitá k inicializaci vysvětlujíče (např. x_train).

Default value: None
run
Run

Spuštění tohoto vysvětlení by mělo být přidružené.

Default value: None
features

Seznam názvů funkcí

Default value: None
classes

Názvy tříd jako seznam řetězců Pořadí názvů tříd by se mělo shodovat s pořadím výstupu modelu. Vyžaduje se pouze v případě vysvětlení klasifikátoru.

Default value: None
model_task
str

Volitelný parametr, který určuje, jestli je model klasifikací nebo regresní model. Ve většině případů lze typ modelu odvodit na základě tvaru výstupu, kde klasifikátor má predict_proba metodu a výstup 2 dimenzionální pole, zatímco regresor má predikci metodu a výstup 1 dimenzionální pole.

Default value: ModelTask.Unknown
explain_subset

Seznam indexů funkcí Pokud je tato možnost zadaná, Azure pro vysvětlení vybere jenom podmnožinu funkcí v datové sadě hodnocení, což urychlí proces vysvětlení, když je velký počet funkcí a už znáte sadu zajímavých funkcí. Podmnožinou můžou být funkce top-k ze souhrnu modelu. Tento parametr není podporován při nastavení transformací.

Default value: None
transformations

A sklearn.compose.ColumnTransformer nebo seznam řazených kolekcí členů popisující název sloupce a transformátor. Při poskytnutí transformací jsou vysvětlení funkcí před transformací. Formát seznamu transformací je stejný jako tento formát: https://github.com/scikit-learn-contrib/sklearn-pandas.

Pokud používáte transformaci, která není v seznamu transformací sklearn.preprocesingu podporovaných balíčkem interpret-community , nemůže tento parametr jako vstup transformace vzít seznam více než jednoho sloupce. Následující transformace sklearn.preprocesingu můžete použít se seznamem sloupců, protože už jsou jedna z nich: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Příklady transformací, které fungují:


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

Příklad transformace, která by vyvolala chybu, protože ji nelze interpretovat jako jednu z mnoha:


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

Poslední příklad by nefungoval, protože balíček interpret-community nemůže určit, jestli my_own_transformer dává mnoho nebo více mapování při přebírání posloupnosti sloupců.

K vygenerování nezpracovaných vysvětlení je potřeba zadat pouze jeden parametr z transformací nebo feature_maps. Zadání obou bude mít za následek výjimku konfigurace.

Default value: None
feature_maps

Seznam map funkcí z nezpracované na vygenerovanou funkci Tento parametr může být seznam numpy matice nebo řídkých matic, kde každá položka pole (raw_index, generated_index) je váha každého nezpracovaného páru vygenerovaných funkcí. Ostatní položky jsou nastaveny na nulu. U posloupnosti transformací [t1, t2, ..., tn] generování vygenerovaných funkcí z nezpracovaných funkcí odpovídá seznam map funkcí nezpracovaným na vygenerované mapy ve stejném pořadí jako t1, t2 atd. Pokud je k dispozici celková nezpracovaná mapa vygenerovaných funkcí z t1 na tn, je možné předat pouze tuto mapu funkcí v jednom seznamu prvků.

K vygenerování nezpracovaných vysvětlení je potřeba zadat pouze jeden parametr z transformací nebo feature_maps. Zadání obou bude mít za následek výjimku konfigurace.

Default value: None
allow_all_transformations

Zda povolit mnoho až mnoho a mnoho k jedné transformaci.

Default value: None
workspace
Vyžadováno

Objekt pracovního prostoru, ve kterém jsou definovány modely a datové sady.

model
Vyžadováno
str nebo <xref:<xref:model that implements sklearn.predict>()> nebo <xref:sklearn.predict_proba>() nebo <xref:<xref:pipeline function>>

ID modelu zaregistrovaného v MMS nebo běžný model strojového učení nebo kanál, který se má vysvětlit. Pokud je zadaný model, musí implementovat sklearn.predict() nebo sklearn.predict_proba(). Pokud je zadaný kanál, musí obsahovat funkci, která přijímá 2d ndarray.

explainer_kwargs
Vyžadováno

Všechny argumenty klíčových slov, které jsou součástí zvoleného vysvětlující metody, se zde jinak nezabývá. Při inicializaci základního vysvětlujíče se předají jako kwargs.

init_dataset
Vyžadováno
str nebo array nebo DataFrame nebo csr_matrix

ID datové sady nebo běžná datová sada použitá k inicializaci vysvětlujíče (např. x_train).

run
Vyžadováno
Run

Spuštění tohoto vysvětlení by mělo být přidružené.

features
Vyžadováno

Seznam názvů funkcí

classes
Vyžadováno

Názvy tříd jako seznam řetězců Pořadí názvů tříd by se mělo shodovat s pořadím výstupu modelu. Vyžaduje se pouze v případě vysvětlení klasifikátoru.

model_task
Vyžadováno
str

Volitelný parametr, který určuje, jestli je model klasifikací nebo regresní model. Ve většině případů lze typ modelu odvodit na základě tvaru výstupu, kde klasifikátor má predict_proba metodu a výstup 2 dimenzionální pole, zatímco regresor má predikci metodu a výstup 1 dimenzionální pole.

explain_subset
Vyžadováno

Seznam indexů funkcí Pokud je zadáno, vybere pouze podmnožinu funkcí v datové sadě vyhodnocení pro vysvětlení, což urychlí proces vysvětlení v případě, že je velký počet funkcí a uživatel už zná sadu funkcí, které vás zajímají. Podmnožinou můžou být funkce top-k ze souhrnu modelu. Tento argument není podporován při nastavení transformací.

transformations
Vyžadováno

A sklearn.compose.ColumnTransformer nebo seznam řazených kolekcí členů popisující název sloupce a transformátor. Při poskytnutí transformací jsou vysvětlení funkcí před transformací. Formát seznamu transformací je stejný jako tento formát: https://github.com/scikit-learn-contrib/sklearn-pandas.

Pokud používáte transformaci, která není v seznamu transformací sklearn.preprocesingu podporovaných balíčkem interpret-community , nemůže tento parametr jako vstup transformace vzít seznam více než jednoho sloupce. Následující transformace sklearn.preprocesingu můžete použít se seznamem sloupců, protože už jsou jedna z nich: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Příklady transformací, které fungují:


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

Příklad transformace, která by vyvolala chybu, protože ji nelze interpretovat jako jednu z mnoha:


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

Poslední příklad by nefungoval, protože balíček interpret-community nemůže určit, jestli my_own_transformer dává mnoho nebo více mapování při přebírání posloupnosti sloupců.

K vygenerování nezpracovaných vysvětlení je potřeba zadat pouze jeden parametr z transformací nebo feature_maps. Zadání obou bude mít za následek výjimku konfigurace.

feature_maps
Vyžadováno
list[array] nebo list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>

Seznam map funkcí z nezpracované na vygenerovanou funkci Tento parametr může být seznam numpy matice nebo řídkých matic, kde každá položka pole (raw_index, generated_index) je váha každého nezpracovaného páru vygenerovaných funkcí. Ostatní položky jsou nastaveny na nulu. U posloupnosti transformací [t1, t2, ..., tn] generování vygenerovaných funkcí z nezpracovaných funkcí odpovídá seznam map funkcí nezpracovaným na vygenerované mapy ve stejném pořadí jako t1, t2 atd. Pokud je k dispozici celková nezpracovaná mapa vygenerovaných funkcí z t1 na tn, je možné předat pouze tuto mapu funkcí v jednom seznamu prvků.

K vygenerování nezpracovaných vysvětlení je potřeba zadat pouze jeden parametr z transformací nebo feature_maps. Zadání obou bude mít za následek výjimku konfigurace.

Poznámky

MimicWrapper se dá použít k vysvětlení modelů strojového učení a je zvlášť efektivní ve spojení s AutoML. Pomocí funkce v automl_setup_model_explanations modulu můžete například <xref:azureml.train.automl.runtime.automl_explain_utilities> pomocí MimicWrapperu vypočítat a vizualizovat důležitost funkcí. Další informace najdete v tématu Interpretability: vysvětlení modelů v automatizovaném strojovém učení.

V následujícím příkladu se MimicWrapper používá v klasifikačním problému.


   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)

Další informace o tomto příkladu najdete v tomto poznámkovém bloku.

Metody

explain

Vysvětlete chování modelu a volitelně nahrajte vysvětlení úložiště a vizualizace.

explain

Vysvětlete chování modelu a volitelně nahrajte vysvětlení úložiště a vizualizace.

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

Name Description
explanation_types
Vyžadováno

Seznam řetězců představujících požadované typy vysvětlení V současné době se podporují "globální" a "místní". Oba mohou být předány najednou; Vrátí se pouze jedno vysvětlení.

eval_dataset
str nebo array nebo DataFrame nebo csr_matrix

ID datové sady nebo běžná datová sada použitá k vygenerování vysvětlení.

Default value: None
top_k
int

Pokud je to možné, omezte množství vrácených a uložených dat v historii spuštění na nejvyšší počet funkcí.

Default value: None
upload

Pokud je pravda, vysvětlení se automaticky nahraje do historie spuštění pro úložiště a vizualizaci. Pokud se spuštění při inicializaci nepředá, vytvoří se jeden.

Default value: True
upload_datasets

Pokud je nastavená hodnota True a nebudou předána žádná ID datových sad, nahraje se zkušební datová sada do úložiště Azure. Tím se zlepší vizualizace dostupná ve webovém zobrazení.

Default value: False
tag
Vyžadováno
str

Řetězec, který se má připojit k vysvětlení, aby se po nahrání odlišil od ostatních.

get_raw

Pokud byla při inicializaci předána hodnota True a parametr feature_maps , vrátí se vysvětlení pro nezpracované funkce. Pokud je zadána nepravda nebo není zadána, vysvětlení bude pro data přesně tak, jak jsou předána.

Default value: False
raw_feature_names

Seznam nezpracovaných názvů funkcí, který nahrazuje názvy zkonstruovaných funkcí z konstruktoru.

Default value: None
experiment_name
str

Požadovaný název, který má poskytnout vysvětlení, pokud upload je true, ale během inicializace se nepředá žádné spuštění

Default value: explain_model
raw_eval_dataset
str nebo array nebo DataFrame nebo csr_matrix

Nezpracovaná data, která se mají nahrát pro nezpracovaná vysvětlení.

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

Skutečné popisky pro příklady vyhodnocení.

Default value: None

Návraty

Typ Description

Objekt vysvětlení.

Atributy

explainer

Získejte vysvětlení, které obálka používá interně.

Návraty

Typ Description

Vysvětlující, který obálka používá interně.