Delen via


MimicWrapper Klas

Een wrapper-uitleg die het aantal functie-aanroepen vermindert dat nodig is om het uitlegmodelpakket te gebruiken.

Initialiseer de MimicWrapper.

'<<dat een 2d ndarray :p aram explainable_model accepteert: Het niet-geïnitialiseerde surrogaatmodel dat wordt gebruikt om het zwarte doosmodel uit te leggen.

Ook wel bekend als het studentmodel.

Constructor

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)

Parameters

Name Description
workspace
Vereist

Het werkruimteobject waarin de modellen en gegevenssets worden gedefinieerd.

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

De model-id van een model dat is geregistreerd bij MMS of een reguliere machine learning-model of pijplijn om uit te leggen. Als een model is opgegeven, moet het sklearn.predict() of sklearn.predict_proba() implementeren. Als een pijplijn is opgegeven, moet deze een functie bevatten die een 2d ndarray accepteert.

explainable_model
Vereist

Het niet-geïnitialiseerde surrogaatmodel dat wordt gebruikt om het zwarte doosmodel uit te leggen. Ook wel bekend als het studentmodel.

explainer_kwargs

Trefwoordargumenten die bij de gekozen uitleg worden gebruikt, worden hier niet behandeld. Ze worden doorgegeven als kwargs wanneer de onderliggende uitleg wordt geïnitialiseerd.

Default value: None
init_dataset

De gegevensset-id of de normale gegevensset die wordt gebruikt voor het initialiseren van de uitleg (bijvoorbeeld x_train).

Default value: None
run
Run

De uitvoering van deze uitleg moet worden gekoppeld aan.

Default value: None
features

Een lijst met functienamen.

Default value: None
classes

Klassenamen als een lijst met tekenreeksen. De volgorde van de klassenamen moet overeenkomen met die van de modeluitvoer. Alleen vereist als classificatie wordt uitgelegd.

Default value: None
model_task
str

Optionele parameter om op te geven of het model een classificatie- of regressiemodel is. In de meeste gevallen kan het type model worden afgeleid op basis van de vorm van de uitvoer, waarbij een classificatie een predict_proba methode heeft en een tweedimensionale matrix uitvoert, terwijl een regressor een voorspellingsmethode heeft en een 1 dimensionale matrix uitvoert.

Default value: ModelTask.Unknown
explain_subset

Een lijst met functie-indexen. Indien opgegeven, selecteert Azure alleen een subset van de functies in de evaluatiegegevensset voor uitleg, waardoor het uitlegproces wordt versneld wanneer het aantal functies groot is en u de set interessante functies al kent. De subset kan de belangrijkste functies van het modeloverzicht zijn. Deze parameter wordt niet ondersteund wanneer transformaties zijn ingesteld.

Default value: None
transformations

Een sklearn.compose.ColumnTransformer of een lijst met tuples die de kolomnaam en transformator beschrijven. Wanneer er transformaties worden gegeven, zijn uitleg van de functies vóór de transformatie. De indeling voor een lijst met transformaties is hetzelfde als hier: https://github.com/scikit-learn-contrib/sklearn-pandas.

Als u een transformatie gebruikt die niet in de lijst met sklearn.preprocessing transformaties staat die worden ondersteund door het pakket interpret-community , kan deze parameter geen lijst met meer dan één kolom als invoer voor de transformatie nemen. U kunt de volgende transformaties van sklearn.preprocessing gebruiken met een lijst met kolommen, omdat deze al één op veel of één zijn: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Voorbeelden voor transformaties die werken:


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

Een voorbeeld van een transformatie die een fout veroorzaakt omdat deze niet kan worden geïnterpreteerd als één op veel:


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

Het laatste voorbeeld werkt niet omdat het interpret-community-pakket niet kan bepalen of my_own_transformer veel of één aan veel toewijzingen geeft bij het nemen van een reeks kolommen.

Er moet slechts één parameter van 'transformaties' of 'feature_maps' worden opgegeven om onbewerkte uitleg te genereren. Als u beide opgeeft, resulteert dit in een configuratie-uitzondering.

Default value: None
feature_maps

Een lijst met functietoewijzingen van onbewerkte naar gegenereerde functie. Deze parameter kan een lijst zijn van numpy-matrices of sparse matrices waarbij elke matrixvermelding (raw_index, generated_index) het gewicht is voor elk onbewerkt, gegenereerd functiepaar. De andere vermeldingen worden ingesteld op nul. Voor een reeks transformaties [t1, t2, ..., tn] die gegenereerde functies genereren op basis van onbewerkte functies, komt de lijst met functietoewijzingen overeen met de onbewerkte om kaarten te genereren in dezelfde volgorde als t1, t2, enzovoort. Als de algemene onbewerkte om te genereren functieoverzicht van t1 tot tn beschikbaar is, kan alleen die functieoverzicht in één elementlijst worden doorgegeven.

Er moet slechts één parameter van 'transformaties' of 'feature_maps' worden opgegeven om onbewerkte uitleg te genereren. Als u beide opgeeft, resulteert dit in een configuratie-uitzondering.

Default value: None
allow_all_transformations

Of u veel tot veel en veel transformaties wilt toestaan.

Default value: None
workspace
Vereist

Het werkruimteobject waarin de modellen en gegevenssets worden gedefinieerd.

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

De model-id van een model dat is geregistreerd bij MMS of een reguliere machine learning-model of pijplijn om uit te leggen. Als een model is opgegeven, moet het sklearn.predict() of sklearn.predict_proba() implementeren. Als een pijplijn is opgegeven, moet deze een functie bevatten die een 2d ndarray accepteert.

explainer_kwargs
Vereist

Trefwoordargumenten die bij de gekozen uitleg worden gebruikt, worden hier niet behandeld. Ze worden doorgegeven als kwargs wanneer de onderliggende uitleg wordt geïnitialiseerd.

init_dataset
Vereist

De gegevensset-id of de normale gegevensset die wordt gebruikt voor het initialiseren van de uitleg (bijvoorbeeld x_train).

run
Vereist
Run

De uitvoering van deze uitleg moet worden gekoppeld aan.

features
Vereist

Een lijst met functienamen.

classes
Vereist

Klassenamen als een lijst met tekenreeksen. De volgorde van de klassenamen moet overeenkomen met die van de modeluitvoer. Alleen vereist als classificatie wordt uitgelegd.

model_task
Vereist
str

Optionele parameter om op te geven of het model een classificatie- of regressiemodel is. In de meeste gevallen kan het type model worden afgeleid op basis van de vorm van de uitvoer, waarbij een classificatie een predict_proba methode heeft en een tweedimensionale matrix uitvoert, terwijl een regressor een voorspellingsmethode heeft en een 1 dimensionale matrix uitvoert.

explain_subset
Vereist

Lijst met functie-indexen. Indien opgegeven, selecteert u alleen een subset van de functies in de evaluatiegegevensset voor uitleg, waardoor het uitlegproces wordt versneld wanneer het aantal functies groot is en de gebruiker de set geïnteresseerde functies al kent. De subset kan de belangrijkste functies van het modeloverzicht zijn. Dit argument wordt niet ondersteund wanneer transformaties zijn ingesteld.

transformations
Vereist

Een sklearn.compose.ColumnTransformer of een lijst met tuples die de kolomnaam en transformator beschrijven. Wanneer er transformaties worden gegeven, zijn uitleg van de functies vóór de transformatie. De indeling voor een lijst met transformaties is hetzelfde als hier: https://github.com/scikit-learn-contrib/sklearn-pandas.

Als u een transformatie gebruikt die niet in de lijst met sklearn.preprocessing transformaties staat die worden ondersteund door het pakket interpret-community , kan deze parameter geen lijst met meer dan één kolom als invoer voor de transformatie nemen. U kunt de volgende transformaties van sklearn.preprocessing gebruiken met een lijst met kolommen, omdat deze al één op veel of één zijn: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler.

Voorbeelden voor transformaties die werken:


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

Een voorbeeld van een transformatie die een fout veroorzaakt omdat deze niet kan worden geïnterpreteerd als één op veel:


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

Het laatste voorbeeld werkt niet omdat het interpret-community-pakket niet kan bepalen of my_own_transformer veel of één aan veel toewijzingen geeft bij het nemen van een reeks kolommen.

Er moet slechts één parameter van 'transformaties' of 'feature_maps' worden opgegeven om onbewerkte uitleg te genereren. Als u beide opgeeft, resulteert dit in een configuratie-uitzondering.

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

Een lijst met functietoewijzingen van onbewerkte naar gegenereerde functie. Deze parameter kan een lijst zijn van numpy-matrices of sparse matrices waarbij elke matrixvermelding (raw_index, generated_index) het gewicht is voor elk onbewerkt, gegenereerd functiepaar. De andere vermeldingen worden ingesteld op nul. Voor een reeks transformaties [t1, t2, ..., tn] die gegenereerde functies genereren op basis van onbewerkte functies, komt de lijst met functietoewijzingen overeen met de onbewerkte om kaarten te genereren in dezelfde volgorde als t1, t2, enzovoort. Als de algemene onbewerkte om te genereren functieoverzicht van t1 tot tn beschikbaar is, kan alleen die functieoverzicht in één elementlijst worden doorgegeven.

Er moet slechts één parameter van 'transformaties' of 'feature_maps' worden opgegeven om onbewerkte uitleg te genereren. Als u beide opgeeft, resulteert dit in een configuratie-uitzondering.

Opmerkingen

De MimicWrapper kan worden gebruikt om machine learning-modellen uit te leggen en is met name effectief in combinatie met AutoML. Als u bijvoorbeeld de automl_setup_model_explanations functie in de <xref:azureml.train.automl.runtime.automl_explain_utilities> module gebruikt, kunt u de MimicWrapper gebruiken om het belang van functies te berekenen en te visualiseren. Zie Interpreteerbaarheid voor meer informatie: modeluitleg in geautomatiseerde machine learning.

In het volgende voorbeeld wordt de MimicWrapper gebruikt in een classificatieprobleem.


   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)

Zie dit notitieblok voor meer informatie over dit voorbeeld.

Methoden

explain

Leg het gedrag van een model uit en upload desgewenst die uitleg voor opslag en visualisatie.

explain

Leg het gedrag van een model uit en upload desgewenst die uitleg voor opslag en visualisatie.

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)

Parameters

Name Description
explanation_types
Vereist

Een lijst met tekenreeksen die typen uitleg vertegenwoordigen die gewenst zijn. Op dit moment worden 'global' en 'local' ondersteund. Beide kunnen tegelijk worden doorgegeven; er wordt slechts één uitleg geretourneerd.

eval_dataset

De gegevensset-id of gewone gegevensset die wordt gebruikt om de uitleg te genereren.

Default value: None
top_k
int

Beperk indien mogelijk de hoeveelheid geretourneerde en opgeslagen gegevens in uitvoeringsgeschiedenis tot de belangrijkste k-functies.

Default value: None
upload

Indien waar, wordt de uitleg automatisch geüpload naar Uitvoeringsgeschiedenis voor opslag en visualisatie. Als er tijdens de initialisatie geen uitvoering is doorgegeven, wordt er een gemaakt.

Default value: True
upload_datasets

Als deze optie is ingesteld op Waar en er geen gegevensset-id's worden doorgegeven, wordt de evaluatiegegevensset geüpload naar Azure Storage. Dit verbetert de visualisatie die beschikbaar is in de webweergave.

Default value: False
tag
Vereist
str

Een tekenreeks die aan de uitleg moet worden gekoppeld om deze te onderscheiden van anderen na het uploaden.

get_raw

Als Waar en de parameter feature_maps tijdens de initialisatie zijn doorgegeven, is de geretourneerde uitleg voor de onbewerkte functies. Als onwaar of niet is opgegeven, is de uitleg voor de gegevens precies zoals deze worden doorgegeven.

Default value: False
raw_feature_names

De lijst met onbewerkte functienamen, waarbij de engineered functienamen van de constructor worden vervangen.

Default value: None
experiment_name
str

De gewenste naam om een uitleg te geven als upload waar is, maar er geen uitvoering is doorgegeven tijdens de initialisatie

Default value: explain_model
raw_eval_dataset

Onbewerkte evalgegevens die moeten worden geüpload voor onbewerkte uitleg.

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

De echte labels voor de evaluatievoorbeelden.

Default value: None

Retouren

Type Description

Een uitlegobject.

Kenmerken

explainer

Haal de uitleg op die intern door de wrapper wordt gebruikt.

Retouren

Type Description

De uitleg die intern door de wrapper wordt gebruikt.