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
|
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
|
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:
Un ejemplo de una transformación que generaría un error, ya que no se puede interpretar como uno a varios:
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
|
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
|
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:
Un ejemplo de una transformación que generaría un error, ya que no se puede interpretar como uno a varios:
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
|
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
|
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 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
|
Nombre deseado para proporcionar una explicación si 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
|
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. |