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
|
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
|
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:
Een voorbeeld van een transformatie die een fout veroorzaakt omdat deze niet kan worden geïnterpreteerd als één op veel:
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
|
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
|
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:
Een voorbeeld van een transformatie die een fout veroorzaakt omdat deze niet kan worden geïnterpreteerd als één op veel:
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
|
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
|
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 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
|
De gewenste naam om een uitleg te geven als Default value: explain_model
|
raw_eval_dataset
|
Onbewerkte evalgegevens die moeten worden geüpload voor onbewerkte uitleg. Default value: None
|
true_ys
|
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. |