Compartir a través de


MimicWrapper Clase

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

Inicialice mimicWrapper.

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

También conocido como modelo de alumno.

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 en un modelo o canalización de aprendizaje automático normal para explicarlo. 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 ndarray 2d.

explainable_model
Requerido

Modelo suplente sin inicializar que se usa para explicar el modelo de caja negra. También conocido 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 conjunto de datos normal que se usa para inicializar el explicador (por ejemplo, x_train).

Valor predeterminado: None
run
Run

La ejecución de esta explicación debe estar asociada.

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 el clasificador.

Valor predeterminado: None
model_task
str

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

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 es grande y ya conoce el conjunto de características interesantes. El subconjunto puede ser las características principales k del resumen del modelo. Este parámetro no se admite cuando se establecen transformaciones.

Valor predeterminado: None
transformations

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 antes de la transformación. El formato de una lista de transformaciones es el mismo que el siguiente: 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, ya que estas ya son una a varias o una: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, 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),
   ]

Un ejemplo de una transformación que generaría un error, ya que no se puede interpretar como 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 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

Una lista de asignaciones de características de sin procesar a una característica generada. Este parámetro puede ser una lista de matrices numpy o matrices dispersas donde cada entrada de matriz (raw_index, generated_index) es el peso de cada par de características sin procesar generado. Las otras entradas se establecen en cero. Para una secuencia de transformaciones [t1, t2, ..., tn] que genera características generadas a partir de características sin procesar, la lista de asignaciones de características corresponde a las asignaciones sin procesar a las asignaciones generadas en el mismo orden que t1, t2, etc. Si el mapa general de características sin procesar al generado de t1 a tn está disponible, solo se puede pasar ese mapa de características en una sola lista de elementos.

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

Si se permiten muchas transformaciones y muchas a una.

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 en un modelo o canalización de aprendizaje automático normal para explicarlo. 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 ndarray 2d.

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

La ejecución de esta explicación debe estar asociada.

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 el clasificador.

model_task
Requerido
str

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

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 su 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 puede ser las características principales k del resumen del modelo. Este argumento no se admite cuando se establecen transformaciones.

transformations
Requerido

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 antes de la transformación. El formato de una lista de transformaciones es el mismo que el siguiente: 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, ya que estas ya son una a varias o una: Binarizer, KBinsDiscretizer, KernelCenterer, LabelEncoder, MaxAbsScaler, MinMaxScaler, Normalizer, OneHotEncoder, OrdinalEncoder, PowerTransformer, QuantileTransformer, RobustScaler, 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),
   ]

Un ejemplo de una transformación que generaría un error, ya que no se puede interpretar como 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 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.>

Una lista de asignaciones de características de sin procesar a una característica generada. Este parámetro puede ser una lista de matrices numpy o matrices dispersas donde cada entrada de matriz (raw_index, generated_index) es el peso de cada par de características sin procesar generado. Las otras entradas se establecen en cero. Para una secuencia de transformaciones [t1, t2, ..., tn] que genera características generadas a partir de características sin procesar, la lista de asignaciones de características corresponde a las asignaciones sin procesar a las asignaciones generadas en el mismo orden que t1, t2, etc. Si el mapa general de características sin procesar al generado de t1 a tn está disponible, solo se puede pasar ese mapa de características en una sola lista de elementos.

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 los modelos de aprendizaje automático y es especialmente eficaz junto con AutoML. Por ejemplo, con la automl_setup_model_explanations función del <xref:azureml.train.automl.runtime.automl_explain_utilities> módulo, puede usar MimicWrapper para calcular y visualizar la importancia de las características. Para obtener más información, consulte Interpretability: model explanations in automated machine learning (Interpretación: explicaciones del modelo en aprendizaje automático automatizado).

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 obtener más información sobre este ejemplo, consulte este cuaderno.

Métodos

explain

Explicar el comportamiento de un modelo y, opcionalmente, cargar esa explicación para el almacenamiento y la visualización.

explain

Explicar el comportamiento de un modelo y, opcionalmente, cargar esa explicación para el almacenamiento y la 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 tipos de explicaciones deseadas. Actualmente, se admiten "global" y "local". Ambos pueden pasarse a la vez; solo se devolverá una explicación.

eval_dataset

El identificador del conjunto de datos o el conjunto de datos normal que se usa para generar la explicación.

Valor predeterminado: None
top_k
int

Limite a la cantidad de datos devueltos y almacenados en Historial de ejecución a las principales características k, siempre que sea posible.

Valor predeterminado: None
upload

Si es True, la explicación se carga automáticamente en Historial de ejecución para el almacenamiento y la visualización. Si no se pasó 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 conjunto de datos, el conjunto de datos de evaluación se cargará 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 el parámetro feature_maps se pasó durante la inicialización, la explicación devuelta será para las características sin procesar. Si se especifica False o no, la explicación será para los datos exactamente como se pasa.

Valor predeterminado: False
raw_feature_names

La 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 para proporcionar 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 deval sin procesar que se van a cargar para obtener explicaciones sin procesar.

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

Etiquetas verdaderas para los ejemplos de evaluación.

Valor predeterminado: None

Devoluciones

Tipo Description

Objeto de explicación.

Atributos

explainer

Obtenga el explicador que el contenedor usa internamente.

Devoluciones

Tipo Description

Explicación que el contenedor usa internamente.