MimicWrapper Classe
Explicatif de wrapper qui réduit le nombre d’appels de fonction nécessaires à l’utilisation du package de modèle d’explication.
Initialisez le MimicWrapper.
« <<qui accepte un ndarray 2d :p aram explainable_model: Le modèle de substitution non initialisé utilisé pour expliquer le modèle de boîte noire.
Également connu sous le nom de modèle étudiant.
- Héritage
-
azureml._logging.chained_identity.ChainedIdentityMimicWrapper
Constructeur
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)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet d’espace de travail dans lequel les modèles et les jeux de données sont définis. |
model
Obligatoire
|
str ou
<xref:<xref:model that implements sklearn.predict>()> ou
<xref:sklearn.predict_proba>() ou
<xref:<xref:pipeline function that accepts a 2d ndarray>>
ID de modèle d’un modèle inscrit auprès de MMS, ou d’un pipeline ou modèle Machine Learning classique à expliquer. Si un modèle est spécifié, il doit implémenter sklearn.predict() ou sklearn.predict_proba(). Si un pipeline est spécifié, il doit inclure une fonction qui accepte un ndarray 2D. |
explainable_model
Obligatoire
|
Modèle de substitution non initialisé utilisé pour expliquer le modèle de boîte noire. Également connu sous le nom de modèle étudiant. |
explainer_kwargs
|
Arguments par mots clés associés à l’explicatif choisi, et qui ne sont pas traités ici. Ils sont passés en tant que kwargs au moment de l’initialisation de l’explicatif sous-jacent. Valeur par défaut: None
|
init_dataset
|
ID de jeu de données ou jeu de données classique utilisé pour initialiser l’explicatif (par exemple x_train). Valeur par défaut: None
|
run
|
Exécution à laquelle cette explication doit être associée. Valeur par défaut: None
|
features
|
Liste des noms des fonctionnalités. Valeur par défaut: None
|
classes
|
Noms de classes sous la forme d’une liste de chaînes. L’ordre des noms de classe doit correspondre à celui de la sortie du modèle. Obligatoire uniquement en cas d’explication du classifieur. Valeur par défaut: None
|
model_task
|
Paramètre facultatif permettant de spécifier si le modèle est un modèle de classification ou de régression. Dans la plupart des cas, le type du modèle peut être déduit en fonction de la forme de la sortie : un classifieur a une méthode predict_proba et génère un tableau à deux dimensions, alors qu’un régresseur a une méthode predict et génère un tableau à une dimension. Valeur par défaut: ModelTask.Unknown
|
explain_subset
|
Liste d’index de caractéristiques. Si ce paramètre est spécifié, Azure sélectionne uniquement un sous-ensemble des caractéristiques du jeu de données d’évaluation à des fins d’explication. Cela accélère le processus d’explication quand le nombre de caractéristiques est important, et que vous connaissez déjà l’ensemble des caractéristiques intéressantes. Le sous-ensemble peut correspondre au top k des caractéristiques du récapitulatif du modèle. Ce paramètre n’est pas pris en charge quand des transformations sont définies. Valeur par défaut: None
|
transformations
|
sklearn.compose.ColumnTransformer ou liste de tuples décrivant le nom et le transformateur de colonne. Quand des transformations sont fournies, les explications correspondent aux caractéristiques avant la transformation. Le format d’une liste de transformations est le même que celui-ci : https://github.com/scikit-learn-contrib/sklearn-pandas. Si vous utilisez une transformation qui ne figure pas dans la liste des transformations sklearn.preprocessing prises en charge par le package interpret-community, cela signifie que le paramètre ne peut pas accepter une liste de plusieurs colonnes en tant qu’entrée pour la transformation. Vous pouvez utiliser les transformations sklearn.preprocessing suivantes avec une liste de colonnes, car elles ont déjà des relations un-à-plusieurs ou un-à-un : Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler. Exemples de transformations qui fonctionnent :
Exemple de transformation qui déclenche une erreur, car elle ne peut pas être interprétée comme une transformation ayant une relation un-à-plusieurs :
Le dernier exemple ne fonctionne pas, car le package interpret-community ne peut pas déterminer si my_own_transformer fournit un mappage plusieurs-à-plusieurs ou un-à-plusieurs quand il accepte une séquence de colonnes. Un seul paramètre de « transformations » ou « feature_maps » doit être spécifié pour générer des explications brutes. La spécification des deux entraîne une exception de configuration. Valeur par défaut: None
|
feature_maps
|
Liste de mappages de fonctionnalités des fonctionnalités brutes à générées. Ce paramètre peut correspondre à une liste de tableaux numpy ou de matrices éparses, où chaque entrée de tableau (raw_index, generated_index) représente la pondération de chaque paire de caractéristiques brutes/générées. Les autres entrées sont définies sur zéro. Pour une séquence de transformations [t1, t2,..., tn] générant des fonctionnalités générées à partir de fonctionnalités brutes, la liste des mappages de fonctionnalités correspond aux mappages bruts à générés dans le même ordre que t1, t2, etc. Si le mappage de fonctionnalités brutes à générées global de t1 à tn est disponible, il est possible de transmettre uniquement cette carte de fonctionnalités dans une liste d’éléments unique. Un seul paramètre de « transformations » ou « feature_maps » doit être spécifié pour générer des explications brutes. La spécification des deux entraîne une exception de configuration. Valeur par défaut: None
|
allow_all_transformations
|
Indique s’il est nécessaire d’autoriser un grand nombre de transformations ayant une relation plusieurs-à-plusieurs. Valeur par défaut: None
|
workspace
Obligatoire
|
Objet d’espace de travail dans lequel les modèles et les jeux de données sont définis. |
model
Obligatoire
|
str ou
<xref:<xref:model that implements sklearn.predict>()> ou
<xref:sklearn.predict_proba>() ou
<xref:<xref:pipeline function>>
ID de modèle d’un modèle inscrit auprès de MMS, ou d’un pipeline ou modèle Machine Learning classique à expliquer. Si un modèle est spécifié, il doit implémenter sklearn.predict() ou sklearn.predict_proba(). Si un pipeline est spécifié, il doit inclure une fonction qui accepte un ndarray 2D. |
explainer_kwargs
Obligatoire
|
Arguments par mots clés associés à l’explicatif choisi, et qui ne sont pas traités ici. Ils sont passés en tant que kwargs au moment de l’initialisation de l’explicatif sous-jacent. |
init_dataset
Obligatoire
|
ID de jeu de données ou jeu de données standard utilisé pour initialiser l’explicatif (par exemple, x_train). |
run
Obligatoire
|
Exécution à laquelle cette explication doit être associée. |
features
Obligatoire
|
Liste des noms des fonctionnalités. |
classes
Obligatoire
|
Noms de classes sous la forme d’une liste de chaînes. L’ordre des noms de classe doit correspondre à celui de la sortie du modèle. Obligatoire uniquement en cas d’explication du classifieur. |
model_task
Obligatoire
|
Paramètre facultatif permettant de spécifier si le modèle est un modèle de classification ou de régression. Dans la plupart des cas, le type du modèle peut être déduit en fonction de la forme de la sortie : un classifieur a une méthode predict_proba et génère un tableau à deux dimensions, alors qu’un régresseur a une méthode predict et génère un tableau à une dimension. |
explain_subset
Obligatoire
|
Liste des index de caractéristiques. Si cette option est spécifiée, sélectionne uniquement un sous-ensemble de fonctionnalités dans le jeu de données d’évaluation pour l’explication, ce qui accélérera le processus d’explication lorsque le nombre de fonctionnalités est important et que l’utilisateur connaît déjà l’ensemble des fonctionnalités intéressées. Le sous-ensemble peut correspondre au top k des caractéristiques du récapitulatif du modèle. Cet argument n’est pas pris en charge lorsque les transformations sont définies. |
transformations
Obligatoire
|
sklearn.compose.ColumnTransformer ou liste de tuples décrivant le nom et le transformateur de colonne. Quand des transformations sont fournies, les explications correspondent aux caractéristiques avant la transformation. Le format d’une liste de transformations est le même que celui-ci : https://github.com/scikit-learn-contrib/sklearn-pandas. Si vous utilisez une transformation qui ne figure pas dans la liste des transformations sklearn.preprocessing prises en charge par le package interpret-community, cela signifie que le paramètre ne peut pas accepter une liste de plusieurs colonnes en tant qu’entrée pour la transformation. Vous pouvez utiliser les transformations sklearn.preprocessing suivantes avec une liste de colonnes, car elles ont déjà des relations un-à-plusieurs ou un-à-un : Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, StandardScaler. Exemples de transformations qui fonctionnent :
Exemple de transformation qui déclenche une erreur, car elle ne peut pas être interprétée comme une transformation ayant une relation un-à-plusieurs :
Le dernier exemple ne fonctionne pas, car le package interpret-community ne peut pas déterminer si my_own_transformer fournit un mappage plusieurs-à-plusieurs ou un-à-plusieurs quand il accepte une séquence de colonnes. Un seul paramètre de « transformations » ou « feature_maps » doit être spécifié pour générer des explications brutes. La spécification des deux entraîne une exception de configuration. |
feature_maps
Obligatoire
|
list[array] ou
list[csr_matrix] <xref::param allow_all_transformations: Whether to allow many to many and many to one transformations.>
Liste de mappages de fonctionnalités des fonctionnalités brutes à générées. Ce paramètre peut correspondre à une liste de tableaux numpy ou de matrices éparses, où chaque entrée de tableau (raw_index, generated_index) représente la pondération de chaque paire de caractéristiques brutes/générées. Les autres entrées sont définies sur zéro. Pour une séquence de transformations [t1, t2,..., tn] générant des fonctionnalités générées à partir de fonctionnalités brutes, la liste des mappages de fonctionnalités correspond aux mappages bruts à générés dans le même ordre que t1, t2, etc. Si le mappage de fonctionnalités brutes à générées global de t1 à tn est disponible, il est possible de transmettre uniquement cette carte de fonctionnalités dans une liste d’éléments unique. Un seul paramètre de « transformations » ou « feature_maps » doit être spécifié pour générer des explications brutes. La spécification des deux entraîne une exception de configuration. |
Remarques
La classe MimicWrapper peut être utilisée pour expliquer les modèles Machine Learning. Elle est particulièrement efficace quand elle est utilisée conjointement avec AutoML. Par exemple, à l’aide de la fonction automl_setup_model_explanations
dans le module <xref:azureml.train.automl.runtime.automl_explain_utilities>, vous pouvez utiliser MimicWrapper pour calculer et visualiser l’importance des caractéristiques. Pour plus d’informations, consultez Interprétabilité : explications des modèles dans le Machine Learning automatisé.
Dans l’exemple suivant, MimicWrapper est utilisé pour un problème de classification.
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)
Pour plus d’informations sur cet exemple, consultez ce notebook.
Méthodes
explain |
Explique le comportement d’un modèle et charge éventuellement cette explication à des fins de stockage et de visualisation. |
explain
Explique le comportement d’un modèle et charge éventuellement cette explication à des fins de stockage et de visualisation.
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)
Paramètres
Nom | Description |
---|---|
explanation_types
Obligatoire
|
Liste de chaînes représentant les types d’explication souhaités. Pour le moment, « global » et « local » sont pris en charge. Vous pouvez passer les deux en même temps. Une seule explication est retournée. |
eval_dataset
|
ID de jeu de données ou jeu de données classique utilisé pour générer l’explication. Valeur par défaut: None
|
top_k
|
Limite la quantité de données retournées et stockées dans l’historique des exécutions au top k des caractéristiques, quand cela est possible. Valeur par défaut: None
|
upload
|
Si la valeur est True, l’explication est automatiquement chargée dans l’historique des exécutions à des fins de stockage et de visualisation. Si aucune exécution n’a été passée au moment de l’initialisation, celle-ci est créée. Valeur par défaut: True
|
upload_datasets
|
Si la valeur est True et si aucun ID de jeu de données n’est passé, le jeu de données d’évaluation est chargé vers le stockage Azure. Cela permet d’améliorer la visualisation disponible dans la vue web. Valeur par défaut: False
|
tag
Obligatoire
|
Chaîne à attacher à l’explication pour la distinguer des autres après son chargement. |
get_raw
|
Si la valeur est True et si le paramètre Valeur par défaut: False
|
raw_feature_names
|
Liste des noms de caractéristiques brutes. Remplace les noms de caractéristiques d’ingénierie du constructeur. Valeur par défaut: None
|
experiment_name
|
Nom souhaité pour fournir une explication si Valeur par défaut: explain_model
|
raw_eval_dataset
|
Données d’évaluation brutes à télécharger pour des explications brutes. Valeur par défaut: None
|
true_ys
|
Les étiquettes true des exemples d’évaluation. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Objet d’explication. |
Attributs
explainer
Obtient l’explicatif utilisé de manière interne par le wrapper.
Retours
Type | Description |
---|---|
Explicatif utilisé de manière interne par le wrapper. |