Compartir a través de


MimicWrapper Clase

Explicador de contenedor que reduce el número de llamadas de función necesarias para usar el paquete del modelo de explicación.

Inicialice mimicWrapper.

"<<que acepta un ndarray 2d :p aram explainable_model: el modelo suplente sin inicializar usado para explicar el modelo de caja negra.

También se conoce como modelo de alumno.

Herencia
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)

Parámetros

Nombre Description
workspace
Requerido

Objeto de área de trabajo donde se definen los modelos y conjuntos de datos.

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

Identificador de modelo de un modelo registrado en MMS o una canalización o modelo de Machine Learning normal que se va a explicar. Si se especifica un modelo, debe implementar sklearn.predict() o sklearn.predict_proba(). Si se especifica una canalización, debe incluir una función que acepte un elemento ndarray de dos dimensiones.

explainable_model
Requerido

Modelo suplente no inicializado que se usa para explicar el modelo de caja negra. También se conoce como modelo de alumno.

explainer_kwargs

Los argumentos de palabra clave que van con el explicador elegido no se tratan aquí. Se pasarán como kwargs cuando se inicialice el explicador subyacente.

Valor predeterminado: None
init_dataset

Identificador del conjunto de datos o del conjunto de datos regular que se usa para inicializar el explicador (por ejemplo, x_train).

Valor predeterminado: None
run
Run

Ejecución a la que se debe asociar esta explicación.

Valor predeterminado: None
features

Lista de nombres de características.

Valor predeterminado: None
classes

Nombres de clase como una lista de cadenas. El orden de los nombres de clase debe coincidir con el de la salida del modelo. Solo es necesario si se explica un clasificador.

Valor predeterminado: None
model_task
str

Parámetro opcional para especificar si el modelo es un modelo de clasificación o de regresión. En la mayoría de los casos, el tipo del modelo se puede inferir en función de la forma de la salida, donde un clasificador tiene un método predict_proba y genera una matriz de dos dimensiones, mientras que un regresor tiene un método predict y genera una matriz de una dimensión.

Valor predeterminado: ModelTask.Unknown
explain_subset

Lista de índices de características. Si se especifica, Azure solo selecciona un subconjunto de las características del conjunto de datos de evaluación para su explicación, lo que acelerará el proceso de explicación cuando el número de características sea grande y ya se conozca el conjunto de características interesantes. El subconjunto pueden ser las características K principales del resumen del modelo. Este parámetro no se admite cuando se establecen transformaciones.

Valor predeterminado: None
transformations

Elemento Sklearn.compose.ColumnTransformer o una lista de tuplas que describen el nombre de columna y el transformador. Cuando se proporcionan transformaciones, las explicaciones son de las características anteriores a la transformación. El formato de una lista de transformaciones es el mismo que el que se muestra aquí: https://github.com/scikit-learn-contrib/sklearn-pandas.

Si usa una transformación que no está en la lista de transformaciones sklearn.preprocessing compatibles con el paquete interpret-community, este parámetro no puede tomar una lista de más de una columna como entrada para la transformación. Puede usar las siguientes transformaciones sklearn.preprocessing con una lista de columnas, puesto que ya son de uno a varios o de uno a uno: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler y StandardScaler.

Ejemplos de transformaciones que funcionan:


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

Ejemplo de una transformación que generaría un error, ya que no se puede interpretar como de uno a varios:


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

El último ejemplo no funcionaría, ya que el paquete interpret-community no puede determinar si my_own_transformer proporciona una asignación de varios a varios o de uno a varios al tomar una secuencia de columnas.

Solo se debe especificar un parámetro de "transformaciones" o "feature_maps" para generar explicaciones sin procesar. Si se especifican ambos, se producirá una excepción de configuración.

Valor predeterminado: None
feature_maps

Lista de asignaciones de características sin procesar a características generadas. Este parámetro puede ser una lista de matrices numpy o matrices dispersas donde cada entrada de matriz (raw_index, generated_index) es la ponderación de cada par de características sin procesar y generada. Las demás entradas se establecen en cero. Para una secuencia de transformaciones [t1, t2, ..., tn] que generan características generadas a partir de características sin procesar, la lista de asignaciones de características corresponde a las asignaciones de sin procesar a generadas en el mismo orden que t1, t2, etc. Si la asignación general de características de sin procesar a generada de t1 a tn está disponible, solo se puede pasar esa asignación de características en una lista de elementos únicos.

Solo se debe especificar un parámetro de "transformaciones" o "feature_maps" para generar explicaciones sin procesar. Si se especifican ambos, se producirá una excepción de configuración.

Valor predeterminado: None
allow_all_transformations

Indica si se permiten transformaciones de varios a varios y de varios a uno.

Valor predeterminado: None
workspace
Requerido

Objeto de área de trabajo donde se definen los modelos y conjuntos de datos.

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

Identificador de modelo de un modelo registrado en MMS o una canalización o modelo de Machine Learning normal que se va a explicar. Si se especifica un modelo, debe implementar sklearn.predict() o sklearn.predict_proba(). Si se especifica una canalización, debe incluir una función que acepte un elemento ndarray de dos dimensiones.

explainer_kwargs
Requerido

Los argumentos de palabra clave que van con el explicador elegido no se tratan aquí. Se pasarán como kwargs cuando se inicialice el explicador subyacente.

init_dataset
Requerido

Identificador del conjunto de datos o conjunto de datos normal usado para inicializar el explicador (por ejemplo, x_train).

run
Requerido
Run

Ejecución a la que se debe asociar esta explicación.

features
Requerido

Lista de nombres de características.

classes
Requerido

Nombres de clase como una lista de cadenas. El orden de los nombres de clase debe coincidir con el de la salida del modelo. Solo es necesario si se explica un clasificador.

model_task
Requerido
str

Parámetro opcional para especificar si el modelo es un modelo de clasificación o de regresión. En la mayoría de los casos, el tipo del modelo se puede inferir en función de la forma de la salida, donde un clasificador tiene un método predict_proba y genera una matriz de dos dimensiones, mientras que un regresor tiene un método predict y genera una matriz de una dimensión.

explain_subset
Requerido

Lista de índices de características. Si se especifica, solo selecciona un subconjunto de las características del conjunto de datos de evaluación para obtener una explicación, lo que acelerará el proceso de explicación cuando el número de características sea grande y el usuario ya conoce el conjunto de características interesadas. El subconjunto pueden ser las características K principales del resumen del modelo. Este argumento no se admite cuando se establecen transformaciones.

transformations
Requerido

Elemento Sklearn.compose.ColumnTransformer o una lista de tuplas que describen el nombre de columna y el transformador. Cuando se proporcionan transformaciones, las explicaciones son de las características anteriores a la transformación. El formato de una lista de transformaciones es el mismo que el que se muestra aquí: https://github.com/scikit-learn-contrib/sklearn-pandas.

Si usa una transformación que no está en la lista de transformaciones sklearn.preprocessing compatibles con el paquete interpret-community, este parámetro no puede tomar una lista de más de una columna como entrada para la transformación. Puede usar las siguientes transformaciones sklearn.preprocessing con una lista de columnas, puesto que ya son de uno a varios o de uno a uno: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler y StandardScaler.

Ejemplos de transformaciones que funcionan:


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

Ejemplo de una transformación que generaría un error, ya que no se puede interpretar como de uno a varios:


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

El último ejemplo no funcionaría, ya que el paquete interpret-community no puede determinar si my_own_transformer proporciona una asignación de varios a varios o de uno a varios al tomar una secuencia de columnas.

Solo se debe especificar un parámetro de "transformaciones" o "feature_maps" para generar explicaciones sin procesar. Si se especifican ambos, se producirá una excepción de configuración.

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

Lista de asignaciones de características sin procesar a características generadas. Este parámetro puede ser una lista de matrices numpy o matrices dispersas donde cada entrada de matriz (raw_index, generated_index) es la ponderación de cada par de características sin procesar y generada. Las demás entradas se establecen en cero. Para una secuencia de transformaciones [t1, t2, ..., tn] que generan características generadas a partir de características sin procesar, la lista de asignaciones de características corresponde a las asignaciones de sin procesar a generadas en el mismo orden que t1, t2, etc. Si la asignación general de características de sin procesar a generada de t1 a tn está disponible, solo se puede pasar esa asignación de características en una lista de elementos únicos.

Solo se debe especificar un parámetro de "transformaciones" o "feature_maps" para generar explicaciones sin procesar. Si se especifican ambos, se producirá una excepción de configuración.

Comentarios

MimicWrapper se puede usar para explicar modelos de Machine Learning y es especialmente eficaz junto con AutoML. Por ejemplo, mediante la función automl_setup_model_explanations del módulo <xref:azureml.train.automl.runtime.automl_explain_utilities>, puede usar MimicWrapper para calcular y visualizar la importancia de las características. Para más información, consulte Interpretación: capacidad de explicación de modelos de aprendizaje automático automatizado (versión preliminar).

En el ejemplo siguiente, se usa MimicWrapper en un problema de clasificación.


   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)

Para más información sobre este ejemplo, consulte este cuaderno.

Métodos

explain

Explica el comportamiento de un modelo y, opcionalmente, carga esa explicación para su almacenamiento y visualización.

explain

Explica el comportamiento de un modelo y, opcionalmente, carga esa explicación para su almacenamiento y visualización.

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)

Parámetros

Nombre Description
explanation_types
Requerido

Lista de cadenas que representan los tipos de explicaciones deseados. Actualmente, se admiten "global" y "local". Ambos se pueden pasar a la vez; solo se devolverá una explicación.

eval_dataset

Identificador del conjunto de datos o el conjunto de datos regular que se usa para generar la explicación.

Valor predeterminado: None
top_k
int

Limita la cantidad de datos devueltos y almacenados en el historial de ejecución a las características K principales, cuando sea posible.

Valor predeterminado: None
upload

Si es True, la explicación se carga automáticamente en el historial de ejecución para su almacenamiento y visualización. Si no se ha pasado una ejecución en la inicialización, se crea una.

Valor predeterminado: True
upload_datasets

Si se establece en True y no se pasan identificadores de conjuntos de datos, se cargará el conjunto de datos de evaluación en Azure Storage. Esto mejorará la visualización disponible en la vista web.

Valor predeterminado: False
tag
Requerido
str

Cadena que se va a adjuntar a la explicación para distinguirla de otras después de la carga.

get_raw

Si es True y se ha pasado el parámetro feature_maps durante la inicialización, la explicación devuelta será para las características sin procesar. Si es False o no se especifica, la explicación será para los datos exactamente como se hayan pasado.

Valor predeterminado: False
raw_feature_names

Lista de nombres de características sin procesar, reemplazando los nombres de características diseñadas del constructor.

Valor predeterminado: None
experiment_name
str

Nombre deseado que se va a dar una explicación si upload es True pero no se pasó ninguna ejecución durante la inicialización

Valor predeterminado: explain_model
raw_eval_dataset

Datos de eval sin procesar que se cargarán para obtener explicaciones sin procesar.

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

Etiquetas True para los ejemplos de evaluación.

Valor predeterminado: None

Devoluciones

Tipo Description

Objeto de explicación.

Atributos

explainer

Obtiene el explicador utilizado internamente por el contenedor.

Devoluciones

Tipo Description

Explicador utilizado internamente por el contenedor.