Delen via


MimicWrapper Klas

Een wrapper explainer die het aantal functie-aanroepen vermindert dat nodig is om het modelpakket explain te gebruiken.

Initialiseer de MimicWrapper.

'<<that accepts a 2d ndarray :p aram explainable_model: The uninitialized surrogaat model used to explain the black box model.

Ook wel bekend als het studentmodel.

Overname
azureml._logging.chained_identity.ChainedIdentity
MimicWrapper

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 zijn 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 gewoon machine learning-model of pijplijn om uit te leggen. Als een model is opgegeven, moet dit 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 black box-model uit te leggen. Ook wel bekend als het studentmodel.

explainer_kwargs

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

standaardwaarde: None
init_dataset

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

standaardwaarde: None
run
Run

De uitvoering van deze uitleg moet worden gekoppeld aan.

standaardwaarde: None
features

Een lijst met functienamen.

standaardwaarde: 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.

standaardwaarde: 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 van het 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.

standaardwaarde: 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 top-k-functies uit de modelsamenvatting zijn. Deze parameter wordt niet ondersteund wanneer transformaties zijn ingesteld.

standaardwaarde: None
transformations

Een sklearn.compose.ColumnTransformer of een lijst met tuples die de kolomnaam en transformer beschrijven. Wanneer transformaties worden opgegeven, worden de functies voorafgaand aan de transformatie uitgelegd. De indeling voor een lijst met transformaties is dezelfde als hier: https://github.com/scikit-learn-contrib/sklearn-pandas.

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

Voorbeelden van 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 een op-veel:


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

Het laatste voorbeeld werkt niet omdat het interpret-community-pakket niet kan bepalen of my_own_transformer een veel-op-veel- of een-op-veel-toewijzingen geeft bij het maken 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.

standaardwaarde: None
feature_maps

Een lijst met functietoewijzingen van onbewerkte naar gegenereerde functie. Deze parameter kan een lijst met numpymatrices of sparse matrices zijn, 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 naar gegenereerde kaarten in dezelfde volgorde als t1, t2, enzovoort. Als de algemene onbewerkte naar gegenereerde functietoewijzing van t1 tot tn beschikbaar is, kan alleen die functietoewijzing in een lijst met één element 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.

standaardwaarde: None
allow_all_transformations

Of u veel-op-veel- en veel-op-een-transformaties wilt toestaan.

standaardwaarde: None
workspace
Vereist

Het werkruimteobject waarin de modellen en gegevenssets zijn 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 gewoon machine learning-model of pijplijn om uit te leggen. Als een model is opgegeven, moet dit 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 komen, worden hier niet behandeld. Ze worden doorgegeven als kwargs wanneer de onderliggende uitleg wordt geïnitialiseerd.

init_dataset
Vereist

De gegevensset-id of normale gegevensset die wordt gebruikt voor het initialiseren van de uitlegfunctie (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 van het 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 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 met geïnteresseerde functies al kent. De subset kan de top-k-functies uit de modelsamenvatting zijn. Dit argument wordt niet ondersteund wanneer transformaties worden ingesteld.

transformations
Vereist

Een sklearn.compose.ColumnTransformer of een lijst met tuples die de kolomnaam en transformer beschrijven. Wanneer transformaties worden opgegeven, worden de functies voorafgaand aan de transformatie uitgelegd. De indeling voor een lijst met transformaties is dezelfde als hier: https://github.com/scikit-learn-contrib/sklearn-pandas.

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

Voorbeelden van 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 een op-veel:


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

Het laatste voorbeeld werkt niet omdat het interpret-community-pakket niet kan bepalen of my_own_transformer een veel-op-veel- of een-op-veel-toewijzingen geeft bij het maken 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 met numpymatrices of sparse matrices zijn, 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 naar gegenereerde kaarten in dezelfde volgorde als t1, t2, enzovoort. Als de algemene onbewerkte naar gegenereerde functietoewijzing van t1 tot tn beschikbaar is, kan alleen die functietoewijzing in een lijst met één element 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 voor het uitleggen van machine learning-modellen 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 mimicWrapper gebruiken om de urgentie van functies te berekenen en te visualiseren. Zie Interpretability: model explanations in automated machine learning (Interpretability: model explanations in automated machine learning) voor meer informatie.

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

Het gedrag van een model uitleggen en eventueel die uitleg voor opslag en visualisatie uploaden.

explain

Het gedrag van een model uitleggen en eventueel die uitleg voor opslag en visualisatie uploaden.

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 de gewenste typen uitleg vertegenwoordigen. 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 normale gegevensset die wordt gebruikt om de uitleg te genereren.

standaardwaarde: None
top_k
int

Beperk indien mogelijk de hoeveelheid gegevens die wordt geretourneerd en opgeslagen in de Uitvoeringsgeschiedenis tot de belangrijkste k-functies.

standaardwaarde: None
upload

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

standaardwaarde: True
upload_datasets

Als deze optie is ingesteld op True 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.

standaardwaarde: False
tag
Vereist
str

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

get_raw

Als True en de parameter feature_maps zijn doorgegeven tijdens de initialisatie, 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.

standaardwaarde: False
raw_feature_names

De lijst met onbewerkte functienamen, ter vervanging van ontworpen functienamen van de constructor.

standaardwaarde: None
experiment_name
str

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

standaardwaarde: explain_model
raw_eval_dataset

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

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

De werkelijke labels voor de evaluatievoorbeelden.

standaardwaarde: None

Retouren

Type Description

Een uitlegobject.

Kenmerken

explainer

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

Retouren

Type Description

De uitlegfunctie die intern wordt gebruikt door de wrapper.