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.ChainedIdentityMimicWrapper
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. Default value: None
|
init_dataset
|
De gegevensset-id of normale gegevensset die wordt gebruikt voor het initialiseren van de uitlegfunctie (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 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. 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 top-k-functies uit de modelsamenvatting 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 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:
Een voorbeeld van een transformatie die een fout veroorzaakt, omdat deze niet kan worden geïnterpreteerd als een op-veel:
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. Default value: 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. Default value: None
|
allow_all_transformations
|
Of u veel-op-veel- en veel-op-een-transformaties wilt toestaan. Default value: 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
|
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 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:
Een voorbeeld van een transformatie die een fout veroorzaakt, omdat deze niet kan worden geïnterpreteerd als een op-veel:
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. Default value: None
|
top_k
|
Beperk indien mogelijk de hoeveelheid gegevens die wordt geretourneerd en opgeslagen in de 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 een uitvoering niet is doorgegeven tijdens de initialisatie, wordt er een gemaakt. Default value: 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. Default value: False
|
tag
Vereist
|
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 Default value: False
|
raw_feature_names
|
De lijst met onbewerkte functienamen, ter vervanging van ontworpen functienamen van de constructor. Default value: None
|
experiment_name
|
De gewenste naam om een uitleg te geven als waar is, Default value: explain_model
|
raw_eval_dataset
|
Onbewerkte evaluatiegegevens die moeten worden geüpload voor onbewerkte uitleg. Default value: None
|
true_ys
|
De werkelijke labels voor de evaluatievoorbeelden. Default value: 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. |