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
|
ID datové sady nebo běžná datová sada použitá k inicializaci vysvětlujíče (např. x_train). Default value: None
|
|
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
|
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í:
Příklad transformace, která by vyvolala chybu, protože ji nelze interpretovat jako jednu z mnoha:
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
|
ID datové sady nebo běžná datová sada použitá k inicializaci vysvětlujíče (např. x_train). |
|
run
Vyžadováno
|
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
|
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í:
Příklad transformace, která by vyvolala chybu, protože ji nelze interpretovat jako jednu z mnoha:
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
|
ID datové sady nebo běžná datová sada použitá k vygenerování vysvětlení. Default value: None
|
|
top_k
|
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
|
Ř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 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
|
Požadovaný název, který má poskytnout vysvětlení, pokud Default value: explain_model
|
|
raw_eval_dataset
|
Nezpracovaná data, která se mají nahrát pro nezpracovaná vysvětlení. Default value: None
|
|
true_ys
|
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ě. |