

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Imparcialidad, explicabilidad del modelo y detección de sesgos con Clarify SageMaker
<a name="clarify-configure-processing-jobs"></a>

Puede usar Amazon SageMaker Clarify para comprender la imparcialidad y la explicabilidad de los modelos, así como para explicar y detectar sesgos en sus modelos. Puede configurar un trabajo de procesamiento de SageMaker Clarify para calcular las métricas de sesgo y las atribuciones de características y generar informes para la explicabilidad del modelo. SageMaker Los trabajos de procesamiento de Clarify se implementan mediante una imagen de contenedor especializada de SageMaker Clarify. La siguiente página describe cómo SageMaker funciona Clarify y cómo empezar con un análisis.

## ¿Qué es la equidad y la explicabilidad del modelo en las predicciones de machine learning?
<a name="clarify-fairness-and-explainability"></a>

Los modelos de machine learning (ML) están ayudando a tomar decisiones en ámbitos como los servicios financieros, la sanidad, la educación y los recursos humanos. Los responsables políticos, los reguladores y los partidarios de esta tecnología han mejorado la concienciación sobre los desafíos éticos y políticos que plantean el ML y los sistemas basados en datos. Amazon SageMaker Clarify puede ayudarlo a comprender por qué su modelo de aprendizaje automático realizó una predicción específica y si este sesgo afecta a esta predicción durante el entrenamiento o la inferencia. SageMaker Clarify también proporciona herramientas que pueden ayudarle a crear modelos de aprendizaje automático menos sesgados y más comprensibles. SageMaker Clarify también puede generar informes de gobernanza modelo que puede proporcionar a los equipos de riesgo y cumplimiento y a los reguladores externos. Con SageMaker Clarify, puede hacer lo siguiente:
+ Detectar el sesgo en las predicciones del modelo y ayudarle a explicarlas.
+ Identificar los tipos de sesgos en los datos previos al entrenamiento.
+ Identificar los tipos de sesgos en los datos posteriores al entrenamiento que pueden surgir durante el entrenamiento o cuando su modelo esté en producción.

SageMaker Clarify ayuda a explicar cómo sus modelos hacen predicciones utilizando las atribuciones de características. También puede supervisar los modelos de inferencia que están en producción para detectar tanto sesgos como desviaciones en la atribución de características. Esta información le ayuda en los siguientes aspectos:
+ **Normativas**: los responsables políticos y otros reguladores pueden estar preocupados por el impacto discriminatorio de las decisiones en las que se utiliza la salida de los modelos de ML. Por ejemplo, un modelo de ML podría codificar sesgos e influir en una decisión automatizada.
+ **Negocios**: los dominios regulados podrían necesitar explicaciones fiables sobre la forma en que los modelos de ML hacen predicciones. La explicabilidad de los modelos puede ser particularmente importante para los sectores que dependen de la fiabilidad, la seguridad y el cumplimiento. Estos pueden incluir servicios financieros, recursos humanos, atención médica y transporte automatizado. Por ejemplo, es posible que las aplicaciones de préstamos deban explicar a los responsables de los préstamos, a los pronosticadores y a los clientes cómo los modelos de ML han realizado ciertas predicciones.
+ **Ciencia de datos**: los científicos de datos y los ingenieros de machine learning pueden depurar y mejorar los modelos de ML cuando pueden determinar si un modelo hace inferencias basándose en características ruidosas o irrelevantes. También pueden comprender las limitaciones de sus modelos y los modos de fallos a los que pueden enfrentarse sus modelos.

Para ver una entrada de blog que muestre cómo diseñar y crear un modelo completo de aprendizaje automático para reclamaciones fraudulentas de automóviles que integre SageMaker Clarify en una cartera de SageMaker IA, consulte al [arquitecto y cree el ciclo de vida completo del aprendizaje automático con AWS: una demostración de end-to-end Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/architect-and-build-the-full-machine-learning-lifecycle-with-amazon-sagemaker/). En esta publicación, se analiza cómo evaluar y mitigar los sesgos previos y posteriores al entrenamiento, y cómo influyen las características en la predicción del modelo. La publicación del blog contiene enlaces a códigos de ejemplo para cada tarea del ciclo de vida de ML.

### Prácticas recomendadas para evaluar la equidad y la explicabilidad en el ciclo de vida de ML
<a name="clarify-fairness-and-explainability-best-practices"></a>

**Equidad como proceso**: las nociones de sesgo y equidad dependen de la aplicación. La medición del sesgo y la elección de las métricas de sesgo pueden guiarse por consideraciones sociales, legales y de otro tipo que no son de carácter técnico. La adopción correcta de enfoques de ML que tengan en cuenta la equidad incluye la creación de consenso y el logro de una colaboración entre las principales partes interesadas. Estas pueden incluir productos, políticas, asuntos legales, de ingeniería, AI/ML equipos, usuarios finales y comunidades.

**La equidad y la explicabilidad desde el diseño en el ciclo de vida de ML**: tenga en cuenta la equidad y la explicabilidad en cada etapa del ciclo de vida de ML. Estas etapas incluyen la formación de problemas, la construcción del conjunto de datos, la selección de algoritmos, el proceso de entrenamiento del modelo, el proceso de pruebas, la implementación y la supervisión y comentarios. Es importante contar con las herramientas adecuadas para realizar este análisis. Recomendamos hacer las siguientes preguntas durante el ciclo de vida de ML:
+ ¿Fomenta el modelo bucles de retroalimentación que pueden producir resultados cada vez más injustos?
+ ¿Es un algoritmo una solución ética al problema?
+ ¿Los datos de entrenamiento son representativos de diferentes grupos?
+ ¿Hay sesgos en las etiquetas o en las características?
+ ¿Es necesario modificar los datos para mitigar el sesgo?
+ ¿Es necesario incluir restricciones de equidad en la función objetiva?
+ ¿Se ha evaluado el modelo utilizando métricas de equidad relevantes?
+ ¿Hay efectos desiguales entre los usuarios?
+ ¿Se ha implementado el modelo en una población para la que no se ha entrenado ni evaluado?

![\[Mejores prácticas para el proceso de evaluación de la equidad y la explicabilidad del modelo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify-best-practices-image.png)


### Guía de la documentación sobre las explicaciones y los sesgos de la SageMaker IA
<a name="clarify-fairness-and-explainability-toc"></a>

El sesgo puede producirse y medirse en los datos antes y después del entrenamiento de un modelo. SageMaker Clarify puede proporcionar explicaciones para las predicciones de los modelos después del entrenamiento y para los modelos implementados en producción. SageMaker Clarify también puede monitorear los modelos en producción para detectar cualquier desviación en sus atribuciones explicativas de referencia y calcular las líneas de base cuando sea necesario. La documentación para explicar y detectar los sesgos mediante SageMaker Clarify está estructurada de la siguiente manera:
+ Para obtener más información sobre cómo configurar un trabajo de procesamiento para tener en cuenta los sesgos y la explicabilidad, consulte [Configurar un trabajo de SageMaker procesamiento de Clarify](clarify-processing-job-configure-parameters.md).
+ Para obtener más información sobre cómo detectar sesgos en los datos de preprocesamiento antes de utilizarlos para entrenar un modelo, consulte [Sesgo de los datos previo al entrenamiento](clarify-detect-data-bias.md).
+ Para obtener más información sobre la detección de los datos posteriores al entrenamiento y sesgos del modelo, consulte [Sesgo de los datos y el modelo posterior al entrenamiento](clarify-detect-post-training-bias.md).
+ Para obtener más información sobre el enfoque de atribución de características independiente del modelo para explicar las predicciones del modelo después del entrenamiento, consulte [Explicabilidad del modelo](clarify-model-explainability.md).
+ Para obtener más información sobre cómo supervisar la desviación de las contribuciones de las características respecto de la referencia que se estableció durante el entrenamiento del modelo, consulte [Desviación en la atribución de características de los modelos en producción](clarify-model-monitor-feature-attribution-drift.md).
+ Para obtener más información sobre la supervisión de los modelos que están en producción para determinar la desviación de la referencia, consulte [Desviación de sesgo de modelos en producción](clarify-model-monitor-bias-drift.md).
+ Para obtener información sobre cómo obtener explicaciones en tiempo real desde un punto final de SageMaker IA, consulte[Explicabilidad en línea con Clarify SageMaker](clarify-online-explainability.md).

## Cómo funcionan los SageMaker trabajos de procesamiento de Clarify
<a name="clarify-processing-job-configure-how-it-works"></a>

Puede usar SageMaker Clarify para analizar sus conjuntos de datos y modelos para determinar si son explicables y sesgados. Un trabajo SageMaker de procesamiento de Clarify utiliza el SageMaker contenedor de procesamiento de Clarify para interactuar con un bucket de Amazon S3 que contiene sus conjuntos de datos de entrada. También puede usar SageMaker Clarify para analizar un modelo de cliente que se implementa en un punto final de inferencia de SageMaker IA.

El siguiente gráfico muestra cómo un trabajo de procesamiento SageMaker de Clarify interactúa con los datos de entrada y, opcionalmente, con un modelo de cliente. Esta interacción depende del tipo específico de análisis que se lleve a cabo. El contenedor SageMaker de procesamiento Clarify obtiene el conjunto de datos de entrada y la configuración para su análisis desde un depósito de S3. Para ciertos tipos de análisis, incluido el análisis de características, el contenedor SageMaker de procesamiento Clarify debe enviar las solicitudes al contenedor modelo. A continuación, recupera las predicciones del modelo a partir de la respuesta que envía el contenedor de modelos. Después, el contenedor de SageMaker procesamiento Clarify calcula y guarda los resultados del análisis en el depósito de S3.

![\[SageMaker Clarify puede analizar sus datos o el modelo de un cliente para determinar si son explicables y sesgados.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify/clarify-processing-job.png)


Puede ejecutar un trabajo de procesamiento SageMaker de Clarify en varias etapas del ciclo de vida del flujo de trabajo de aprendizaje automático. SageMaker Clarify puede ayudarle a calcular los siguientes tipos de análisis:
+ Métricas de sesgo previas al entrenamiento. Estas métricas pueden ayudarle a entender el sesgo de sus datos para poder abordarlo y adaptar su modelo a un conjunto de datos más justo. Consulte [Métricas de sesgo previas al entrenamiento](clarify-measure-data-bias.md) para obtener más información sobre las métricas de sesgo previas al entrenamiento. Para analizar las métricas de sesgo previas al entrenamiento, debe proporcionar el conjunto de datos y un archivo de configuración de análisis JSON a [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).
+ Métricas de sesgo posteriores al entrenamiento. Estas métricas pueden ayudarte a entender cualquier sesgo introducido por un algoritmo, las opciones de hiperparámetros o cualquier sesgo que no fuera evidente al principio del flujo. Para obtener más información sobre las métricas de sesgo posteriores al entrenamiento, consulte[Métricas del sesgo de los datos y el modelo posterior al entrenamiento](clarify-measure-post-training-bias.md). SageMaker Clarify utiliza las predicciones del modelo además de los datos y las etiquetas para identificar el sesgo. Para analizar las métricas de sesgo posteriores al entrenamiento, debe proporcionar el conjunto de datos y un archivo de configuración de análisis JSON. La configuración debe incluir el nombre del modelo o del punto de conexión.
+ Los valores de Shapley, que pueden ayudarle a comprender el impacto que tiene su característica en lo que predice el modelo. Para obtener más información acerca de los valores de Shapley, consulte [Atribuciones de características que utilizan valores Shapley](clarify-shapley-values.md). Esta característica requiere un modelo entrenado.
+ Gráficas de dependencia parcial (PDPs), que pueden ayudarle a comprender en qué medida cambiaría la variable objetivo prevista si cambiara el valor de una entidad. Para obtener más información PDPs, consulte [Análisis de gráficas de dependencia parcial (PDPs)](clarify-processing-job-analysis-results.md#clarify-processing-job-analysis-results-pdp) Esta función requiere un modelo entrenado.

SageMaker Clarify necesita modelar las predicciones para calcular las métricas de sesgo y las atribuciones de características posteriores al entrenamiento. *Puedes proporcionar un punto final o SageMaker Clarify creará un punto final efímero con el nombre de tu modelo, también conocido como punto final oculto.* El contenedor SageMaker Clarify elimina el punto final oculto una vez finalizados los cálculos. En un nivel superior, el contenedor SageMaker Clarify completa los siguientes pasos:

1. Valida las entradas y los parámetros.

1. Crea el punto de conexión de sombra (si se proporciona un nombre de modelo).

1. Carga el conjunto de datos de entrada en un marco de datos.

1. Obtiene las predicciones del modelo desde el punto de conexión, si es necesario.

1. Calcula las métricas de sesgo y las atribuciones de características.

1. Elimina el punto de conexión de sombra.

1. Genera los resultados del análisis.

Una vez finalizado SageMaker el trabajo de procesamiento de Clarify, los resultados del análisis se guardarán en la ubicación de salida que haya especificado en el parámetro de salida de procesamiento del trabajo. Estos resultados incluyen un archivo JSON con métricas de sesgo y atribuciones de características globales, un informe visual y archivos adicionales para las atribuciones de características locales. Puede descargar los resultados desde la ubicación de salida y verlos.

Para obtener información adicional sobre las métricas de sesgo, la explicabilidad y cómo interpretarlas, consulte [Descubra cómo Amazon SageMaker Clarify ayuda a detectar el sesgo](https://aws.amazon.com/blogs/machine-learning/learn-how-amazon-sagemaker-clarify-helps-detect-bias), [Fairness Measures for Machine Learning in Finance](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf) y el documento técnico [Amazon AI Fairness and Explainability](https://pages.awscloud.com/rs/112-TZM-766/images/Amazon.AI.Fairness.and.Explainability.Whitepaper.pdf).

# Configurar un trabajo de SageMaker procesamiento de Clarify
<a name="clarify-processing-job-configure-parameters"></a>

Para analizar sus datos y modelos en busca de sesgos y explicabilidad con SageMaker Clarify, debe configurar un trabajo de procesamiento de SageMaker Clarify. Esta guía muestra cómo especificar el nombre del conjunto de datos de entrada, el nombre del archivo de configuración de análisis y la ubicación de salida de un trabajo de procesamiento. Para configurar el contenedor de procesamiento, las entradas, las salidas, los recursos y otros parámetros del trabajo, tiene dos opciones. Puedes usar la `CreateProcessingJob` API SageMaker AI o usar la API SageMaker AI Python SDK`SageMaker ClarifyProcessor`,

Para obtener información sobre los parámetros que son comunes a todos los trabajos de procesamiento, consulta [Amazon SageMaker API Reference](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html?icmpid=docs_sagemaker_lp).

## Configure un trabajo SageMaker de procesamiento de Clarify mediante la SageMaker API
<a name="clarify-processing-job-configure-parameters-API"></a>

Las siguientes instrucciones muestran cómo proporcionar cada parte de la configuración específica SageMaker de Clarify mediante la `CreateProcessingJob` API.

1. Introduzca el identificador de investigación uniforme (URI) de una imagen de SageMaker contenedor de Clarify dentro del `AppSpecification` parámetro, como se muestra en el siguiente ejemplo de código.

   ```
   {
       "ImageUri": "the-clarify-container-image-uri"
   }
   ```
**nota**  
El URI debe identificar una imagen de contenedor de SageMaker Clarify prediseñada. `ContainerEntrypoint`y no `ContainerArguments` son compatibles. Para obtener más información sobre las imágenes SageMaker de contenedores de Clarify, consulte[Contenedores SageMaker Clarify prediseñados](clarify-processing-job-configure-container.md).

1. Especifique tanto la configuración del análisis como los parámetros del conjunto de datos de entrada dentro del parámetro `ProcessingInputs`.

   1. Especifique la ubicación del archivo de configuración del análisis JSON, que incluye los parámetros para el análisis del sesgo y el análisis de explicabilidad. El parámetro `InputName` del objeto `ProcessingInput` debe ser **analysis\$1config** como se muestra en el siguiente ejemplo de código.

      ```
      {
          "InputName": "analysis_config",
          "S3Input": {
              "S3Uri": "s3://your-bucket/analysis_config.json",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/input/config"
          }
      }
      ```

      Para obtener más información sobre el esquema del archivo de configuración del análisis, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

   1. Especifique la ubicación del conjunto de datos de entrada. El parámetro `InputName` del objeto `ProcessingInput` debe ser `dataset`. Este parámetro es opcional si ha proporcionado el “dataset\$1uri” en el archivo de configuración del análisis. Los siguientes valores son obligatorios en la configuración de `S3Input`.

      1. `S3Uri` puede ser un objeto de Amazon S3 o un prefijo de S3.

      1. `S3InputMode` debe ser del tipo **File**.

      1. `S3CompressionType` debe ser del tipo `None` (el valor predeterminado).

      1. `S3DataDistributionType` debe ser del tipo `FullyReplicated` (el valor predeterminado).

      1. `S3DataType` puede ser `S3Prefix` o `ManifestFile`. Para usarlo`ManifestFile`, el `S3Uri` parámetro debe especificar la ubicación de un archivo de manifiesto que siga el esquema de la sección de referencia de la SageMaker API [S3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html#sagemaker-Type-S3DataSource-S3Uri). Este archivo de manifiesto debe enumerar los objetos de S3 que contienen los datos de entrada para el trabajo.

      En el siguiente código se muestra un ejemplo de configuración de entrada.

      ```
      {
          "InputName": "dataset",
          "S3Input": {
              "S3Uri": "s3://your-bucket/your-dataset.csv",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/input/data"
          }
      }
      ```

1. Especifique la configuración de la salida del trabajo de procesamiento dentro del parámetro `ProcessingOutputConfig`. Se requiere un único objeto `ProcessingOutput` en la configuración de `Outputs`. La configuración de salida requiere lo siguiente:

   1. `OutputName` debe ser **analysis\$1result**.

   1. `S3Uri` debe ser un prefijo de S3 para la ubicación de salida.

   1. `S3UploadMode` se debe establecer en **EndOfJob**.

   En el siguiente código se muestra un ejemplo de configuración de salida.

   ```
   {
       "Outputs": [{ 
           "OutputName": "analysis_result",
           "S3Output": { 
               "S3Uri": "s3://your-bucket/result/",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/output"
            }
        }]
   }
   ```

1. Especifique la configuración `ClusterConfig` de los recursos que utiliza en el trabajo de procesamiento dentro del parámetro `ProcessingResources`. Se requieren los siguientes parámetros dentro del objeto `ClusterConfig`.

   1. `InstanceCount` especifica el número de instancias de computación del clúster que ejecuta el trabajo de procesamiento. Para trabajos de procesamiento distribuido, especifique un valor mayor que `1`.

   1. `InstanceType` hace referencia a los recursos que ejecuta su trabajo de procesamiento. Como el análisis SHAP mediante SageMaker IA requiere un uso intensivo de recursos informáticos, el uso de un tipo de instancia que esté optimizado para el procesamiento debería mejorar el tiempo de ejecución del análisis. El trabajo de procesamiento SageMaker de Clarify no lo utiliza. GPUs

   En el siguiente código se muestra un ejemplo de configuración de recursos.

   ```
   {
       "ClusterConfig": {
            "InstanceCount": 1,
            "InstanceType": "ml.m5.xlarge",
            "VolumeSizeInGB": 20
        }
   }
   ```

1. Especifique la configuración de la red que utilizará en el trabajo de procesamiento dentro del objeto `NetworkConfig`. Los siguientes valores son obligatorios en la configuración.

   1. `EnableNetworkIsolation`debe estar configurado en `False` (predeterminado) para que SageMaker Clarify pueda invocar un punto final, si es necesario, para realizar predicciones.

   1. Si el modelo o punto final que proporcionó al trabajo de SageMaker Clarify está dentro de una Amazon Virtual Private Cloud (Amazon VPC), el trabajo de SageMaker Clarify también debe estar en la misma VPC. Especifique la VPC mediante. [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) Además, la VPC debe tener puntos de conexión con un bucket de Amazon S3, un servicio de IA y SageMaker un servicio de SageMaker AI Runtime.

      Si está activado el procesamiento distribuido, también debe permitir la comunicación entre distintas instancias en el mismo trabajo de procesamiento. Configure una regla para el grupo de seguridad que permita conexiones entrantes entre miembros del mismo grupo de seguridad. Para obtener más información, consulte [Ofrezca a Amazon SageMaker Clarify Jobs acceso a los recursos de su Amazon VPC](clarify-vpc.md). 

   El código siguiente proporciona un ejemplo de configuración de red.

   ```
   {
       "EnableNetworkIsolation": False,
       "VpcConfig": {
           ...
       }
   }
   ```

1. Establezca el tiempo máximo que se ejecutará el trabajo mediante el parámetro `StoppingCondition`. El tiempo máximo que puede ejecutarse un SageMaker trabajo de Clarify es de `7` días o `604800` segundos. Si el trabajo no se puede completar dentro de este límite de tiempo, se detendrá y no se proporcionará ningún resultado de análisis. Por ejemplo, la siguiente configuración limita el tiempo máximo de ejecución del trabajo a 3600 segundos.

   ```
   {
       "MaxRuntimeInSeconds": 3600
   }
   ```

1. Especifique un rol de IAM para el parámetro `RoleArn`. El puesto debe tener una relación de confianza con Amazon SageMaker AI. Se puede utilizar para realizar las operaciones de SageMaker API que se indican en la siguiente tabla. Recomendamos utilizar la política gestionada de Amazon SageMaker AIFull Access, que otorga acceso total a la SageMaker IA. Para obtener más información sobre esta política, consulte [AWS política gestionada: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess). Si tiene dudas sobre la posibilidad de conceder acceso total, los permisos mínimos necesarios dependen de si proporciona un modelo o un nombre de punto de conexión. El uso de un nombre de punto final permite conceder menos permisos a la SageMaker IA.

   La siguiente tabla contiene las operaciones de API utilizadas por el trabajo de procesamiento SageMaker de Clarify. Una **X** bajo **Nombre del modelo** y **Nombre del punto de conexión** indica la operación de la API necesaria para cada entrada.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-processing-job-configure-parameters.html)

   Para obtener más información acerca de los permisos requeridos, consulte [Permisos de la API de Amazon SageMaker AI: referencia sobre acciones, permisos y recursos](api-permissions-reference.md).

   Para obtener más información sobre cómo transferir funciones a la SageMaker IA, consulte[Transferencia de roles](sagemaker-roles.md#sagemaker-roles-pass-role).

   Una vez que tenga las partes individuales de la configuración del trabajo de procesamiento, combínelas para configurar el trabajo.

## Configurar un trabajo SageMaker de procesamiento de Clarify mediante el AWS SDK para Python
<a name="clarify-processing-job-configure-parameters-SDK"></a>

El siguiente ejemplo de código muestra cómo lanzar un trabajo de SageMaker procesamiento de Clarify mediante el [AWS SDK para Python](https://aws.amazon.com/sdk-for-python/).

```
sagemaker_client.create_processing_job(
    ProcessingJobName="your-clarify-job-name",
    AppSpecification={
        "ImageUri": "the-clarify-container-image-uri",
    },
    ProcessingInputs=[{
            "InputName": "analysis_config",
            "S3Input": {
                "S3Uri": "s3://your-bucket/analysis_config.json",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/input/config",
            },
        }, {
            "InputName": "dataset",
            "S3Input": {
                "S3Uri": "s3://your-bucket/your-dataset.csv",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/input/data",
            },
        },
    ],
    ProcessingOutputConfig={
        "Outputs": [{ 
            "OutputName": "analysis_result",
            "S3Output": { 
               "S3Uri": "s3://your-bucket/result/",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/output",
            },   
        }],
    },
    ProcessingResources={
        "ClusterConfig": {
            "InstanceCount": 1,
            "InstanceType": "ml.m5.xlarge",
            "VolumeSizeInGB": 20,
        },
    },
    NetworkConfig={
        "EnableNetworkIsolation": False,
        "VpcConfig": {
            ...
        },
    },
    StoppingCondition={
        "MaxRuntimeInSeconds": 3600,
    },
    RoleArn="arn:aws:iam::<your-account-id>:role/service-role/AmazonSageMaker-ExecutionRole",
)
```

Para ver un ejemplo de cuaderno con instrucciones para ejecutar un trabajo de SageMaker procesamiento de Clarify con el AWS SDK para Python, consulte [Equidad y explicabilidad con SageMaker Clarify con el AWS SDK para Python](http://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_boto3.ipynb). Cualquier bucket de S3 utilizado en el bloc de notas debe estar en la misma AWS región que la instancia del bloc de notas que accede a él.

## Configurar un trabajo de SageMaker procesamiento de Clarify mediante el SDK de SageMaker Python
<a name="clarify-processing-job-configure-parameters-SM-SDK"></a>

También puede configurar un trabajo de SageMaker procesamiento de Clarify mediante [SageMaker ClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor)la API del SDK de SageMaker Python. Para obtener más información, consulte [Ejecute SageMaker Clarify Processing Jobs para analizar los sesgos y facilitar la explicación](clarify-processing-job-run.md).

**Topics**
+ [Contenedores SageMaker Clarify prediseñados](clarify-processing-job-configure-container.md)
+ [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md)
+ [Guía de compatibilidad de formatos de datos](clarify-processing-job-data-format.md)

# Contenedores SageMaker Clarify prediseñados
<a name="clarify-processing-job-configure-container"></a>

Amazon SageMaker AI proporciona imágenes de contenedor SageMaker Clarify prediseñadas que incluyen las bibliotecas y otras dependencias necesarias para calcular las métricas de sesgo y las atribuciones de características para facilitar la explicación. Estas imágenes son capaces de ejecutar tareas de [procesamiento](processing-job.md) de SageMaker Clarify en su cuenta.

La imagen URIs de los contenedores tiene el siguiente formato:

```
<ACCOUNT_ID>.dkr.ecr.<REGION_NAME>.amazonaws.com/sagemaker-clarify-processing:1.0
```

Por ejemplo:

```
111122223333.dkr.ecr.us-east-1.amazonaws.com/sagemaker-clarify-processing:1.0
```

En la siguiente tabla se muestran las direcciones por Región de AWS.

Imágenes de Docker para SageMaker aclarar los trabajos de procesamiento


| Region | Dirección de la imagen | 
| --- | --- | 
| Este de EE. UU. (Norte de Virginia) | 205585389593.dkr. ecr.us-east-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Este de EE. UU. (Ohio) | 211330385671.dkr. ecr.us-east-2.amazonaws.com /:1,0 sagemaker-clarify-processing | 
| Oeste de EE. UU. (Norte de California) | 740489534195.dkr. ecr.us-west-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Oeste de EE. UU. (Oregón) | 306415355426.dkr. ecr.us-west-2.amazonaws.com /:1,0 sagemaker-clarify-processing | 
| Asia-Pacífico (Hong Kong) | 098760798382.dkr. ecr.ap-east-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Asia-Pacífico (Mumbai) | 452307495513.dkr. ecr.ap-south-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Asia-Pacífico (Yakarta) | 705930551576.dkr. ecr.ap-southeast-3.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Asia-Pacífico (Tokio) | 377024640650.dkr. ecr.ap-northeast-1.amazonaws.com /:1,0 sagemaker-clarify-processing | 
| Asia-Pacífico (Seúl) | 263625296855.dkr. ecr.ap-northeast-2.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Asia-Pacífico (Osaka) | 912233562940.dkr. ecr.ap-northeast-3.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Asia-Pacífico (Singapur) | 834264404009.dkr. ecr.ap-southeast-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Asia-Pacífico (Sídney) | 007051062584.dkr. ecr.ap-southeast-2.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Canadá (centro) | 675030665977.dkr. ecr.ca-central-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Europa (Fráncfort) | 017069133835.dkr. ecr.eu-central-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Europa (Zúrich) | 730335477804.dkr. ecr.eu-central-2.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Europa (Irlanda) | 131013547314.dkr. ecr.eu-west-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Europa (Londres) | 440796970383.dkr. ecr.eu-west-2.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Europa (París) | 341593696636.dkr. ecr.eu-west-3.amazonaws.com /:1,0 sagemaker-clarify-processing | 
| Europa (Estocolmo) | 763603941244.dkr. ecr.eu-north-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Middle East (Bahrain) | 835444307964.dkr. ecr.me-south-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| América del Sur (São Paulo) | 520018980103.dkr. ecr.sa-east-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| África (Ciudad del Cabo) | 811711786498.dkr. ecr.af-south-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| Europa (Milán) | 638885417683.dkr. ecr.eu-south-1.amazonaws.com /:1.0 sagemaker-clarify-processing | 
| China (Pekín) | 122526803553.dkr. ecr.cn-north-1.amazonaws.com .cn/:1.0 sagemaker-clarify-processing | 
| China (Ningxia) | 122578899357.dkr. ecr.cn-northwest-1.amazonaws.com .cn/:1.0 sagemaker-clarify-processing | 

# Archivos de configuración del análisis
<a name="clarify-processing-job-configure-analysis"></a>

Para analizar la explicabilidad y el sesgo de sus datos y modelos con Clarify, debe configurar un trabajo de procesamiento. SageMaker Parte de la configuración de este trabajo de procesamiento incluye la configuración de un archivo de análisis. El archivo de análisis especifica los parámetros para el análisis de sesgos y la explicabilidad. Consulte [Configurar un trabajo de SageMaker procesamiento de Clarify](clarify-processing-job-configure-parameters.md) para obtener información sobre cómo configurar un trabajo de procesamiento y un archivo de análisis.

Esta guía describe el esquema y los parámetros de este archivo de configuración de análisis. Esta guía también incluye ejemplos de archivos de configuración de análisis para calcular las métricas de sesgo de un conjunto de datos tabular y generar explicaciones sobre problemas de procesamiento de lenguaje natural (NLP), visión artificial (CV) y series temporales (TS).

Puede crear el archivo de configuración del análisis o utilizar el [SDK de SageMaker Python](https://sagemaker.readthedocs.io/) para generar uno para usted con la [SageMaker ClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor)API. Ver el contenido del archivo puede resultar útil para comprender la configuración subyacente que utiliza el trabajo de SageMaker Clarify.

**Topics**
+ [Esquema del archivo de configuración de análisis](#clarify-processing-job-configure-schema)
+ [Archivos de configuración del análisis de ejemplo](#clarify-processing-job-configure-analysis-examples)

## Esquema del archivo de configuración de análisis
<a name="clarify-processing-job-configure-schema"></a>

En la siguiente sección se describe el esquema del archivo de configuración de análisis, incluidos los requisitos y las descripciones de los parámetros.

### Requisitos del archivo de configuración de análisis
<a name="clarify-processing-job-configure-schema-requirements"></a>

 El trabajo SageMaker de procesamiento de Clarify espera que el archivo de configuración del análisis esté estructurado con los siguientes requisitos:
+ El nombre de la entrada de procesamiento debe ser `analysis_config.`
+ El archivo de configuración de análisis está en formato JSON y está codificado en UTF-8.
+ El archivo de configuración de análisis es un objeto de Amazon S3.

Puede especificar parámetros adicionales en el archivo de configuración de análisis. La siguiente sección proporciona varias opciones para adaptar el trabajo de procesamiento SageMaker de Clarify a su caso de uso y a los tipos de análisis deseados.

### Parámetros para los archivos de configuración de análisis
<a name="clarify-processing-job-configure-analysis-parameters"></a>

Puede especificar parámetros adicionales en el archivo de configuración de análisis.
+ **version**: (opcional) la cadena de versión del esquema del archivo de configuración de análisis. Si no se proporciona una versión, SageMaker Clarify utiliza la última versión compatible. Actualmente, solo se admite la versión `1.0`.
+ **dataset\$1type**: el formato del conjunto de datos. El formato del conjunto de datos de entrada puede ser cualquiera de los siguientes valores:
  + Tabular
    + `text/csv` para CSV
    + `application/jsonlines`para el [formato denso SageMaker AI JSON Lines](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-jsonlines)
    + `application/json` para JSON
    + `application/x-parquet` para Apache Parquet
    + `application/x-image` para activar la explicabilidad de los problemas de visión artificial
  + Explicaciones del modelo de previsión de series temporales
    + `application/json` para JSON
+ **dataset\$1uri**: (opcional) el identificador uniforme de recursos (URI) del conjunto de datos principal. Si proporciona un prefijo URI de S3, el trabajo de procesamiento de SageMaker Clarify recopila de forma recursiva todos los archivos de S3 ubicados debajo del prefijo. Si tiene problemas de visión artificial, puede proporcionar un prefijo URI de S3 o un URI de S3 a un archivo de manifiesto de imagen. Si se proporciona `dataset_uri`, tiene prioridad sobre la entrada del trabajo de procesamiento del conjunto de datos. **Para cualquier tipo de formato, excepto en los casos de uso de imágenes y series temporales, el trabajo de procesamiento de SageMaker Clarify carga el conjunto de datos de entrada en un marco de datos tabular, como un conjunto de datos tabular.** Este formato permite a la SageMaker IA manipular y analizar fácilmente el conjunto de datos de entrada.
+ **headers** (opcional)
  + **tabular**: una matriz de cadenas que contiene los nombres de las columnas de un conjunto de datos tabular. Si no se proporciona un valor`headers`, el trabajo de procesamiento de SageMaker Clarify lee los encabezados del conjunto de datos. Si el conjunto de datos no tiene encabezados, el trabajo de procesamiento de Clarify generará automáticamente los nombres de los marcadores de posición basados en el índice de columna de base cero. Por ejemplo, los nombres de los marcadores de posición para la primera y la segunda columnas serán **column\$10**, **column\$11**, etc.
**nota**  
Por convención, si `dataset_type` es `application/jsonlines` o `application/json`, entonces `headers` debe contener los siguientes nombres en orden:  
nombres de características
nombre de etiqueta (si se especifica `label`)
nombre de etiqueta previsto (si se especifica `predicted_label`)
Un ejemplo de `headers` para un conjunto de datos `application/jsonlines` si `label` está especificado es: `["feature1","feature2","feature3","target_label"]`.
  + **Serie temporal:** lista de nombres de columnas del conjunto de datos. Si no se proporciona, Clarify genera encabezados para usarlos internamente. Para los casos de explicabilidad de series temporales, proporcione los encabezados en el siguiente orden:

    1. ID de elemento

    1. timestamp

    1. serie temporal objetivo

    1. todas las columnas de series temporales relacionadas

    1. todas las columnas de covariables estáticas
+ **label**: (opcional) una cadena o un índice entero basado en cero. Si se proporciona, `label` se utiliza para localizar la etiqueta de verdad fundamental, también conocida como etiqueta observada o atributo objetivo en un conjunto de datos tabular. La etiqueta de verdad fundamental se utiliza para calcular las métricas de sesgo. El valor de `label` se especifica en función del valor del parámetro `dataset_type` de la siguiente manera.
  + Si `dataset_type` es **text/csv**, `label` se puede especificar de la siguiente manera:
    + Un nombre de columna válido
    + Un índice que se encuentra dentro del rango de columnas del conjunto de datos
  + Si `dataset_type` es **application/parquet**, `label` debe ser un nombre de columna válido.
  + Si `dataset_type` es así**application/jsonlines**, `label` debe ser una [JMESPath](https://jmespath.org/)expresión escrita para extraer la etiqueta de verdad fundamental del conjunto de datos. Por convención, si se especifica `headers`, debe contener el nombre de la etiqueta.
  + Si `dataset_type` es **application/json** así, `label` debe ser una [JMESPath](https://jmespath.org/)expresión escrita para extraer la etiqueta de verdad fundamental de cada registro del conjunto de datos. Esta JMESPath expresión debe generar una lista de etiquetas en las que la etiqueta esté correlacionada con la del registro.
+ **predicted\$1label**: (opcional) una cadena o un índice entero basado en cero. Si se proporciona, `predicted_label` se usa para ubicar la columna que contiene la etiqueta predicha en un conjunto de datos tabular. La etiqueta predicha se usa para calcular las métricas de **sesgo** posteriores al entrenamiento. El parámetro `predicted_label` es opcional si el conjunto de datos no incluye la etiqueta predicha. Si se requieren etiquetas predichas para el cálculo, el trabajo de procesamiento SageMaker de Clarify obtendrá las predicciones del modelo.

  El valor de `predicted_label` se especifica en función del valor de `dataset_type` de la siguiente manera.
  + Si `dataset_type` es **text/csv**, `predicted_label` se puede especificar de la siguiente manera:
    + Un nombre de columna válido. Si se especifica `predicted_label_dataset_uri`, pero no se proporciona `predicted_label`, el nombre de etiqueta predicha predeterminado es “predicted\$1label”. 
    + Un índice que se encuentra dentro del rango de columnas del conjunto de datos. Si se especifica `predicted_label_dataset_uri`, el índice se usa para localizar la columna de la etiqueta predicha en el conjunto de datos de la etiqueta predicha.
  + Si dataset\$1type es **application/x-parquet**, `predicted_label` debe ser un nombre de columna válido.
  + Si dataset\$1type es**application/jsonlines**, `predicted_label` debe ser una [JMESPath](https://jmespath.org/)expresión válida escrita para extraer la etiqueta pronosticada del conjunto de datos. Por convención, si se especifica `headers`, debe contener el nombre de la etiqueta predicha. 
  + Si `dataset_type` es así**application/json**, `predicted_label` debe ser una [JMESPath](https://jmespath.org/)expresión escrita para extraer la etiqueta prevista para cada registro del conjunto de datos. La JMESPath expresión debe generar una lista de etiquetas pronosticadas en la que la si la etiqueta pronosticada es para el registro.
+ **características**: (opcional) Necesario para los casos de non-time-series uso, si `dataset_type` es `application/jsonlines` o`application/json`. Una expresión de JMESPath cadena escrita para localizar las entidades en el conjunto de datos de entrada. Para `application/jsonlines` ello, se aplicará una JMESPath expresión a cada línea para extraer las características de ese registro. Para `application/json` ello, se aplicará una JMESPath expresión a todo el conjunto de datos de entrada. La JMESPath expresión debe extraer una lista de listas o un 2D array/matrix de entidades donde la fila I contenga las entidades que se correlacionan con las del registro. En el caso `dataset_type` de `text/csv` o `application/x-parquet`, todas las columnas, excepto las columnas de la etiqueta de verdad fundamental y de la etiqueta predicha, se asignan automáticamente como características.
+ **predicted\$1label\$1dataset\$1uri**: (opcional) solo se aplica cuando dataset\$1type es `text/csv`. El URI de S3 de un conjunto de datos que contiene etiquetas predichas que se utiliza para calcular las **métricas de sesgo** posteriores al entrenamiento. El SageMaker trabajo de procesamiento de Clarify cargará las predicciones del URI proporcionado en lugar de obtener las predicciones del modelo. En este caso, `predicted_label` tiene que ubicar la columna de etiquetas predichas en el conjunto de datos de etiquetas predichas. Si el conjunto de datos de etiquetas predichas o el conjunto de datos principal está divididos en varios archivos, `joinsource_name_or_index` debe especificar una columna de identificación para unir los dos conjuntos de datos. 
+ **predicted\$1label\$1headers**: (opcional) solo se aplica cuando se especifica `predicted_label_dataset_uri`. Una matriz de cadenas que contiene los nombres de columna del conjunto de datos de etiquetas predichas. Además del encabezado de etiqueta predicha, `predicted_label_headers` también puede contener el encabezado de la columna de identificación para unir el conjunto de datos de etiquetas predichas y el conjunto de datos principal. Para obtener más información, consulte la siguiente descripción del parámetro `joinsource_name_or_index`.
+ **joinsource\$1name\$1or\$1index**: (opcional) el nombre o el índice de base cero de la columna en los conjuntos de datos tabulares que se utilizará como columna de identificación al realizar una unión interna. Esta columna solo se usa como un identificador. No se utiliza para ningún otro cálculo, como el análisis de sesgo o el análisis de atribución de características. Se necesita un valor para `joinsource_name_or_index` en los siguientes casos:
  + Hay varios conjuntos de datos de entrada y alguno de ellos está dividido en varios archivos.
  + El procesamiento distribuido se activa al establecer el trabajo SageMaker de procesamiento de Clarify en un valor superior [InstanceCount](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProcessingClusterConfig.html#sagemaker-Type-ProcessingClusterConfig-InstanceCount)a`1`.
+ **excluded\$1columns**: (opcional) una matriz de nombres o índices de columna de base cero que se excluirán del envío al modelo como entrada para las predicciones. La etiqueta de verdad fundamental y la etiqueta predicha ya se excluyeron automáticamente. Esta característica no es compatible con las series temporales.
+ **probability\$1threshold**: (opcional) un número de coma flotante por encima del cual se selecciona una etiqueta o un objeto. El valor predeterminado es `0.5`. El trabajo SageMaker de procesamiento Clarify `probability_threshold` se utiliza en los siguientes casos:
  + En el análisis de sesgo posterior al entrenamiento, `probability_threshold` convierte la predicción de un modelo numérico (valor de probabilidad o puntuación) en una etiqueta binaria, si el modelo es un clasificador binario. Una puntuación superior al umbral se convierte en `1`. Mientras que una puntuación inferior o igual al umbral se convierte en `0`.
  + En los problemas de explicabilidad de la visión artificial, si model\$1type es **OBJECT\$1DETECTION**, `, probability_threshold` filtra los objetos detectados con puntuaciones de confianza inferiores al valor umbral.
+ **label\$1values\$1or\$1threshold**: (opcional) obligatorio para el análisis de sesgos. Una matriz de valores de etiqueta o un número umbral, que indican un resultado positivo para etiquetas de verdad fundamental y predichas para las métricas de sesgo. Para obtener más información, consulte los valores de etiqueta positivos en [Amazon SageMaker aclara los términos de sesgo y equidad](clarify-detect-data-bias.md#clarify-bias-and-fairness-terms). Si la etiqueta es numérica, el umbral se aplica como límite inferior para seleccionar el resultado positivo. Para configurar `label_values_or_threshold` para distintos tipos de problemas, consulte los siguientes ejemplos:
  + Para un problema de clasificación binaria, la etiqueta tiene dos valores posibles: `0` y `1`. Si el valor de la etiqueta `1` es favorable para un grupo demográfico observado en una muestra, `label_values_or_threshold` debe establecerse en `[1]`.
  + Para un problema de clasificación multiclase, la etiqueta tiene tres valores posibles: **bird**, **cat** y **dog**. Si los dos últimos definen un grupo demográfico que el sesgo favorece, entonces `label_values_or_threshold` debe configurarse en `["cat","dog"]`.
  + En el caso de un problema de regresión, el valor de la etiqueta es continuo y oscila entre `0` y `1`. Si un valor superior a `0.5` debe designar una muestra como de resultado positivo, entonces `label_values_or_threshold` debe establecerse en `0.5`.
+ **facet**: (opcional) se requiere para el análisis de sesgos. Una matriz de objetos facetados, que se componen de atributos sensibles con los que se mide el sesgo. Puede utilizar las facetas para comprender las características de sesgo del conjunto de datos y el modelo, incluso si el modelo se ha entrenado sin utilizar atributos sensibles. Para obtener más información, consulte **Faceta** en [Amazon SageMaker aclara los términos de sesgo y equidad](clarify-detect-data-bias.md#clarify-bias-and-fairness-terms). Este objeto de faceta incluye los siguientes campos:
  + **name\$1or\$1index**: (opcional) nombre o índice basado en cero de la columna de atributos sensibles de un conjunto de datos tabular. Si se especifica `facet_dataset_uri`, el índice se refiere al conjunto de datos de facetas en lugar del conjunto de datos principal.
  + **value\$1or\$1threshold**: (opcional) obligatorio si `facet` es numérico y se aplica `label_values_or_threshold` como límite inferior para seleccionar el grupo sensible. Una matriz de valores de faceta o un número umbral que indica el grupo demográfico sensible que el sesgo favorece. Si el tipo de datos de faceta es categórico y no se proporciona `value_or_threshold`, las métricas de sesgo se calculan como un grupo para cada valor único (en lugar de todos los valores). Para configurar `value_or_threshold` para distintos tipos de datos de `facet`, consulte los siguientes ejemplos:
    + Para un tipo de datos de faceta binarios, la característica tiene dos valores posibles: `0` y `1`. Si desea calcular las métricas de sesgo para cada valor, puede omitir `value_or_threshold` o establecer una matriz vacía.
    + Para un tipo de datos de faceta categóricos, la característica tiene tres valores posibles: **bird**, **cat** y **dog**. Si los dos primeros definen un grupo demográfico que el sesgo favorece, entonces `value_or_threshold` debe configurarse en `["bird", "cat"]`. En este ejemplo, las muestras del conjunto de datos se dividen en dos grupos demográficos. La faceta del grupo favorecido tiene un valor **bird** o **cat**, mientras que la faceta del grupo desfavorecido tiene el valor **dog**.
    + En el caso de un tipo de datos de faceta numéricos, el valor de la característica es continuo y oscila entre `0` y `1`. Por ejemplo, si un valor superior a `0.5` debe designar una muestra como de resultado positivo, entonces `value_or_threshold` debe establecerse en `0.5`. En este ejemplo, las muestras del conjunto de datos se dividen en dos grupos demográficos. La faceta del grupo favorecido tiene un valor superior a `0.5`, mientras que la faceta del grupo desfavorecido tiene un valor inferior o igual a `0.5`.
+ **group\$1variable**: (opcional) nombre o índice de base cero de la columna que indica el subgrupo que se va a utilizar para la métrica de sesgo [Disparidad demográfica condicional (CDD)](clarify-data-bias-metric-cddl.md) o [Disparidad demográfica condicional en las etiquetas predichas (CDDPL)](clarify-post-training-bias-metric-cddpl.md).
+ **facet\$1dataset\$1uri**: (opcional) solo se aplica cuando dataset\$1type es `text/csv`. El URI de S3 de un conjunto de datos que contiene atributos sensibles para el análisis de sesgos. Puede utilizar las facetas para comprender las características de sesgo del conjunto de datos y el modelo, incluso si el modelo se ha entrenado sin utilizar atributos sensibles.
**nota**  
Si el conjunto de datos de la faceta o el conjunto de datos principal está divididos en varios archivos, `joinsource_name_or_index` debe especificar una columna de identificación para unir los dos conjuntos de datos. Debe usar el parámetro `facet` para identificar cada faceta del conjunto de datos de facetas.
+ **facet\$1headers**: (opcional) solo se aplica cuando se especifica `facet_dataset_uri`. Una matriz de cadenas que contiene los nombres de la columna del conjunto de datos de la faceta y, opcionalmente, el encabezado de la columna de identificación para unir el conjunto de datos de facetas y el conjunto de datos principal. Consulte `joinsource_name_or_index`.
+ **time\$1series\$1data\$1config**: (opcional) especifica la configuración que se utilizará para el procesamiento de datos de una serie temporal. 
  + **item\$1id**: cadena o índice entero basado en cero. Este campo se utiliza para localizar un ID de elemento en el conjunto de datos de entrada compartido.
  + **timestamp**: cadena o índice entero basado en cero. Este campo se utiliza para localizar una marca de tiempo en el conjunto de datos de entrada compartido.
  + **dataset\$1format**: los valores posibles son `columns`, `item_records` o `timestamp_records`. Este campo se usa para describir el formato de un conjunto de datos JSON, que es el único formato compatible con la explicabilidad de las series temporales.
  + **target\$1time\$1series**: una JMESPath cadena o un índice entero de base cero. Este campo se utiliza para localizar la serie temporal objetivo en el conjunto de datos de entrada compartido. Si este parámetro es una cadena, todos los demás parámetros excepto `dataset_format` deben ser cadenas o listas de cadenas. Si este parámetro es un número entero, todos los demás parámetros excepto `dataset_format` deben ser números enteros o listas de números enteros.
  + **related\$1time\$1series**: (opcional) una matriz de expresiones. JMESPath Este campo se utiliza para localizar todas las series temporales relacionadas en el conjunto de datos de entrada compartido, si están presentes.
  + **static\$1covariates**: (opcional) una matriz de expresiones. JMESPath Este campo se utiliza para localizar todos los campos de covariables estáticas del conjunto de datos de entrada compartido, si están presentes.

  Para ver ejemplos, consulte [Ejemplos de configuración de conjuntos de datos de series temporales](clarify-processing-job-data-format-time-series.md#clarify-processing-job-data-format-time-series-ex).
+ **methods**: un objeto que contiene uno o más métodos de análisis y sus parámetros. Si se omite algún método, no se utiliza para el análisis ni se informa.
  + **pre\$1training\$1bias**: incluya este método si quiere calcular las métricas de sesgo previas al entrenamiento. Encontrará una descripción detallada de las métricas en [Métricas de sesgo previas al entrenamiento](clarify-measure-data-bias.md). El objeto tiene los siguientes parámetros:
    + **methods**: una matriz que contiene cualquiera de las métricas de sesgo previas al entrenamiento de la siguiente lista que quiera calcular. Establezca `methods` en **all** para calcular todas las métricas de sesgo previas al entrenamiento. Por ejemplo, la matriz `["CI", "DPL"]` calculará el **Desequilibrio de clases** y la **Diferencia en las proporciones de las etiquetas**.
      + `CI` para [Desequilibrio de clases (CI)](clarify-bias-metric-class-imbalance.md)
      + `DPL` para [Diferencia en las proporciones de las etiquetas (DPL)](clarify-data-bias-metric-true-label-imbalance.md)
      + `KL` para [Divergencia de Kullback-Leibler (KL)](clarify-data-bias-metric-kl-divergence.md)
      + `JS` para [Divergencia de Jensen-Shannon (JS)](clarify-data-bias-metric-jensen-shannon-divergence.md)
      + `LP` para [Norma Lp (LP)](clarify-data-bias-metric-lp-norm.md)
      + `TVD` para [Distancia de variación total (TVD)](clarify-data-bias-metric-total-variation-distance.md)
      + `KS` para [Kolmogorov-Smirnov (KS)](clarify-data-bias-metric-kolmogorov-smirnov.md)
      + `CDDL` para [Disparidad demográfica condicional (CDD)](clarify-data-bias-metric-cddl.md)
  + **pre\$1training\$1bias**: incluya este método si quiere calcular las métricas de sesgo posteriores al entrenamiento. Encontrará una descripción detallada de las métricas en [Métricas del sesgo de los datos y el modelo posterior al entrenamiento](clarify-measure-post-training-bias.md). El objeto `post_training_bias` tiene los siguientes parámetros:
    + **methods**: una matriz que contiene cualquiera de las métricas de sesgo posteriores al entrenamiento de la siguiente lista que quiera calcular. Establezca `methods` en **all** para calcular todas las métricas de sesgo posteriores al entrenamiento. Por ejemplo, la matriz `["DPPL", "DI"]` calcula la **Diferencia en las proporciones positivas de las etiquetas predichas** y el **Impacto dispar**. Los métodos disponibles son los siguientes.
      + `DPPL` para [Diferencia en las proporciones positivas de las etiquetas predichas (DPPL)](clarify-post-training-bias-metric-dppl.md)
      + `DI` para [Impacto dispar (DI)](clarify-post-training-bias-metric-di.md)
      + `DCA` para [Diferencia en la aceptación condicional () DCAcc](clarify-post-training-bias-metric-dcacc.md)
      + `DCR` para [Diferencia en rechazo condicional (DCR)](clarify-post-training-bias-metric-dcr.md)
      + `SD` para [Diferencia de especificidad (SD)](clarify-post-training-bias-metric-sd.md)
      + `RD` para [Diferencia de coincidencias (RD)](clarify-post-training-bias-metric-rd.md)
      + `DAR` para [Diferencia en tasas de aceptación (DAR)](clarify-post-training-bias-metric-dar.md)
      + `DRR` para [Diferencia en tasas de rechazo (DRR)](clarify-post-training-bias-metric-drr.md)
      + `AD` para [Diferencia de precisión (AD)](clarify-post-training-bias-metric-ad.md)
      + `TE` para [Igualdad de tratamiento (TE)](clarify-post-training-bias-metric-te.md)
      + `CDDPL` para [Disparidad demográfica condicional en las etiquetas predichas (CDDPL)](clarify-post-training-bias-metric-cddpl.md)
      + `FT` para [Prueba de contrafácticos (FT)](clarify-post-training-bias-metric-ft.md)
      + `GE` para [Entropía generalizada (GE)](clarify-post-training-bias-metric-ge.md)
  + **shap**: incluya este método si desea calcular los valores SHAP. El trabajo de procesamiento SageMaker Clarify es compatible con el algoritmo SHAP del núcleo. El objeto `shap` tiene los siguientes parámetros:
    + **baseline**: (opcional) conjunto de datos de referencias de SHAP, también conocido como conjunto de datos de fondo. Los requisitos adicionales para el conjunto de datos de referencia en un conjunto de datos tabular o un problema de visión artificial son los siguientes. Para obtener más información acerca de las referencias de SHAP, consulte [Referencias SHAP para la explicabilidad](clarify-feature-attribute-shap-baselines.md).
      + En el caso de un conjunto de datos **tabular**, `baseline` puede ser los datos de referencia in situ o el URI de S3 de un archivo de referencia. Si no `baseline` se proporciona, el trabajo de procesamiento de SageMaker Clarify calcula una línea base agrupando el conjunto de datos de entrada. La referencia debe cumplir los siguientes requisitos:
        + El formato debe ser el mismo que el formato del conjunto de datos especificado por `dataset_type`.
        + La referencia solo puede contener características que el modelo pueda aceptar como entrada.
        + El conjunto de datos de referencia puede tener una o más instancias. La cantidad de instancias de referencia afecta directamente al tamaño del conjunto de datos sintético y al tiempo de ejecución del trabajo.
        + Si se especifica `text_config`, el valor de referencia de una columna de texto es una cadena que se utiliza para reemplazar la unidad de texto especificada por `granularity`. Por ejemplo, un marcador de posición frecuente es “[MASK]”, que se utiliza para representar una palabra o un fragmento de texto desconocido o ausente. 

        En los siguientes ejemplos se muestra cómo configurar datos de referencia in situ para diferentes parámetros `dataset_type`:
        + Si `dataset_type` es `text/csv` o `application/x-parquet`, el modelo acepta cuatro características numéricas y la referencia tiene dos instancias. En este ejemplo, si un registro tiene todos los valores de característica cero y el otro registro tiene todos los valores de característica uno, entonces la referencia debe establecerse en `[[0,0,0,0],[1,1,1,1]]`, sin ningún encabezado.
        + Si `dataset_type` es `application/jsonlines`, y `features` es la clave de una lista de cuatro valores de característica numéricos. Además, en este ejemplo, si la referencia tiene un registro con todos los valores cero, entonces `baseline` debe ser `[{"features":[0,0,0,0]}]`.
        + Si `dataset_type` es `application/json`, el conjunto de datos `baseline` debe tener la misma estructura y formato que el conjunto de datos de entrada.
      + En el caso de problemas de **visión artificial**, `baseline` puede ser el URI de S3 de una imagen que se utiliza para ocultar las características (segmentos) de la imagen de entrada. El trabajo SageMaker de procesamiento Clarify carga la imagen de la máscara y cambia su tamaño a la misma resolución que la imagen de entrada. Si no se proporciona una línea base, el trabajo SageMaker de procesamiento Clarify genera una imagen de máscara de [ruido blanco](https://en.wikipedia.org/wiki/White_noise) con la misma resolución que la imagen de entrada.
    + **features\$1to\$1explain**: (opcional) una matriz de cadenas o índices de base cero de columnas de características para calcular los valores SHAP. Si no se proporciona `features_to_explain`, los valores SHAP se calculan para todas las columnas de características. Estas columnas de características no pueden incluir la columna de etiquetas ni la columna de etiquetas predichas. El parámetro `features_to_explain` solo se admite para conjuntos de datos tabulares con columnas numéricas y categóricas.
    + **num\$1clusters**: (opcional) el número de clústeres en los que se divide el conjunto de datos para calcular el conjunto de datos de referencia. Cada clúster se usa para calcular una instancia de referencia. Si no `baseline` se especifica, el trabajo de SageMaker procesamiento de Clarify intenta calcular el conjunto de datos de referencia dividiendo el conjunto de datos tabular en un número óptimo de clústeres entre `1` y`12`. El número de instancias de referencia afecta directamente al tiempo de ejecución del análisis SHAP.
    + **num\$1samples**: (opcional) el número de muestras que se utilizarán en el algoritmo Kernel SHAP. Si no `num_samples` se proporciona, el trabajo de procesamiento SageMaker de Clarify elige el número por usted. La cantidad de muestras afecta directamente al tamaño del conjunto de datos sintético y al tiempo de ejecución del trabajo.
    + **seed**: (opcional) un número entero que se utiliza para inicializar el generador de números pseudoaleatorios del explicador SHAP a fin de generar valores SHAP coherentes para el mismo trabajo. Si no se especifica la semilla, cada vez que se ejecute el mismo trabajo, el modelo puede generar valores SHAP ligeramente diferentes. 
    + **use\$1logit**: (opcional) un valor booleano que indica que desea que la función logit se aplique a las predicciones del modelo. El valor predeterminado es `false`. Si `use_logit` es `true`, los valores SHAP se calculan mediante los coeficientes de regresión logística, que se pueden interpretar como coeficientes logarítmicos de probabilidades.
    + **save\$1local\$1shap\$1values**: (opcional) un valor booleano que indica que desea que los valores SHAP locales de cada registro del conjunto de datos se incluyan en el resultado del análisis. El valor predeterminado es `false`.

      Si el conjunto de datos principal está dividido en varios archivos o si está activado el procesamiento distribuido, especifique también una columna de identificación mediante el parámetro `joinsource_name_or_index`. La columna de identificación y los valores SHAP locales se guardan en el resultado del análisis. De esta forma, puede asignar cada registro a sus valores SHAP locales.
    + **agg\$1method**: (opcional) el método utilizado para agregar los valores SHAP locales (los valores SHAP de cada instancia) de todas las instancias a los valores SHAP globales (los valores SHAP de todo el conjunto de datos). El valor predeterminado es `mean_abs`. Se pueden usar los siguientes métodos para agregar valores SHAP.
      + **mean\$1abs**: la media de los valores SHAP locales absolutos de todas las instancias.
      + **mean\$1sq**: la media de los valores SHAP locales al cuadrado de todas las instancias.
      + **median**: la mediana de los valores SHAP locales de todas las instancias.
    + **text\$1config**: obligatorio para la explicabilidad del procesamiento de lenguaje natural. Incluya esta configuración si desea tratar las columnas de texto como texto y se deben proporcionar explicaciones para cada unidad de texto. Para ver un ejemplo de una configuración de análisis para la explicabilidad del procesamiento de lenguaje natural, consulte [Configuración del análisis para la explicabilidad del procesamiento de lenguaje natural](#clarify-analysis-configure-nlp-example).
      + **granularity**: la unidad de granularidad para el análisis de las columnas de texto. Los valores válidos son `token`, `sentence` o `paragraph`. **Cada unidad de texto se considera una característica** y los valores SHAP locales se calculan para cada unidad.
      + **language**: el idioma de las columnas de texto. Los valores válidos son **chinese**, **danish**, **dutch**, **english**, **french**, **german**, **greek**, **italian**, **japanese**, **lithuanian**, **multi-language**, **norwegian bokmål**, **polish**, **portuguese**, **romanian**, **russian**, **spanish**, **afrikaans**, **albanian**, **arabic**, **armenian**, **basque**, **bengali**, **bulgarian**, **catalan**, **croatian**, **czech**, **estonian**, **finnish**, **gujarati**, **hebrew**, **hindi**, **hungarian**, **icelandic**, **indonesian**, **irish**, **kannada**, **kyrgyz**, **latvian**, **ligurian**, **luxembourgish**, **macedonian**, **malayalam**, **marathi**, **nepali**, **persian**, **sanskrit**, **serbian**, **setswana**, **sinhala**, **slovak**, **slovenian**, **swedish**, **tagalog**, **tamil**, **tatar**, **telugu**, **thai**, **turkish**, **ukrainian**, **urdu**, **vietnamese**, **yoruba**. Ingrese `multi-language` para obtener una combinación de varios idiomas.
      + **max\$1top\$1tokens**: (opcional) el número máximo de tokens principales, en función de los valores SHAP globales. El valor predeterminado es `50`. Es posible que un token aparezca varias veces en el conjunto de datos. El trabajo SageMaker de procesamiento de Clarify suma los valores de SHAP de cada token y, a continuación, selecciona los principales en función de sus valores de SHAP globales. Los valores SHAP globales de los principales tokens seleccionados se incluyen en la sección `global_top_shap_text` del archivo analysis.json.
      + El valor SHAP local de agregación.
    + **image\$1config**: necesario para la explicabilidad de la visión artificial. Incluya esta configuración si tiene un conjunto de datos de entrada compuesto por imágenes y desea analizarlas para determinar su explicabilidad en un problema de visión artificial.
      + **model\$1type**: el tipo de modelo. Los valores válidos son:
        + `IMAGE_CLASSIFICATION` para un modelo de clasificación de imágenes.
        + `OBJECT_DETECTION` para un modelo de detección de objetos.
      + **max\$1objects**: solo se aplica cuando el tipo de modelo es **OBJECT\$1DETECTION**. El número máximo de objetos, ordenados por la puntuación de confianza, detectados por el modelo de visión artificial. Se filtran todos los objetos clasificados por debajo de max\$1objects según su puntuación máxima de confianza. El valor predeterminado es `3`.
      + **context**: solo se aplica cuando model\$1type es **OBJECT\$1DETECTION**. Indica si el área alrededor del cuadro delimitador del objeto detectado está enmascarada por la imagen de referencia o no. Los valores válidos son `0` para enmascararlo todo o `1` para no enmascarar nada. El valor predeterminado es 1.
      + **iou\$1threshold**: solo se aplica cuando `model_type` es **OBJECT\$1DETECTION**. La métrica de intersección mínima sobre la unión (IOU) para evaluar las predicciones en función de la detección original. Una métrica de IOU alta corresponde a una gran superposición entre el cuadro de detección de la verdad predicha y el cuadro de detección de la verdad fundamental. El valor predeterminado es `0.5`.
      + **num\$1segments**: (opcional) un entero que determina el número aproximado de segmentos que se etiquetarán en la imagen de entrada. Cada segmento de la imagen se considera una característica y los valores SHAP locales se calculan para cada segmento. El valor predeterminado es `20`.
      + **segment\$1compactness**: (opcional) un entero que determina la forma y el tamaño de los segmentos de la imagen generados por el método [scikit-image slic](https://scikit-image.org/docs/dev/api/skimage.segmentation.html#skimage.segmentation.slic). El valor predeterminado es `5`.
  + **pdp**: incluya este método para calcular las gráficas de dependencia parcial (). PDPs Para ver un ejemplo de una configuración de análisis que se va a generar PDPs, consulte [Calcule las gráficas de dependencia parcial () PDPs](#clarify-analysis-configure-csv-example-pdp)
    + **features**: obligatorio si no se solicita el método `shap`. Una matriz de nombres o índices de características para calcular y trazar gráficos PDP.
    + **top\$1k\$1features**: (opcional) especifica el número de características principales que se utilizan para generar los gráficos PDP. Si no `features` se proporciona, pero se solicita el `shap` método, el trabajo de procesamiento de SageMaker Clarify elige las características principales en función de sus atribuciones de SHAP. El valor predeterminado es `10`.
    + **grid\$1resolution**: el número de buckets en los que se va a dividir el rango de valores numéricos. Esto especifica la granularidad de la cuadrícula de los gráficos PDP.
  + **asymmetric\$1shapley\$1value**: incluya este método si desea calcular las métricas de explicabilidad para los modelos de pronóstico de series temporales. El trabajo de SageMaker procesamiento Clarify admite el algoritmo de valores asimétricos de Shapley. Los valores asimétricos de Shapley son una variante del valor de Shapley que prescinde del axioma de simetría. Para obtener más información, consulte [Asymmetric Shapley values: incorporating causal knowledge into model-agnostic explainability](https://arxiv.org/abs/1910.06358). Utilice estos valores para determinar cómo contribuyen las características al resultado de la previsión. Los valores asimétricos de Shapley tienen en cuenta las dependencias temporales de los datos de series temporales que los modelos de previsión toman como entrada.

    El algoritmo incluye los siguientes parámetros:
    + **direction**: los tipos disponibles son `chronological`, `anti_chronological` y `bidirectional`. Se puede navegar por la estructura temporal en orden cronológico, anticronológico o en ambos. Las explicaciones cronológicas se crean añadiendo información de forma iterativa desde el primer paso temporal en adelante. Las explicaciones anticronológicas añaden información empezando por el último paso y retrocediendo. Este último orden podría ser más apropiado en presencia de un sesgo de actualidad, por ejemplo, para pronosticar los precios de las acciones.
    + **granularity**: el nivel de detalle de la explicación que se utilizará. Las opciones disponibles de nivel de detalle son las siguientes:
      + **timewise**: las explicaciones `timewise` son económicas y solo proporcionan información sobre pasos temporales concretos; por ejemplo, para averiguar en qué medida la información del día n  en el pasado contribuyó a la previsión del día m en el futuro. Las atribuciones resultantes no explican las covariables estáticas de forma individual ni diferencian entre series temporales objetivo y series temporales relacionadas.
      + **fine\$1grained**: las explicaciones `fine_grained` hacen un uso más intensivo de capacidad de computación, pero proporcionan un desglose completo de todas las atribuciones de las variables de entrada. El método calcula las explicaciones aproximadas para reducir el tiempo de ejecución. Para obtener más información, consulte el siguiente parámetro `num_samples`.
**nota**  
Las explicaciones `fine_grained` solo admiten el orden `chronological`.
    + **num\$1samples**: (opcional) este argumento es obligatorio para las explicaciones `fine_grained`. Cuanto mayor sea el número, más precisa será la aproximación. Este número debe escalarse con la dimensionalidad de las características de entrada. Una regla general es establecer esta variable en *(1 \$1 max[número de series temporales relacionadas, número de covariables estáticas]^2* si el resultado no es demasiado grande.
    + **línea base**: (opcional) la configuración de referencia para reemplazar out-of-coalition los valores de los conjuntos de datos correspondientes (también conocidos como datos de fondo). El siguiente fragmento muestra un ejemplo de una configuración de referencia.

      ```
      {
          "related_time_series": "zero",
          "static_covariates": {
              <item_id_1>: [0, 2],
              <item_id_2>: [-1, 1]
          },
          "target_time_series": "zero"
      }
      ```
      + Para los datos temporales, como las series temporales objetivo o las series temporales relacionadas, los tipos de valores de referencia pueden ser uno de los siguientes valores:
        + `zero`— Todos los out-of-coalition valores se sustituyen por 0.0.
        + `mean`— Todos out-of-coalition los valores se sustituyen por el promedio de una serie temporal.
      + En el caso de las covariables estáticas, solo se debe proporcionar una entrada de referencia cuando la solicitud del modelo tome valores de covariables estáticas, en cuyo caso este campo es obligatorio. La referencia debe proporcionarse para cada elemento en forma de lista. Por ejemplo, si tiene un conjunto de datos con dos covariables estáticas, su configuración de referencia podría ser la siguiente:

        ```
        "static_covariates": {
            <item_id_1>: [1, 1],
            <item_id_2>: [0, 1]
        }
        ```

        En el ejemplo anterior, *<item\$1id\$11>* y *<item\$1id\$12>* son los identificadores de los elementos del conjunto de datos.
  + **report**: (opcional) utilice este objeto para personalizar el informe de análisis. Este parámetro no se admite en los trabajos de explicación de series temporales. Hay tres copias del mismo informe como parte del resultado del análisis: el informe de cuaderno de Jupyter, el informe HTML y el informe en PDF. El objeto tiene los siguientes parámetros:
    + **name**: nombre de archivo de los archivos del informe. Por ejemplo, si `name` es **MyReport**, los archivos del informe son `MyReport.ipynb`, `MyReport.html` y `MyReport.pdf`. El valor predeterminado es `report`.
    + **title**: (opcional) cadena de título del informe. El valor predeterminado es **SageMaker AI Analysis Report**.
+ **predictor**: obligatorio si el análisis requiere predicciones del modelo. Por ejemplo, cuando se solicita el método `shap`, `asymmetric_shapley_value`, `pdp` o `post_training_bias`, pero las etiquetas pronosticadas no se proporcionan como parte del conjunto de datos de entrada. Los siguientes son parámetros que se deben usar junto con`predictor`:
  + **model\$1name**: el nombre del modelo de SageMaker IA creado por la [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)API. Si especificas endpoint\$1name `model_name` en lugar de endpoint\$1name, el trabajo de SageMaker procesamiento de Clarify crea un punto final efímero con el nombre del modelo, conocido como punto final oculto, y obtiene las **predicciones del punto final**. El trabajo elimina el punto de conexión de sombra una vez finalizados los cálculos. Si el modelo es multimodelo, se debe especificar el parámetro `target_model`. Para obtener más información sobre puntos de conexión multimodelo, consulte [Puntos de conexión multimodelo](multi-model-endpoints.md).
  + **endpoint\$1name\$1prefix**: (opcional) un prefijo de nombre personalizado para el punto de conexión de sombra. Aplicable si proporciona `model_name` en lugar de `endpoint_name`. Por ejemplo, proporcione `endpoint_name_prefix` si desea restringir el acceso al punto de conexión por nombre de punto de conexión. El prefijo debe coincidir con el [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html#sagemaker-CreateEndpoint-request-EndpointName)patrón y su longitud máxima es. `23` El valor predeterminado es `sm-clarify`.
  + **initial\$1instance\$1count**: especifica el número de instancias del punto de conexión de sombra. Se requiere si se proporciona model\$1name en lugar de endpoint\$1name. El valor de `initial_instance_count` puede ser diferente al [InstanceCount](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ProcessingClusterConfig.html#sagemaker-Type-ProcessingClusterConfig-InstanceCount)del trabajo, pero recomendamos una proporción de 1:1.
  + **instance\$1type**: especifica el tipo de instancia del punto de conexión de sombra. Se requiere si se proporciona `model_name` en lugar de `endpoint_name`. Por ejemplo, `instance_type` se puede configurar en “ml.m5.large”. En algunos casos, el valor especificado para `instance_type` puede ayudar a reducir el tiempo de inferencia del modelo. Por ejemplo, para funcionar de manera eficiente, los modelos de procesamiento de lenguaje natural y los modelos de visión artificial suelen requerir un tipo de instancia de unidad de procesamiento de gráficos (GPU).
  + **endpoint\$1name**: el nombre del punto final de SageMaker IA creado por la API. [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) Si se proporciona, `endpoint_name` tiene prioridad sobre el parámetro `model_name`. El uso de un punto de conexión existente reduce el tiempo de arranque del punto de conexión de sombra, pero también puede provocar un aumento significativo de la carga de ese punto de conexión. Además, algunos métodos de análisis (como `shap` y `pdp`) generan conjuntos de datos sintéticos que se envían al punto de conexión. Esto puede provocar que las métricas del punto de conexión o los datos capturados se vean contaminados por datos sintéticos, lo que puede no reflejar con precisión el uso en el mundo real. Por estos motivos, generalmente no se recomienda utilizar un punto final de producción existente para el análisis de Clarify. SageMaker 
  + **target\$1model**: el valor de cadena que se transfiere al TargetModel parámetro de la API de SageMaker IA [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax). Necesario si el modelo (especificado mediante el parámetro model\$1name) o el punto de conexión (especificado mediante el parámetro endpoint\$1name) es multimodelo. Para obtener más información sobre puntos de conexión multimodelo, consulte [Puntos de conexión multimodelo](multi-model-endpoints.md).
  + **custom\$1attributes**: (opcional) cadena que permite proporcionar información adicional sobre una solicitud de inferencia que se envía al punto de conexión. El valor de cadena se pasa al `CustomAttributes` parámetro de la API de SageMaker IA [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax).
  + **content\$1type**: formato de entrada del modelo que se utilizará para obtener las predicciones del punto de conexión. Si se proporciona, se pasa al `ContentType` parámetro de la [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax)API de SageMaker IA. 
    + Para facilitar la explicabilidad de la visión artificial, los valores válidos son **image/jpeg**, **image/png** o **application/x-npy**. Si no se proporciona `content_type`, el valor predeterminado es **image/jpeg**.
    + Para la explicabilidad del pronóstico de series temporales, el valor válido es **application/json**.
    + Para otros tipos de explicabilidad, los valores válidos son **text/csv**, **application/jsonlines,** y **application/json**. Se requiere un valor para `content_type` si `dataset_type` es **application/x-parquet**. De no ser así, `content_type` toma el valor predeterminado del parámetro `dataset_type`.
  + **accept\$1type**: el formato de salida del modelo que se utilizará para obtener las predicciones del punto de conexión. El valor de `accept_type` se pasa al `Accept` parámetro de la [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax)API de SageMaker IA.
    + Para la explicabilidad de la visión artificial, si `model_type` es “OBJECT\$1DETECTION”, `accept_type` toma el valor predeterminado **application/json**.
    + Para la explicabilidad del pronóstico de series temporales, el valor válido es **application/json**.
    + Para otros tipos de explicabilidad, los valores válidos son **text/csv**, **application/jsonlines** y **application/json**. Si no se proporciona un valor para `accept_type`, el valor predeterminado de `accept_type` es el valor del parámetro `content_type`.
  + **content\$1template**: cadena de plantilla que se utiliza para construir la entrada del modelo a partir de los registros del conjunto de datos. El parámetro `content_template` solo se usa y es obligatorio si el valor del parámetro `content_type` es `application/jsonlines` o `application/json`. 

    Si el parámetro `content_type` es `application/jsonlines`, la plantilla solo debe tener un marcador de posición, `$features`, que se sustituye por una lista de características en tiempo de ejecución. Por ejemplo, si la plantilla es `"{\"myfeatures\":$features}"`, y si un registro tiene tres valores de característica numéricos: `1`, `2` y `3`, entonces el registro se enviará al modelo como JSON Lines `{"myfeatures":[1,2,3]}`. 

    Cuando `content_type` es `application/json`, la plantilla puede tener un marcador de posición `$record` o `records`. Si el marcador de posición es `record`, se sustituye un único registro por un registro al que se le haya aplicado la plantilla de `record_template`. En este caso, solo se enviará un registro al modelo cada vez. Si el marcador de posición es `$records`, los registros se sustituyen por una lista de registros, cada uno con una plantilla proporcionada por `record_template`.
  + **record\$1template**: cadena de plantilla que se utiliza para construir cada registro del modelo a partir de las instancias del conjunto de datos. Solo se usa y se requiere cuando `content_type` es `application/json`. La cadena de plantilla puede contener uno de los siguientes valores:
    + Un parámetro `$features` marcador de posición que se sustituye por una matriz de valores de características. Un marcador de posición opcional adicional puede sustituir los nombres de los encabezados de las columnas de características en `$feature_names`. Este marcador de posición opcional se sustituirá por una serie de nombres de características.
    + Exactamente un marcador de posición `$features_kvp` que se sustituye por los pares clave-valor, el nombre de la característica y el valor de la característica.
    + Una característica de la configuración `headers`. Por ejemplo, un nombre de característica `A`, anotado mediante la sintaxis del marcador de posición `"${A}"` se sustituirá por el valor de la característica correspondiente para `A`.

    El valor para `record_template` se usa con `content_template` para construir la entrada del modelo. A continuación, se muestra un ejemplo de configuración que muestra cómo construir una entrada de modelo mediante una plantilla de contenido y registro.

    En el siguiente ejemplo de código, los encabezados y las características se definen de la siguiente manera.
    + ``headers`:["A", "B"]`
    + ``features`:[[0,1], [3,4]]`

    Un ejemplo de entrada del modelo sería el siguiente.

    ```
    {
        "instances": [[0, 1], [3, 4]],
        "feature_names": ["A", "B"]
    }
    ```

    A continuación, se muestran el ejemplo `content_template` y los valores del parámetro `record_template` para construir el ejemplo anterior de entrada del modelo.
    + `content_template: "{\"instances\": $records, \"feature_names\": $feature_names}"`
    + `record_template: "$features"`

     En el siguiente ejemplo de código, los encabezados y las características se definen de la siguiente manera.

    ```
    [
        { "A": 0, "B": 1 },
        { "A": 3, "B": 4 },
    ]
    ```

    A continuación, se muestran el ejemplo ` content_template` y los valores del parámetro `record_template` para construir el ejemplo anterior de entrada del modelo. 
    + `content_template: "$records"`
    + `record_template: "$features_kvp"`

    A continuación, se muestra un ejemplo de código alternativo para construir la entrada del modelo del ejemplo anterior.
    + `content_template: "$records"`
    + `record_template: "{\"A\": \"${A}\", \"B\": \"${B}\"}"`

     En el siguiente ejemplo de código, los encabezados y las características se definen de la siguiente manera.

    ```
    { "A": 0, "B": 1 }
    ```

    Los valores de los parámetros content\$1template y record\$1template de ejemplo que se va a construir están arriba: a continuación, la entrada del modelo del ejemplo anterior.
    + `content_template: "$record"`
    + `record_template: "$features_kvp"`

    Para obtener más ejemplos, consulte [Solicitudes de punto de conexión para datos de series temporales](clarify-processing-job-data-format-time-series-request-jsonlines.md).
  + **etiqueta**: (opcional) cadena de índice o JMESPath expresión de enteros de base cero que se utiliza para extraer las etiquetas pronosticadas de la salida del modelo para el análisis de sesgo. Si el modelo es multiclase y el parámetro `label` extrae todas las etiquetas predichas de la salida del modelo, se aplica lo siguiente. Esta característica no es compatible con las series temporales.
    + El parámetro `probability` es necesario para obtener las probabilidades (o puntuaciones) correspondientes de la salida del modelo.
    + Se elige la etiqueta predicha de la puntuación más alta.

    El valor de `label` dependen del valor del parámetro accept\$1type de la siguiente manera.
    + Si `accept_type` es **text/csv**, entonces `label` es el índice de cualquier etiqueta predicha en la salida del modelo.
    + Si `accept_type` es **application/jsonlines** o**application/json**, entonces `label` es una JMESPath expresión que se aplica a la salida del modelo para obtener las etiquetas pronosticadas.
  + **label\$1headers**: (opcional) una matriz de valores que la etiqueta puede incluir en el conjunto de datos. Si se solicita un análisis del sesgo, el parámetro `probability` también es necesario para obtener los valores de probabilidad (puntuaciones) correspondientes de la salida del modelo, y se elige la etiqueta predicha de la puntuación más alta. Si se solicita un análisis de explicabilidad, los encabezados de las etiquetas se utilizan para embellecer el informe de análisis. Se requiere un valor para `label_headers` para la explicabilidad de la visión artificial. Por ejemplo, en el caso de un problema de clasificación multiclase, si la etiqueta tiene tres valores posibles, **bird**, **cat** y **dog**, entonces `label_headers` se debe establecer en `["bird","cat","dog"]`.
  + **probabilidad**: (opcional) un índice entero basado en cero o una cadena de JMESPath expresión que se utiliza para extraer probabilidades (puntuaciones) para el análisis de explicabilidad (pero no para la explicabilidad de las series temporales), o para elegir la etiqueta de predicción para el análisis de sesgo. El valor de `probability` dependen del valor del parámetro `accept_type` de la siguiente manera.
    + Si `accept_type` es **text/csv**, `probability` es el índice de las probabilidades (puntuaciones) en la salida del modelo. Si no se proporciona `probability`, toda la salida del modelo se toma como probabilidades (puntuaciones).
    + Si `accept_type` se trata de datos JSON (uno **application/jsonlines** u **application/json** otro), `probability` debe ser una JMESPath expresión que se utilice para extraer las probabilidades (puntuaciones) del resultado del modelo.
  + **time\$1series\$1predictor\$1config**: (opcional) se usa solo para la explicabilidad de series temporales. Se utiliza para indicar al procesador SageMaker Clarify cómo analizar correctamente los datos a partir de los datos transferidos como URI de S3. `dataset_uri`
    + **previsión**: JMESPath expresión que se utiliza para extraer el resultado de la previsión.

## Archivos de configuración del análisis de ejemplo
<a name="clarify-processing-job-configure-analysis-examples"></a>

Las secciones siguientes contienen archivos de configuración de análisis de ejemplo para datos en formato CSV, formato JSON Lines y para el procesamiento de lenguaje natural (NLP), visión artificial (CV) y explicabilidad de las series temporales (TS).

### Configuración del análisis para un conjunto de datos CSV
<a name="clarify-analysis-configure-csv-example"></a>

Los siguientes ejemplos muestran cómo configurar el análisis del sesgo y la explicabilidad para un conjunto de datos tabular en formato CSV. En estos ejemplos, el conjunto de datos entrante tiene cuatro columnas de características y una columna de etiquetas binarias, `Target`. El contenido del conjunto de datos es el siguiente. Un valor de etiqueta de `1` indica un resultado positivo. La entrada de `dataset` procesamiento proporciona el conjunto de datos al trabajo de SageMaker Clarify.

```
"Target","Age","Gender","Income","Occupation"
0,25,0,2850,2
1,36,0,6585,0
1,22,1,1759,1
0,48,0,3446,1
...
```

Las siguientes secciones muestran cómo calcular las métricas de sesgo previas y posteriores al entrenamiento, los valores de SHAP y las gráficas de dependencia parcial (PDPs) que muestran la importancia de las características para un conjunto de datos en formato CSV. 

#### Cálculo de todas las métricas de sesgo previas al entrenamiento
<a name="clarify-analysis-configure-csv-example-metrics"></a>

Este ejemplo de configuración muestra cómo medir si el conjunto de datos de muestra anterior está sesgado favorablemente hacia muestras con un valor de **Gender** de `0`. La siguiente configuración de análisis indica al trabajo de procesamiento de SageMaker Clarify que calcule todas las métricas de sesgo previas al entrenamiento para el conjunto de datos.

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        }
    }
}
```

#### Cálculo de todas las métricas de sesgo posteriores al entrenamiento
<a name="clarify-analysis-configure-csv-example-postmetrics"></a>

Puede calcular las métricas de sesgo previas al entrenamiento antes del entrenamiento. Sin embargo, debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento. El siguiente ejemplo de salida proviene de un modelo de clasificación binaria que genera datos en formato CSV. En este ejemplo de salida, cada fila contiene dos columnas. La primera columna contiene la etiqueta predicha y la segunda columna contiene el valor de probabilidad de esa etiqueta. 

```
0,0.028986845165491
1,0.825382471084594
...
```

El siguiente ejemplo de configuración indica al trabajo de procesamiento de SageMaker Clarify que calcule todas las métricas de sesgo posibles utilizando el conjunto de datos y las predicciones de la salida del modelo. En el ejemplo, el modelo se implementa en un punto final `your_endpoint` de SageMaker IA.

**nota**  
En el siguiente código de ejemplo, los parámetros `content_type` y `accept_type` no están configurados. Por lo tanto, utilizan automáticamente el valor del parámetro dataset\$1type, que es `text/csv`.

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "label": 0
    }
}
```

#### Cálculo de los valores SHAP
<a name="clarify-analysis-configure-csv-example-shap"></a>

El siguiente ejemplo de configuración del análisis indica al trabajo que calcule los valores SHAP, designando la columna `Target` como etiquetas y todas las demás columnas como características.

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "methods": {
        "shap": {
            "num_clusters": 1
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "probability": 1
    }
}
```

En este ejemplo, se omite el parámetro SHAP `baseline` y el valor del parámetro `num_clusters` es `1`. Esto indica al procesador SageMaker Clarify que calcule una muestra de referencia de SHAP. En este ejemplo, la probabilidad se establece en `1`. Esto indica al trabajo de procesamiento de SageMaker Clarify que extraiga la puntuación de probabilidad de la segunda columna del resultado del modelo (mediante una indexación basada en cero).

#### Calcule las gráficas de dependencia parcial () PDPs
<a name="clarify-analysis-configure-csv-example-pdp"></a>

El siguiente ejemplo muestra cómo ver la importancia de la `Income` función en el informe de análisis mediante PDPs. El parámetro de informe indica al trabajo de procesamiento SageMaker de Clarify que genere un informe. Una vez finalizado el trabajo, el informe generado se guarda como report.pdf en la ubicación `analysis_result`. El parámetro `grid_resolution` divide el rango de valores de las características en `10` buckets. En conjunto, los parámetros especificados en el siguiente ejemplo indican al trabajo de procesamiento de SageMaker Clarify que genere un informe que contenga un gráfico PDP `Income` con `10` segmentos en el eje x. El eje y mostrará el impacto marginal de `Income` en las predicciones.

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "methods": {
        "pdp": {
            "features": ["Income"],
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "probability": 1
    },
}
```

#### Cálculo de las métricas de sesgo y de la importancia de las características
<a name="clarify-analysis-configure-csv-example-fi"></a>

 Puede combinar todos los métodos de los ejemplos de configuración anteriores en un único archivo de configuración de análisis y calcularlos todos en un solo trabajo. El siguiente ejemplo muestra una configuración de análisis con todos los pasos combinados. 

En este ejemplo, el parámetro `probability` se establece `1` para indicar que las probabilidades están contenidas en la segunda columna (mediante la indexación basada en cero). Sin embargo, dado que el análisis del sesgo necesita una etiqueta predicha, el parámetro `probability_threshold` se establece en `0.5` para convertir la puntuación de probabilidad en una etiqueta binaria. En este ejemplo, el parámetro `top_k_features` del método de los gráficos de dependencia parcial `pdp` se establece en `2`. Esto indica al trabajo de procesamiento de SageMaker Clarify que calcule las gráficas de dependencia parcial (PDPs) para las principales `2` entidades con los valores SHAP globales más altos. 

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "probability_threshold": 0.5,
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        },
        "shap": {
            "num_clusters": 1
        },
        "pdp": {
            "top_k_features": 2,
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "probability": 1
    }
}
```

En lugar de implementar el modelo en un punto final, puede proporcionar el nombre de su modelo de SageMaker IA al trabajo de procesamiento de SageMaker Clarify mediante el parámetro. `model_name` En el siguiente ejemplo se muestra cómo especificar un modelo denominado **your\$1model**. El trabajo SageMaker de procesamiento de Clarify creará un punto final oculto utilizando la configuración.

```
{
     ...
    "predictor": {
        "model_name": "your_model",
        "initial_instance_count": 1,
        "instance_type": "ml.m5.large",
        "probability": 1
    }
}
```

### Configuración del análisis para un conjunto de datos JSON Lines
<a name="clarify-analysis-configure-JSONLines-example"></a>

Los siguientes ejemplos muestran cómo configurar el análisis de sesgo y el análisis de explicabilidad para un conjunto de datos tabular en formato JSON Lines. En estos ejemplos, el conjunto de datos entrante tiene los mismos datos que en la sección anterior, pero están en el formato denso de líneas JSON de SageMaker IA. Cada línea es un objeto JSON válido. La clave “Features” apunta a una matriz de valores de características, y la clave “Label” apunta a la etiqueta de verdad fundamental. La entrada de procesamiento del «conjunto de datos» proporciona el conjunto de datos al trabajo de SageMaker Clarify. Para obtener más información sobre la líneas JSON, consulte [Formato de solicitud JSONLINES](cdf-inference.md#cm-jsonlines).

```
{"Features":[25,0,2850,2],"Label":0}
{"Features":[36,0,6585,0],"Label":1}
{"Features":[22,1,1759,1],"Label":1}
{"Features":[48,0,3446,1],"Label":0}
...
```

Las siguientes secciones muestran cómo calcular las métricas de sesgo previas y posteriores al entrenamiento, los valores de SHAP y las gráficas de dependencia parcial (PDPs) que muestran la importancia de las características para un conjunto de datos en formato JSON Lines.

#### Cálculo de las métricas de sesgo previas al entrenamiento
<a name="clarify-analysis-configure-JSONLines-pretraining"></a>

Especifique la etiqueta, las características, el formato y los métodos para medir las métricas de sesgo previas al entrenamiento con un valor `Gender` de `0`. En el siguiente ejemplo, el parámetro `headers` proporciona primero los nombres de las características. El nombre de la etiqueta se proporciona en último lugar. Por convención, el último encabezado es el encabezado de la etiqueta. 

El `features` parámetro se establece en la JMESPath expresión «Características» para que el trabajo de procesamiento de SageMaker Clarify pueda extraer la matriz de entidades de cada registro. El `label` parámetro se establece en la JMESPath expresión «Etiqueta» para que el trabajo SageMaker de procesamiento de Clarify pueda extraer la etiqueta fundamental de cada registro. Utilice un nombre de faceta para especificar el atributo sensible, como se indica a continuación.

```
{
    "dataset_type": "application/jsonlines",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "Label",
    "features": "Features",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        }
    }
}
```

#### Cálculo de todas las métricas de sesgo
<a name="clarify-analysis-configure-JSONLines-bias"></a>

Debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento. El siguiente ejemplo proviene de un modelo de clasificación binaria que genera datos en formato JSON Lines en el formato del ejemplo. Cada fila de la salida del modelo es un objeto JSON válido. La clave `predicted_label` apunta a la etiqueta predicha y la clave `probability` apunta al valor de probabilidad.

```
{"predicted_label":0,"probability":0.028986845165491}
{"predicted_label":1,"probability":0.825382471084594}
...
```

Puede implementar el modelo en un punto final de SageMaker IA denominado`your_endpoint`. El siguiente ejemplo de configuración de análisis indica al trabajo de procesamiento SageMaker de Clarify que calcule todas las métricas de sesgo posibles tanto para el conjunto de datos como para el modelo. En el ejemplo, los parámetros `content_type` y `accept_type` no están definidos. Por lo tanto, utilizan automáticamente el valor del parámetro dataset\$1type, que es `application/jsonlines`. El trabajo SageMaker de procesamiento de Clarify usa el `content_template` parámetro para componer la entrada del modelo, reemplazando el `$features` marcador de posición por una matriz de características.

```
{
    "dataset_type": "application/jsonlines",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "Label",
    "features": "Features",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "{\"Features\":$features}",
        "label": "predicted_label"
    }
}
```

#### Cálculo de los valores SHAP
<a name="clarify-analysis-configure-JSONLines-shap"></a>

Como el análisis SHAP no necesita una etiqueta de verdad fundamental, se omite el parámetro `label`. En este ejemplo, también se omite el parámetro `headers`. Por lo tanto, el SageMaker trabajo de procesamiento de Clarify debe generar marcadores de posición con nombres genéricos, como `column_0` o `column_1` para encabezados de entidades, y `label0` para un encabezado de etiqueta. Puede especificar valores para `headers` y para `label` a fin de mejorar la legibilidad del resultado del análisis. Como el parámetro de probabilidad está establecido en JMESPath expresión`probability`, el valor de probabilidad se extraerá de la salida del modelo. A continuación se muestra un ejemplo para calcular valores SHAP.

```
{
    "dataset_type": "application/jsonlines",
    "features": "Features",
    "methods": {
        "shap": {
            "num_clusters": 1
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "{\"Features\":$features}",
        "probability": "probability"
    }
}
```

#### Calcule las gráficas de dependencia parcial () PDPs
<a name="clarify-analysis-configure-JSONLines-pdp"></a>

El siguiente ejemplo muestra cómo ver la importancia de los “ingresos” en el PDP. En este ejemplo, no se proporcionan los encabezados de las características. Por lo tanto, el parámetro `features` del método `pdp` debe utilizar un índice de base cero para hacer referencia a la ubicación de la columna de características. El parámetro `grid_resolution` divide el rango de valores de las características en `10` buckets. En conjunto, los parámetros del ejemplo indican al trabajo de procesamiento de SageMaker Clarify que genere un informe que contenga un gráfico PDP `Income` con `10` segmentos en el eje x. El eje y mostrará el impacto marginal de `Income` en las predicciones.

```
{
    "dataset_type": "application/jsonlines",
    "features": "Features",
    "methods": {
        "pdp": {
            "features": [2],
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "{\"Features\":$features}",
        "probability": "probability"
    }
}
```

#### Cálculo de las métricas de sesgo y de la importancia de las características
<a name="clarify-analysis-configure-JSONLines-fi-metrics"></a>

Puede combinar todos los métodos anteriores en un único archivo de configuración de análisis y calcularlos todos en un solo trabajo. El siguiente ejemplo muestra una configuración de análisis con todos los pasos combinados. En el ejemplo, el parámetro `probability` está definido. Dado que el análisis del sesgo necesita una etiqueta predicha, el parámetro `probability_threshold` se establece en `0.5` para convertir la puntuación de probabilidad en una etiqueta binaria. En este ejemplo, el parámetro `top_k_features` del método `pdp` se establece en `2`. Esto indica al trabajo de procesamiento de SageMaker Clarify que calcule las `2` entidades principales con PDPs los valores de SHAP globales más altos.

```
{
    "dataset_type": "application/jsonlines",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "Label",
    "features": "Features",
    "probability_threshold": 0.5,
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        },
        "shap": {
            "num_clusters": 1
        },
        "pdp": {
            "top_k_features": 2,
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "{\"Features\":$features}",
        "probability": "probability"
    }
}
```

### Configuración del análisis para un conjunto de datos JSON
<a name="clarify-analysis-configure-JSON-example"></a>

Los siguientes ejemplos muestran cómo configurar el análisis del sesgo y la explicabilidad para un conjunto de datos tabular en formato JSON. En estos ejemplos, el conjunto de datos entrante tiene los mismos datos que en la sección anterior, pero están en el formato denso SageMaker AI JSON. Para obtener más información sobre la líneas JSON, consulte [Formato de solicitud JSONLINES](cdf-inference.md#cm-jsonlines).

Toda la solicitud de entrada es un formato JSON válido, donde la estructura externa es una lista y cada elemento son los datos de un registro. Dentro de cada registro, la clave `Features` apunta a una matriz de valores de características, y la clave `Label` apunta a la etiqueta de verdad fundamental. La entrada de `dataset` procesamiento proporciona el conjunto de datos al trabajo de SageMaker Clarify.

```
[
    {"Features":[25,0,2850,2],"Label":0},
    {"Features":[36,0,6585,0],"Label":1},
    {"Features":[22,1,1759,1],"Label":1},
    {"Features":[48,0,3446,1],"Label":0},
    ...
]
```

Las siguientes secciones muestran cómo calcular las métricas de sesgo previas y posteriores al entrenamiento, los valores de SHAP y las gráficas de dependencia parcial (PDPs) que muestran la importancia de las características para un conjunto de datos en formato JSON Lines.

#### Cálculo de las métricas de sesgo previas al entrenamiento
<a name="clarify-analysis-configure-JSON-example-pretraining"></a>

Especifique la etiqueta, las características, el formato y los métodos para medir las métricas de sesgo previas al entrenamiento con un valor `Gender` de `0`. En el siguiente ejemplo, el parámetro `headers` proporciona primero los nombres de las características. El nombre de la etiqueta se proporciona en último lugar. En el caso de los conjuntos de datos JSON, el último encabezado es el encabezado de la etiqueta.

El `features` parámetro se establece en la JMESPath expresión que extrae una matriz o matriz 2D. Cada fila de esta matriz debe contener la lista de `Features` para cada registro. El `label` parámetro se establece en una JMESPath expresión que extrae una lista de etiquetas de verdad fundamental. Cada elemento de esta lista debe contener la etiqueta de un registro. 

Utilice un nombre de faceta para especificar el atributo sensible, como se indica a continuación.

```
{
    "dataset_type": "application/json",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "[*].Label",
    "features": "[*].Features",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        }
    }
}
```

#### Cálculo de todas las métricas de sesgo
<a name="clarify-analysis-configure-JSON-example-bias"></a>

Debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento. El siguiente ejemplo de código proviene de un modelo de clasificación binaria que genera datos en formato JSON en el formato del ejemplo. En el ejemplo, cada uno de los elementos en `predictions` es el resultado de la predicción de un registro. El código de ejemplo contiene la clave `predicted_label`, que apunta a la etiqueta predicha, y la clave `probability` que apunta al valor de probabilidad.

```
{
    "predictions": [
        {"predicted_label":0,"probability":0.028986845165491},
        {"predicted_label":1,"probability":0.825382471084594},
        ...
    ]
}
```

Puede implementar el modelo en un punto final de SageMaker IA denominado`your_endpoint`. 

En el siguiente ejemplo, los parámetros `content_type` y `accept_type` no están configurados. Por lo tanto, `content_type` y `accept_type` utilizan automáticamente el valor del parámetro `dataset_type`, que es `application/json`. A continuación SageMaker , el trabajo de procesamiento de Clarify utiliza el `content_template` parámetro para componer la entrada del modelo. 

En el siguiente ejemplo, la entrada del modelo se compone a través de la sustitución del marcador de posición `$records` por una matriz de registros. A continuación, el parámetro `record_template` compone la estructura JSON de cada registro y reemplaza el marcador de posición `$features` por la matriz de características de cada registro.

El siguiente ejemplo de configuración de análisis indica al trabajo de procesamiento SageMaker de Clarify que calcule todas las métricas de sesgo posibles tanto para el conjunto de datos como para el modelo.

```
{
    "dataset_type": "application/json",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "[*].Label",
    "features": "[*].Features",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "label": "predictions[*].predicted_label"
    }
}
```

#### Cálculo de los valores SHAP
<a name="clarify-analysis-configure-JSON-example-shap"></a>

No es necesario especificar una etiqueta para el análisis SHAP. En el siguiente ejemplo, el parámetro `headers` no está configurado. Por lo tanto, el SageMaker trabajo de procesamiento de Clarify generará marcadores de posición con nombres genéricos, como `column_0` o `column_1` para encabezados de entidades, y `label0` para un encabezado de etiqueta. Puede especificar valores para `headers` y para `label` a fin de mejorar la legibilidad del resultado del análisis. 

En el siguiente ejemplo de configuración, el parámetro de probabilidad se establece en una JMESPath expresión que extrae las probabilidades de cada predicción para cada registro. A continuación se muestra un ejemplo para calcular valores SHAP.

```
{
    "dataset_type": "application/json",
    "features": "[*].Features",
    "methods": {
        "shap": {
            "num_clusters": 1
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "probability": "predictions[*].probability"
    }
}
```

#### Calcule las gráficas de dependencia parcial () PDPs
<a name="clarify-analysis-configure-JSON-example-pdp"></a>

El siguiente ejemplo muestra cómo ver la importancia de una característica en PDPs. En el ejemplo, no se proporcionan los encabezados de las características. Por lo tanto, el parámetro `features` del método `pdp` debe utilizar un índice de base cero para hacer referencia a la ubicación de la columna de características. El parámetro `grid_resolution` divide el rango de valores de las características en `10` buckets. 

En conjunto, los parámetros del siguiente ejemplo indican al trabajo de procesamiento de SageMaker Clarify que genere un informe que contenga un gráfico PDP `Income` con `10` segmentos en el eje x. El eje y muestra el impacto marginal de `Income` en las predicciones.

El siguiente ejemplo de configuración muestra cómo ver la importancia de encendido. `Income` PDPs

```
{
    "dataset_type": "application/json",
    "features": "[*].Features",
    "methods": {
        "pdp": {
            "features": [2],
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "probability": "predictions[*].probability"
    }
}
```

#### Cálculo de las métricas de sesgo y de la importancia de las características
<a name="clarify-analysis-configure-JSON-example-bias-fi"></a>

Puede combinar todos los métodos de configuración anteriores en un único archivo de configuración de análisis y calcularlos todos en un solo trabajo. El siguiente ejemplo muestra una configuración de análisis con todos los pasos combinados. 

En el ejemplo, el parámetro `probability` está definido. Como el análisis del sesgo necesita una etiqueta predicha, el parámetro `probability_threshold` se establece en `0.5` para convertir la puntuación de probabilidad en una etiqueta binaria. En este ejemplo, el parámetro `top_k_features` del método `pdp` se establece en `2`. Esto indica al trabajo de procesamiento SageMaker de Clarify que calcule PDPs las principales `2` entidades con los valores SHAP globales más altos.

```
{
    "dataset_type": "application/json",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "[*].Label",
    "features": "[*].Features",
    "probability_threshold": 0.5,
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        },
        "shap": {
            "num_clusters": 1
        },
        "pdp": {
            "top_k_features": 2,
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "probability": "predictions[*].probability"
    }
}
```

### Configuración del análisis para la explicabilidad del procesamiento de lenguaje natural
<a name="clarify-analysis-configure-nlp-example"></a>

El siguiente ejemplo muestra un archivo de configuración del análisis para calcular la importancia de las características en el procesamiento de lenguaje natural (NLP). En este ejemplo, el conjunto de datos entrante es un conjunto de datos tabular en formato CSV, con una columna de etiqueta binaria y dos columnas de características, de la siguiente manera. El conjunto de datos se proporciona al trabajo de SageMaker Clarify mediante el parámetro de entrada `dataset` de procesamiento.

```
0,2,"They taste gross"
1,3,"Flavor needs work"
1,5,"Taste is awful"
0,1,"The worst"
...
```

En este ejemplo, se entrenó un modelo de clasificación binaria en el conjunto de datos anterior. El modelo acepta datos CSV y genera una puntuación única entre `0` y `1`, de la siguiente manera.

```
0.491656005382537
0.569582343101501
...
```

El modelo se utiliza para crear un modelo de SageMaker IA denominado «your\$1model». La siguiente configuración de análisis muestra cómo ejecutar un análisis de explicabilidad simbólica utilizando el modelo y el conjunto de datos. El parámetro `text_config` activa el análisis de explicabilidad del NLP. El parámetro `granularity` indica que el análisis debe analizar los tokens. 

En inglés, cada token es una palabra. El siguiente ejemplo también muestra cómo proporcionar una instancia de “referencia” SHAP in situ con una “valoración” media de 4. Se utiliza un token de máscara especial “[MASK]” para reemplazar un token (palabra) en “Comments”. En este ejemplo también se utiliza un tipo de instancia de punto de conexión de GPU para acelerar las inferencias.

```
{
    "dataset_type": "text/csv",
    "headers": ["Target","Rating","Comments"]
    "label": "Target",
    "methods": {
        "shap": {
            "text_config": {
                "granularity": "token",
                "language": "english"
            }
            "baseline": [[4,"[MASK]"]],
        }
    },
    "predictor": {
        "model_name": "your_nlp_model",
        "initial_instance_count": 1,
        "instance_type": "ml.g4dn.xlarge"
    }
}
```

### Configuración del análisis para facilitar la explicación de la visión artificial
<a name="clarify-analysis-configure-computer-vision-example"></a>

El siguiente ejemplo muestra un archivo de configuración de análisis que calcula la importancia de las características para la visión artificial. En este ejemplo, el conjunto de datos de entrada consta de imágenes JPEG. El conjunto de datos se proporciona al trabajo de SageMaker Clarify mediante el parámetro de entrada `dataset` de procesamiento. El ejemplo muestra cómo configurar un análisis de explicabilidad mediante un modelo de clasificación de SageMaker imágenes. En el ejemplo, un modelo denominado `your_cv_ic_model` se ha entrenado para clasificar los animales de las imágenes JPEG de entrada.

```
{
    "dataset_type": "application/x-image",
    "methods": {
        "shap": {
             "image_config": {
                "model_type": "IMAGE_CLASSIFICATION",
                 "num_segments": 20,
                "segment_compactness": 10
             }
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "model_name": "your_cv_ic_model",
        "initial_instance_count": 1,
        "instance_type": "ml.p2.xlarge",
        "label_headers": ["bird","cat","dog"]
    }
}
```

Para obtener más información sobre la clasificación de imágenes, consulte [Clasificación de imágenes - MXNet](image-classification.md).

En este ejemplo, un [modelo de detección de objetos basado en la SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/object-detection.html) `your_cv_od_model` se basa en las mismas imágenes JPEG para identificar los animales que aparecen en ellas. En el siguiente ejemplo se muestra cómo configurar un análisis de explicabilidad para el modelo de detección de objetos.

```
{
    "dataset_type": "application/x-image",
    "probability_threshold": 0.5,
    "methods": {
        "shap": {
             "image_config": {
                "model_type": "OBJECT_DETECTION",
                 "max_objects": 3,
                "context": 1.0,
                "iou_threshold": 0.5,
                 "num_segments": 20,
                "segment_compactness": 10
             }
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "model_name": "your_cv_od_model",
        "initial_instance_count": 1,
        "instance_type": "ml.p2.xlarge",
        "label_headers": ["bird","cat","dog"]
    }
}
```

### Configuración de análisis para la explicabilidad del modelo de previsión de series temporales
<a name="clarify-analysis-configure-time-series-example"></a>

El siguiente ejemplo muestra un archivo de configuración de análisis que calcula la importancia de las características para una serie temporal (TS). En este ejemplo, el conjunto de datos entrante es un conjunto de datos de serie temporal en formato JSON con un conjunto de características de covariables dinámicas y estáticas. El parámetro de entrada de procesamiento del conjunto de datos proporciona el conjunto de datos al trabajo de SageMaker Clarify`dataset_uri`.

```
[
    {
        "item_id": "item1",
        "timestamp": "2019-09-11",
        "target_value": 47650.3,
        "dynamic_feature_1": 0.4576,
        "dynamic_feature_2": 0.2164,
        "dynamic_feature_3": 0.1906,
        "static_feature_1": 3,
        "static_feature_2": 4
    },
    {
        "item_id": "item1",
        "timestamp": "2019-09-12",
        "target_value": 47380.3,
        "dynamic_feature_1": 0.4839,
        "dynamic_feature_2": 0.2274,
        "dynamic_feature_3": 0.1889,
        "static_feature_1": 3,
        "static_feature_2": 4
    },
    {
        "item_id": "item2",
        "timestamp": "2020-04-23",
        "target_value": 35601.4,
        "dynamic_feature_1": 0.5264,
        "dynamic_feature_2": 0.3838,
        "dynamic_feature_3": 0.4604,
        "static_feature_1": 1,
        "static_feature_2": 2
    },
]
```

En las siguientes secciones, se explica cómo calcular las atribuciones de características para un modelo de pronóstico con el algoritmo de valores asimétricos de Shapley para un conjunto de datos JSON. 

#### Cálculo de las explicaciones de los modelos de previsión de series temporales
<a name="clarify-processing-job-configure-analysis-feature-attr"></a>

El siguiente ejemplo de configuración de análisis muestra las opciones que utiliza el trabajo para calcular las explicaciones de los modelos de previsión de series temporales.

```
{
    'dataset_type': 'application/json',
    'dataset_uri': 'DATASET_URI',
    'methods': {
        'asymmetric_shapley_value': {
            'baseline': {
                "related_time_series": "zero",
                "static_covariates": {
                    "item1": [0, 0], "item2": [0, 0]
                },
                "target_time_series": "zero"
            },
            'direction': 'chronological',
            'granularity': 'fine_grained',
            'num_samples': 10
        },
        'report': {'name': 'report', 'title': 'Analysis Report'}
    },
    'predictor': {
        'accept_type': 'application/json',
        'content_template': '{"instances": $records}',
        'endpoint_name': 'ENDPOINT_NAME', 
        'content_type': 'application/json',              
        'record_template': '{
            "start": $start_time, 
            "target": $target_time_series, 
            "dynamic_feat": $related_time_series, 
            "cat": $static_covariates
        }',
        'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}
    },
    'time_series_data_config': {
        'dataset_format': 'timestamp_records',
        'item_id': '[].item_id',
        'related_time_series': ['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'],
        'static_covariates': ['[].static_feature_1', '[].static_feature_2'],
        'target_time_series': '[].target_value',
        'timestamp': '[].timestamp'
    }
}
```

##### Configuración de la explicabilidad de series temporales
<a name="clarify-processing-job-configure-analysis-feature-attr-tsconfig"></a>

En el ejemplo anterior se utiliza `asymmetric_shapley_value` en `methods` para definir los argumentos de explicabilidad de las series temporales, como la referencia, la dirección, el nivel de detalle y el número de muestras. Los valores de referencia se establecen para los tres tipos de datos: series temporales relacionadas, covariables estáticas y series temporales objetivo. Estos campos indican al procesador SageMaker Clarify que calcule las atribuciones de las características de un elemento a la vez.

##### Configuración del predictor
<a name="clarify-processing-job-configure-analysis-feature-attr-predictconfig"></a>

Puede controlar completamente la estructura de carga útil que envía el procesador SageMaker Clarify mediante la sintaxis. JMESPath En el ejemplo anterior, la configuración `predictor` indica a Clarify que añada los registros a `'{"instances": $records}'`, donde cada registro se define con los argumentos dados para `record_template` en el ejemplo. Tenga en cuenta que `$start_time`, `$target_time_series`, `$related_time_series` y `$static_covariates` son símbolos internos que se utilizan para asignar los valores del conjunto de datos a los valores de las solicitudes de punto de conexión.

Del mismo modo, el atributo `forecast` de `time_series_predictor_config` se utiliza para extraer la previsión del modelo a partir de la respuesta del punto de conexión. Por ejemplo, la respuesta del lote del punto de conexión puede ser:

```
{
    "predictions": [
        {"mean": [13.4, 3.6, 1.0]}, 
        {"mean": [23.0, 4.7, 3.0]}, 
        {"mean": [3.4, 5.6, 2.0]}
    ]
}
```

Supongamos que especifica la siguiente configuración de predictores de series temporales:

```
'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}
```

El valor de la previsión se analiza de la siguiente manera:

```
[
    [13.4, 3.6],
    [23.0, 4.7],
    [3.4, 5.6]
]
```

##### Configuración de datos
<a name="clarify-processing-job-configure-analysis-feature-attr-dataconfig"></a>

Utilice el `time_series_data_config` atributo para indicar al procesador SageMaker Clarify que analice los datos correctamente a partir de los datos transferidos como URI de S3. `dataset_uri` 

# Guía de compatibilidad de formatos de datos
<a name="clarify-processing-job-data-format"></a>

Esta guía describe los tipos de formato de datos que son compatibles con los trabajos de procesamiento SageMaker de Clarify. Los tipos de formatos de datos compatibles incluyen las extensiones de archivo, la estructura de datos y los requisitos o restricciones específicos para los conjuntos de datos tabulares, de imágenes y de series temporales. Esta guía también muestra cómo comprobar si su conjunto de datos cumple con estos requisitos.

En un nivel superior, el trabajo de procesamiento de SageMaker Clarify sigue el modelo de entrada-proceso-salida para calcular las métricas de sesgo y las atribuciones de características. Consulte los siguientes ejemplos para obtener detalles.

La entrada al trabajo de procesamiento de SageMaker Clarify consiste en lo siguiente:
+ El conjunto de datos que se va a analizar.
+ La configuración del análisis. Para obtener más información acerca de cómo configurar un análisis, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

Durante la etapa de procesamiento, SageMaker Clarify calcula las métricas de sesgo y las atribuciones de características. El trabajo SageMaker de procesamiento de Clarify completa los siguientes pasos en el backend:
+ **El trabajo SageMaker de procesamiento de Clarify analiza la configuración de análisis y carga el conjunto de datos.**
+ Para calcular las métricas de sesgo y las atribuciones de características posteriores al entrenamiento, el trabajo requiere predicciones del modelo a partir de su modelo. **El trabajo SageMaker de procesamiento de Clarify serializa los datos y los envía como una **solicitud** a su modelo, que se implementa en un punto final de inferencia en tiempo real de la SageMaker IA.** **Después de eso, el trabajo de procesamiento SageMaker de Clarify extrae las predicciones de la respuesta.**
+ El trabajo SageMaker de procesamiento de Clarify realiza el análisis de sesgo y explicabilidad y, a continuación, genera los resultados.

Para obtener más información, consulte [Cómo funcionan los SageMaker trabajos de procesamiento de Clarify](clarify-configure-processing-jobs.md#clarify-processing-job-configure-how-it-works) .

El parámetro que utilice para especificar el formato de los datos depende del lugar en el flujo de procesamiento donde se utilicen los datos, de la siguiente manera:
+ Para un **conjunto de datos de entrada**, utilice el parámetro `dataset_type` para especificar el formato o el tipo MIME.
+ Para una **solicitud** a un punto de conexión, utilice el parámetro `content_type` para especificar el formato.
+ Para una **respuesta** de un punto de conexión, utilice el parámetro `accept_type` para especificar el formato.

El conjunto de datos de entrada, la solicitud y la respuesta hacia y desde el punto de conexión no requieren el mismo formato. Por ejemplo, puede usar un conjunto de datos Parquet con una carga de **solicitud** CSV y una carga de **respuesta** JSON Lines si se cumplen las siguientes condiciones.
+ El análisis está configurado correctamente.
+ El modelo admite los formatos de solicitud y respuesta.

**nota**  
Si `accept_type` se proporcionan `content_type` o no, el contenedor SageMaker Clarify deduce la y. `content_type` `accept_type`

**Topics**
+ [Datos tabulares](clarify-processing-job-data-format-tabular.md)
+ [Requisitos de datos de imágenes](clarify-processing-job-data-format-image.md)
+ [Datos de serie temporal](clarify-processing-job-data-format-time-series.md)

# Datos tabulares
<a name="clarify-processing-job-data-format-tabular"></a>

Los datos tabulares se refieren a los datos que se pueden cargar en un marco de datos bidimensional. En el marco, cada fila representa un registro y cada registro tiene una o más columnas. Los valores de cada celda del marco de datos pueden ser de tipo numérico, categórico o de texto.

## Requisitos previos del conjunto de datos tabular
<a name="clarify-processing-job-data-format-tabular-prereq"></a>

Antes del análisis, se deben haber aplicado todos los pasos de preprocesamiento necesarios al conjunto de datos. Esto incluye la limpieza de datos o la ingeniería de características.

Puede proporcionar uno o varios conjuntos de datos. Si proporciona varios conjuntos de datos, utilice lo siguiente para identificarlos en el trabajo de procesamiento de SageMaker Clarify.
+ Utilice una configuración con [ProcessingInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProcessingInput.html)nombre `dataset` o de análisis `dataset_uri` para especificar el conjunto de datos principal. Para obtener más información sobre `dataset_uri`, consulte la lista de parámetros en [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).
+ Utilice el parámetro `baseline` proporcionado en el archivo de configuración del análisis. El conjunto de datos de referencia es necesario para el análisis SHAP. Para obtener más información sobre el archivo de configuración del análisis, incluidos ejemplos, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

En la siguiente tabla se enumeran los formatos de datos compatibles, sus extensiones de archivo y los tipos MIME.


| Formato de los datos | Extensión de archivo | Tipo MIME | 
| --- | --- | --- | 
|  CSV  |  csv  |  `text/csv`  | 
|  Líneas de JSON  |  jsonl  |  `application/jsonlines`  | 
|  JSON  |  json  |  `application/json`  | 
|  Parquet  |  parquet  |  "application/x-parquet"  | 

En las siguientes secciones se muestran ejemplos de conjuntos de datos tabulares en los formatos CSV, JSON Lines y Apache Parquet.

### Requisitos previos del conjunto de datos tabular en formato CSV
<a name="clarify-processing-job-data-format-tabular-prereq-csv"></a>

El trabajo SageMaker de procesamiento Clarify está diseñado para cargar archivos de datos CSV en el dialecto [csv.excel.](https://docs.python.org/3/library/csv.html#csv.excel) Sin embargo, es lo suficientemente flexible como para admitir otros terminadores de línea, incluidos `\n` y `\r`.

Por motivos de compatibilidad, todos los archivos de datos CSV proporcionados al trabajo de procesamiento de SageMaker Clarify deben estar codificados en UTF-8.

Si el conjunto de datos no contiene una fila de encabezado, haga lo siguiente:
+ Defina la etiqueta de configuración del análisis en el índice `0`. Esto significa que la primera columna es la etiqueta de verdad fundamental.
+ Si se ha establecido el parámetro `headers`, configure `label` en el encabezado de la columna de etiquetas para indicar la ubicación de la columna de etiquetas. Todas las demás columnas se designan como características.

  A continuación, se muestra un ejemplo de conjunto de datos que no contiene una fila de encabezado.

  ```
  1,5,2.8,2.538,This is a good product
  0,1,0.79,0.475,Bad shopping experience
  ...
  ```

Si los datos contienen una fila de encabezado, defina el parámetro `label` en el índice `0`. Para indicar la ubicación de la columna de etiquetas, utilice el encabezado de la etiqueta de verdad fundamental `Label`. Todas las demás columnas se designan como características.

A continuación, se muestra un ejemplo de conjunto de datos que contiene una fila de encabezado.

```
Label,Rating,A12,A13,Comments
1,5,2.8,2.538,This is a good product
0,1,0.79,0.475,Bad shopping experience
...
```

### Requisitos previos del conjunto de datos tabular en formato JSON
<a name="clarify-processing-job-data-format-tabular-prereq-json"></a>

JSON es un formato flexible para representar datos estructurados que contienen cualquier nivel de complejidad. La compatibilidad SageMaker de Clarify con JSON no se limita a ningún formato específico y, por lo tanto, permite formatos de datos más flexibles en comparación con los conjuntos de datos en formatos CSV o JSON Lines. Esta guía muestra cómo establecer una configuración de análisis para datos tabulares en formato JSON. 

**nota**  
Para garantizar la compatibilidad, todos los archivos de datos JSON proporcionados al trabajo de procesamiento de SageMaker Clarify deben estar codificados en UTF-8.

El siguiente es un ejemplo de datos de entrada con registros que contienen una clave de nivel superior, una lista de características y una etiqueta.

```
[
    {"features":[1,5,2.8,2.538,"This is a good product"],"label":1},
    {"features":[0,1,0.79,0.475,"Bad shopping experience"],"label":0},
    ...
]
```

Un ejemplo de análisis de configuración para el conjunto de datos de ejemplo de entrada anterior debe establecer los siguientes parámetros:
+ El `label` parámetro debe usar la [JMESPath](https://jmespath.org/)expresión `[*].label` para extraer la etiqueta de verdad fundamental de cada registro del conjunto de datos. La JMESPath expresión debe generar una lista de etiquetas en la que la etiqueta «i» se corresponda con la «i» del registro.
+ El `features` parámetro debe usar la JMESPath expresión `[*].features` para extraer una matriz de características para cada registro del conjunto de datos. La JMESPath expresión debe producir una matriz o matriz 2D en la que la fila i contenga los valores de las entidades correspondientes al registro i th.

  El siguiente es un ejemplo de datos de entrada con registros que contienen una clave de nivel superior y una clave anidada que contiene una lista de características y etiquetas para cada registro.

```
{
    "data": [
        {"features":[1,5,2.8,2.538,"This is a good product"],"label":1}},
        {"features":[0,1,0.79,0.475,"Bad shopping experience"],"label":0}}
    ]
}
```

Un ejemplo de análisis de configuración para el conjunto de datos de ejemplo de entrada anterior debe establecer los siguientes parámetros:
+ El `label` parámetro usa la [JMESPath](https://jmespath.org/)expresión `data[*].label` para extraer la etiqueta de verdad fundamental de cada registro del conjunto de datos. La JMESPath expresión debe generar una lista de etiquetas en la que la etiqueta es para el registro.
+ El `features` parámetro usa la JMESPath expresión `data[*].features` para extraer la matriz de características de cada registro del conjunto de datos. La JMESPath expresión debe producir una matriz o matriz 2D en la que la fila i contenga los valores de las entidades del registro i th.

### Requisitos previos del conjunto de datos tabular en formato JSON Lines
<a name="clarify-processing-job-data-format-tabular-prereq-jsonlines"></a>

JSON Lines es un formato de texto para representar datos estructurados en el que cada línea es un objeto JSON válido. Actualmente, los trabajos de procesamiento de SageMaker Clarify solo admiten líneas JSON de formato denso de SageMaker IA. Para cumplir con el formato requerido, todas las características de un registro deben aparecer en una única matriz JSON. Para obtener más información sobre la líneas JSON, consulte [Formato de solicitud JSONLINES](cdf-inference.md#cm-jsonlines).

**nota**  
Todos los archivos de datos de JSON Lines proporcionados al trabajo SageMaker de procesamiento de Clarify deben estar codificados en UTF-8 para garantizar la compatibilidad.

El siguiente es un ejemplo de cómo establecer una configuración de análisis para un registro que contiene una **clave de nivel superior** y una **lista** de elementos. 

```
{"features":[1,5,2.8,2.538,"This is a good product"],"label":1}
{"features":[0,1,0.79,0.475,"Bad shopping experience"],"label":0}
...
```

El análisis de configuración para el ejemplo de conjunto de datos anterior debe establecer los siguientes parámetros:
+ Para indicar la ubicación de la etiqueta fundamental, el parámetro `label` debe ajustarse a la JMESPath expresión. `label`
+ Para indicar la ubicación de la matriz de características, el parámetro `features` debe ajustarse a la JMESPath expresión`features`.

El siguiente es un ejemplo de cómo establecer una configuración de análisis para un registro que contiene una **clave de nivel superior** y una **clave anidada** que contiene una **lista** de elementos. 

```
{"data":{"features":[1,5,2.8,2.538,"This is a good product"],"label":1}}
{"data":{"features":[0,1,0.79,0.475,"Bad shopping experience"],"label":0}}
...
```

El análisis de configuración para el ejemplo de conjunto de datos anterior debe establecer los siguientes parámetros:
+ El parámetro `label` debe ajustarse a la JMESPath expresión `data.label` para indicar la ubicación de la etiqueta de verdad fundamental.
+ El parámetro `features` debe ajustarse a la JMESPath expresión `data.features` para indicar la ubicación de la matriz de características.

### Requisitos previos del conjunto de datos tabular en formato Parquet
<a name="clarify-processing-job-data-format-tabular-prereq-parquet"></a>

[Parquet](https://parquet.apache.org/) es un formato de datos binarios orientado a columnas. Actualmente, los trabajos SageMaker de procesamiento de Clarify admiten la carga de archivos de datos de Parquet solo cuando el número de instancias de procesamiento es igual`1`.

Como los trabajos de procesamiento de SageMaker Clarify no admiten la solicitud de punto final ni la respuesta del punto final en formato Parquet, debe especificar el formato de datos de la solicitud de punto final configurando el parámetro `content_type` de configuración del análisis en un formato compatible. Para obtener más información, consulta `content_type` en [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

Los datos de Parquet deben tener nombres de columna con formato de cadena. Utilice el parámetro `label` de configuración del análisis para establecer el nombre de la columna de etiquetas para indicar la ubicación de las etiquetas de verdad fundamental. Todas las demás columnas se designan como características.

# Solicitudes de punto de conexión para datos tabulares
<a name="clarify-processing-job-data-format-tabular-request"></a>

Para obtener predicciones de modelos para el análisis de sesgos y el análisis de la importancia de las características después del entrenamiento, los trabajos de procesamiento de SageMaker Clarify serializan los datos tabulares en bytes y los envían a un punto final de inferencia como carga útil de solicitud. Estos datos tabulares se obtienen del conjunto de datos de entrada o se generan. Si se trata de datos sintéticos, los genera el explicador para el análisis SHAP o el análisis PDP.

El formato de datos de la carga de solicitud debe especificarse mediante el parámetro `content_type` de configuración del análisis. Si no se proporciona el parámetro, el trabajo de procesamiento SageMaker de Clarify utilizará el valor del `dataset_type` parámetro como tipo de contenido. Para obtener más información acerca de `content_type` o `dataset_type`, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

En las siguientes secciones se muestran ejemplos de solicitudes de punto de conexión en los formatos CSV y JSON Lines.

## Solicitud de punto de conexión en formato CSV
<a name="clarify-processing-job-data-format-tabular-request-csv"></a>

El trabajo SageMaker de procesamiento Clarify puede serializar datos en formato CSV (tipo MIME:`text/csv`). En la siguiente tabla se muestran ejemplos de cargas de solicitud serializadas.


| Carga de solicitud de punto de conexión (representación de cadena) | Comentarios | 
| --- | --- | 
|  '1,2,3,4'  |  Registro único (cuatro características numéricas).  | 
|  '1,2,3,4\$1n5,6,7,8'  |  Dos registros, separados por un salto de línea '\$1n'.  | 
|  '"Este es un buen producto",5'  |  Registro único (una característica de texto y una característica numérica).  | 
|  ‘"Este es un buen producto",5\$1n"Mala experiencia de compra",1’  |  Dos registros.  | 

## Solicitud de punto de conexión en formato JSON Lines
<a name="clarify-processing-job-data-format-tabular-request-jsonlines"></a>

El trabajo SageMaker de procesamiento Clarify puede serializar datos en un formato denso de líneas JSON de SageMaker IA (tipo MIME:). `application/jsonlines` Para obtener más información sobre la líneas JSON, consulte [Formato de solicitud JSONLINES](cdf-inference.md#cm-jsonlines).

Para transformar los datos tabulares en datos JSON, proporcione una cadena de plantilla al parámetro de configuración del análisis `content_template`. Para obtener más información sobre `content_template` consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md). En la siguiente tabla se muestran ejemplos de cargas de solicitud JSON Lines serializadas.


| Carga de solicitud de punto de conexión (representación de cadena) | Comentarios | 
| --- | --- | 
|  '\$1"datos":\$1"características":[1,2,3,4]\$1\$1'  |  Registro único. En este caso, la plantilla se parece a `'{"data":{"features":$features}}' ` y `$features` se sustituye por la lista de características `[1,2,3,4]`.  | 
|  '\$1"datos":\$1"características":[1,2,3,4]\$1\$1\$1n\$1"datos":\$1"características":[5,6,7,8]\$1\$1'  |  Dos registros.  | 
|  '\$1"características":["Este es un buen producto",5]\$1'  |  Registro único. En este caso, la plantilla se parece a `'{"features":$features}'` y \$1features se reemplaza por la lista de características `["This is a good product",5]`.  | 
|  '\$1"características":["Este es un buen producto",5]\$1\$1n\$1"características":["Mala experiencia de compra",1]\$1'  |  Dos registros.  | 

## Solicitud de punto de conexión está en formato JSON
<a name="clarify-processing-job-data-format-tabular-request-json"></a>

Un trabajo SageMaker de procesamiento de Clarify puede serializar datos en estructuras JSON arbitrarias (tipo MIME:). `application/json` Para ello, debe proporcionar una cadena de plantilla al parámetro de configuración del análisis `content_template`. El trabajo de procesamiento de SageMaker Clarify lo utiliza para construir la estructura JSON externa. También debe proporcionar una cadena de plantilla para `record_template`, que se utilizará para construir la estructura JSON de cada registro. Para obtener más información sobre `content_template` y `record_template`, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md). 

**nota**  
Como `content_template` y `record_template` son parámetros de cadena, cualquier carácter entre comillas dobles (`"`) que forme parte de la estructura serializada de JSON debe anotarse como un carácter de escape en la configuración. Por ejemplo, si quiere evitar las comillas dobles en Python, puede introducir lo siguiente para `content_template`.  

```
"{\"data\":{\"features\":$record}}}"
```

La siguiente tabla muestra ejemplos de cargas de solicitud JSON serializadas y los parámetros `content_template` y `record_template` correspondientes que se requieren para construirlas.


| Carga de solicitud de punto de conexión (representación de cadena) | Comentarios | plantilla\$1contenido | plantilla\$1registro | 
| --- | --- | --- | --- | 
|  '\$1"datos":\$1"características":[1,2,3,4]\$1\$1'  |  Registro único cada vez.  |  '\$1"datos":\$1"características":\$1registro\$1\$1\$1'  |  “\$1características”  | 
|  '\$1"instancias":[[0, 1], [3, 4]], "nombres-característica": ["A", "B"]\$1'  |  Registros múltiples con nombres de características.  |  ‘\$1"instancias":\$1registros, "nombres-característica":\$1nombres-característica\$1'  |  “\$1características"  | 
|  '[\$1"A": 0, "B": 1\$1, \$1"A": 3, "B": 4\$1]'  |  Pares de registros múltiples y pares clave-valor.  |  “\$1registros"  |  “\$1características\$1kvp"  | 
|  ‘\$1"A": 0, "B": 1\$1'  |  Registro único cada vez y pares clave-valor.  |  "\$1record"  |  "\$1características\$1kvp"  | 
|  ‘\$1"A": 0, "anidado": \$1"B": 1\$1\$1'  |  Como alternativa, utilice la plantilla\$1registro completamente detallada para estructuras arbitrarias.  |  "\$1record"  |  '\$1"A": "\$1\$1A\$1", "anidado": \$1"B": "\$1\$1B\$1"\$1\$1'  | 

# Respuesta del punto de conexión para datos tabulares
<a name="clarify-processing-job-data-format-tabular-response"></a>

Una vez que el SageMaker trabajo de procesamiento de Clarify recibe la respuesta de una invocación del punto final de inferencia, deserializa la carga útil de la respuesta y extrae predicciones de la misma. Utilice el parámetro `accept_type` de configuración del análisis para especificar el formato de datos de la carga de respuesta. Si no `accept_type` se proporciona, el trabajo de procesamiento de SageMaker Clarify utilizará el valor del parámetro content\$1type como formato de salida del modelo. Para obtener más información acerca de `accept_type`, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

Las predicciones pueden consistir en etiquetas predichas para el análisis de sesgo o en valores de probabilidad (puntuaciones) para el análisis de importancia de las características. En la configuración del análisis `predictor`, los tres parámetros siguientes extraen las predicciones.
+ El parámetro `probability` se utiliza para localizar los valores de probabilidad (puntuaciones) en la respuesta del punto de conexión.
+ El parámetro `label` se utiliza para localizar las etiquetas predichas en la respuesta del punto de conexión.
+ De forma opcional, el parámetro `label_headers` proporciona las etiquetas predichas para un modelo multiclase.

Las siguientes directrices se refieren a las respuestas de los puntos de conexión en los formatos CSV, JSON Lines y JSON.

## Respuesta de punto de conexión en formato CSV
<a name="clarify-processing-job-data-format-tabular-reponse-csv"></a>

Si la carga útil de la respuesta está en formato CSV (tipo MIME:`text/csv`), el trabajo de procesamiento de Clarify SageMaker deserializa cada fila. A continuación, extrae las predicciones de los datos deserializados utilizando los índices de columna proporcionados en la configuración de análisis. Las filas en la carga de respuesta deben coincidir con los registros en la carga de solicitud. 

Las siguientes tablas proporcionan ejemplos de datos de respuesta en diferentes formatos y para diferentes tipos de problemas. Los datos pueden diferir de estos ejemplos, siempre que las predicciones se puedan extraer de acuerdo con la configuración del análisis.

En las siguientes secciones, se muestran ejemplos de respuestas de punto de conexión en formato CSV.

### La respuesta del punto de conexión está en formato CSV y solo contiene probabilidades
<a name="clarify-processing-job-data-format-tabular-reponse-csv-prob"></a>

La siguiente tabla es un ejemplo de respuesta de punto de conexión para problemas de regresión y clasificación binaria.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único.  |  '0,6'  | 
|  Dos registros (los resultados están en una línea, separados una coma).  |  '0,6,0,3'  | 
|  Dos registros (resultados en dos líneas).  |  '0,6\$1n0,3'  | 

En el ejemplo anterior, el punto de conexión genera un único valor de probabilidad (puntuación) de la etiqueta predicha. Para extraer las probabilidades mediante el índice y utilizarlas para el análisis de la importancia de las características, defina el parámetro de configuración del análisis `probability` en el índice de columna `0`. Estas probabilidades también se pueden usar para el análisis del sesgo si se convierten en valores binarios mediante el parámetro `probability_threshold`. Para obtener más información acerca de `probability_threshold`, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

La siguiente tabla es un ejemplo de respuesta de punto de conexión para problemas multiclase.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único de un modelo multiclase (tres clases).  |  '0,1,0,6,0,3'  | 
|  Dos registros de un modelo multiclase (tres clases).  |  '0,1,0,6,0,3\$1n0,2,0,5,0,3'  | 

En el ejemplo anterior, el punto de conexión genera una lista de probabilidades (puntuaciones). Si no se proporciona ningún índice, se extraen todos los valores y se utilizan para el análisis de la importancia de las características. Si se proporciona el parámetro de configuración `label_headers` del análisis, Luego, el trabajo SageMaker de procesamiento de Clarify puede seleccionar el encabezado de la etiqueta de máxima probabilidad como etiqueta pronosticada, que se puede usar para el análisis de sesgos. Para obtener más información acerca de `label_headers`, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

### La respuesta del punto de conexión está en formato CSV y solo contiene la etiqueta predicha
<a name="clarify-processing-job-data-format-tabular-reponse-csv-pred"></a>

La siguiente tabla es un ejemplo de respuesta de punto de conexión para problemas de regresión y clasificación binaria.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '1'  | 
|  Dos registros (los resultados están en una línea, separados una coma)  |  '1,0'  | 
|  Dos registros (resultados en dos líneas)  |  '1\$1n0'  | 

En el ejemplo anterior, el punto de conexión genera la etiqueta predicha en lugar de la probabilidad. Establezca el parámetro `label` de la configuración `predictor` en el índice de columna `0` para que las etiquetas predichas puedan extraerse mediante el índice y utilizarse para el análisis del sesgo.

### La respuesta del punto de conexión está en formato CSV y contiene la etiqueta predicha y la probabilidad
<a name="clarify-processing-job-data-format-tabular-reponse-csv-pred-prob"></a>

La siguiente tabla es un ejemplo de respuesta de punto de conexión para problemas de regresión y clasificación binaria.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '1,0,6'  | 
|  Dos registros  |  '1,0,6\$1n0,0,3'  | 

En el ejemplo anterior, el punto de conexión genera la etiqueta predicha seguida de su probabilidad. Defina el parámetro `label` de la configuración `predictor` en el índice de columna `0` y establezca `probability` en el índice de columna `1` para extraer los valores de ambos parámetros.

### La respuesta del punto de conexión está en formato CSV y contiene las etiquetas predichas y las probabilidades (multiclase)
<a name="clarify-processing-job-data-format-tabular-reponse-csv-preds-probs"></a>

Se puede configurar un modelo multiclase entrenado por Amazon SageMaker Autopilot para generar la representación en cadena de la lista de etiquetas y probabilidades pronosticadas. La siguiente tabla de ejemplo muestra un ejemplo de respuesta de punto de conexión de un modelo que está configurado para generar `predicted_label`, `probability`, `labels` y `probabilities`.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '"perro",0,6,"[\$1'gato\$1', \$1'perro\$1', \$1'pez\$1']","[0,1, 0,6, 0,3]"'  | 
|  Dos registros  |  '"perro",0,6,"[\$1'gato\$1', \$1'perro\$1', \$1'pez\$1']","[0,1, 0,6, 0,3]"\$1n""gato",0,7,[\$1'gato\$1', \$1'perro\$1', \$1'pez\$1']","[0,7, 0,2, 0,1]"'  | 

En el ejemplo anterior, el trabajo SageMaker de procesamiento de Clarify se puede configurar de las siguientes maneras para extraer las predicciones.

Para el análisis del sesgo, el ejemplo anterior se puede configurar como uno de los siguientes.
+ Defina el parámetro `label` de la configuración `predictor` en `0` para extraer la etiqueta predicha.
+ Defina el parámetro en `2` para extraer las etiquetas predichas y establezca `probability` en `3` para extraer las probabilidades correspondientes. El trabajo SageMaker de procesamiento de Clarify puede determinar automáticamente la etiqueta prevista identificando la etiqueta con el valor de probabilidad más alto. En relación con el ejemplo anterior de un único registro, el modelo predice tres etiquetas: `cat`, `dog` y `fish`, con probabilidades correspondientes de `0.1`, `0.6` y `0.3`. En función de estas probabilidades, la etiqueta predicha es `dog`, ya que tiene el valor de probabilidad más alto de `0.6`.
+ Establezca `probability` en `3` para extraer las probabilidades. Si `label_headers` se proporciona, el trabajo de procesamiento SageMaker de Clarify puede determinar automáticamente la etiqueta prevista identificando el encabezado de la etiqueta con el valor de probabilidad más alto.

Para el análisis de la importancia de las características, el ejemplo anterior se puede configurar de la siguiente manera.
+ Defina `probability` en `3` para extraer las probabilidades de todas las etiquetas predichas. A continuación, se calcularán las atribuciones de características para todas las etiquetas. Si el cliente no especifica `label_headers`, las etiquetas predichas se utilizarán como encabezados de etiquetas en el informe de análisis.

## Respuesta de punto de conexión en formato JSON Lines
<a name="clarify-processing-job-data-format-tabular-reponse-jsonlines"></a>

Si la carga útil de respuesta está en formato de líneas JSON (tipo MIME:`application/jsonlines`), el trabajo de procesamiento de SageMaker Clarify deserializa cada línea como JSON. A continuación, extrae las predicciones de los datos deserializados mediante JMESPath las expresiones proporcionadas en la configuración de análisis. Las líneas en la carga de respuesta deben coincidir con los registros en la carga de solicitud. En las siguientes tablas, se muestran ejemplos de datos de respuesta en diferentes formatos. Los datos pueden diferir de estos ejemplos, siempre que las predicciones se puedan extraer de acuerdo con la configuración del análisis.

En las siguientes secciones, se muestran ejemplos de respuestas de punto de conexión en formato JSON Lines.

### La respuesta del punto de conexión está en formato JSON Lines y solo contiene probabilidades
<a name="clarify-processing-job-data-format-tabular-reponse-jsonlines-prob"></a>

La siguiente tabla es un ejemplo de respuesta de punto de conexión que solo genera el valor de probabilidad (puntuación).


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '\$1"puntuación":0,6\$1'  | 
|  Dos registros  |  '\$1"puntuación":0,6\$1\$1n\$1"puntuación":0,3\$1'  | 

En el ejemplo anterior, defina el parámetro de configuración del análisis en `probability` la JMESPath expresión «score» para extraer su valor.

### La respuesta del punto de conexión está en formato JSON Lines y solo contiene la etiqueta predicha
<a name="clarify-processing-job-data-format-tabular-reponse-jsonlines-pred"></a>

La siguiente tabla es un ejemplo de respuesta de punto de conexión que solo genera la etiqueta predicha. 


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '\$1"predicción":1\$1'  | 
|  Dos registros  |  '\$1"predicción":1\$1\$1n\$1"predicción":0\$1'  | 

En el ejemplo anterior, defina el `label` parámetro de la configuración del predictor en JMESPath expresión`prediction`. A continuación, el trabajo de SageMaker procesamiento de Clarify puede extraer las etiquetas pronosticadas para el análisis de sesgo. Para obtener más información, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

### La respuesta del punto de conexión está en formato JSON Lines y contiene la etiqueta predicha y la probabilidad
<a name="clarify-processing-job-data-format-tabular-reponse-jsonlines-pred-prob"></a>

La siguiente tabla es un ejemplo de respuesta de punto de conexión que genera la etiqueta predicha y su puntuación.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '\$1"predicción":1,"puntuación":0,6\$1'  | 
|  Dos registros  |  '\$1"predicción":1,"puntuación":0,6\$1\$1n\$1"predicción":0,"puntuación":0,3\$1'  | 

En el ejemplo anterior, defina el `label` parámetro de la `predictor` configuración en la JMESPath expresión «predicción» para extraer las etiquetas pronosticadas. `probability`Defina la JMESPath expresión «score» para extraer la probabilidad. Para obtener más información, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

### La respuesta del punto de conexión está en formato JSON Lines y contiene las etiquetas predichas y las probabilidades (multiclase)
<a name="clarify-processing-job-data-format-tabular-reponse-jsonlines-preds-probs"></a>

La siguiente tabla es un ejemplo de la respuesta de punto de conexión de un modelo multiclase que genera lo siguiente:
+ Una lista de etiquetas predichas.
+  Probabilidades, y la etiqueta predicha seleccionada y su probabilidad.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '\$1"etiqueta\$1predicha":"perro","probabilidad":0,6,"etiquetas\$1predichas":["gato","perro","pez"],"probabilidades":[0,1,0,6,0,3]\$1'  | 
|  Dos registros  |  '\$1"etiqueta\$1predicha":"perro","probabilidad":0,6,"etiquetas\$1predichas":["gato","perro","pez"],"probabilidades":[0,1,0,6,0,3]\$1\$1n\$1"etiqueta\$1predicha":"gato","probabilidad":0,7,"etiquetas\$1predichas":["gato","perro","pez"],"probabilidades":[0,7,0,2,0,1]\$1'  | 

 En el ejemplo anterior, el trabajo SageMaker de procesamiento de Clarify se puede configurar de varias formas para extraer las predicciones. 

Para el análisis del sesgo, el ejemplo anterior se puede configurar como **uno** de los siguientes.
+ Defina el `label` parámetro de la `predictor` configuración en la JMESPath expresión «predicted\$1label» para extraer la etiqueta pronosticada.
+ Establezca el parámetro en la JMESPath expresión «predicted\$1labels» para extraer las etiquetas pronosticadas. Defina `probability` la JMESPath expresión «probabilidades» para extraer sus probabilidades. El trabajo SageMaker de Clarify determina automáticamente la etiqueta prevista identificando la etiqueta con el valor de probabilidad más alto.
+ `probability`Defina la JMESPath expresión «probabilidades» para extraer sus probabilidades. Si `label_headers` se proporciona, el trabajo de procesamiento SageMaker de Clarify puede determinar automáticamente la etiqueta prevista identificando la etiqueta con el valor de probabilidad más alto.

Para un análisis de importancia de una característica, haga lo siguiente.
+ Utilice `probability` la JMESPath expresión «probabilidades» para extraer las probabilidades de todas las etiquetas pronosticadas. A continuación, se calcularán las atribuciones de características para todas las etiquetas.

## Respuesta de punto de conexión en formato JSON
<a name="clarify-processing-job-data-format-tabular-reponse-json"></a>

Si la carga útil de respuesta está en formato JSON (tipo MIME:`application/json`), el trabajo de procesamiento SageMaker Clarify deserializa toda la carga útil como JSON. A continuación, extrae las predicciones de los datos deserializados mediante JMESPath las expresiones proporcionadas en la configuración de análisis. Los registros en la carga de respuesta deben coincidir con los registros en la carga de solicitud. 

En las siguientes secciones, se muestran ejemplos de respuestas de punto de conexión en formato JSON. Las secciones contienen tablas con ejemplos de datos de respuesta en diferentes formatos y para diferentes tipos de problemas. Los datos pueden diferir de estos ejemplos, siempre que las predicciones se puedan extraer de acuerdo con la configuración del análisis.

### La respuesta del punto de conexión está en formato JSON y solo contiene probabilidades
<a name="clarify-processing-job-data-format-tabular-reponse-json-prob"></a>

La siguiente tabla es un ejemplo de respuesta de un punto de conexión que solo genera el valor de probabilidad (puntuación).


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '[0,6]'  | 
|  Dos registros  |  '[0,6,0,3]'  | 

En el ejemplo anterior, no hay ningún salto de línea en la carga de respuesta. En su lugar, un único objeto JSON contiene una lista de puntuaciones, una para cada registro de la solicitud. Defina el parámetro `probability` de configuración del análisis en JMESPath la expresión «[\$1]» para extraer el valor.

### La respuesta del punto de conexión está en formato JSON y solo contiene la etiqueta predicha
<a name="clarify-processing-job-data-format-tabular-reponse-json-pred"></a>

La siguiente tabla es un ejemplo de respuesta de un punto de conexión que solo genera la etiqueta predicha.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '\$1"etiquetas\$1predichas":[1]\$1'  | 
|  Dos registros  |  '\$1"etiquetas\$1predichas":[1,0]\$1'  | 

Defina el `label` parámetro de la `predictor` configuración en la JMESPath expresión «predicted\$1labels» y, a continuación, el trabajo de procesamiento de SageMaker Clarify podrá extraer las etiquetas pronosticadas para realizar un análisis de sesgo.

### La respuesta del punto de conexión está en formato JSON y contiene la etiqueta predicha y la probabilidad
<a name="clarify-processing-job-data-format-tabular-reponse-json-pred-prob"></a>

La siguiente tabla es un ejemplo de respuesta de un punto de conexión que genera la etiqueta predicha y su puntuación.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '\$1"predicciones":[\$1"etiqueta":1,"puntuación":0,6\$1'  | 
|  Dos registros  |  ‘\$1"predicciones":[\$1"etiqueta":1,"puntuación":0,6\$1,\$1"etiqueta":0,"puntuación":0,3\$1]\$1'  | 

En el ejemplo anterior, defina el `label` parámetro de la `predictor` configuración en la JMESPath expresión «predictions [\$1] .label» para extraer las etiquetas pronosticadas. Defina `probability` la JMESPath expresión «predictions [\$1] .score» para extraer la probabilidad. 

### La respuesta del punto de conexión está en formato JSON y contiene las etiquetas predichas y las probabilidades (multiclase)
<a name="clarify-processing-job-data-format-tabular-reponse-json-preds-probs"></a>

La siguiente tabla es un ejemplo de la respuesta de un punto de conexión de un modelo multiclase que genera lo siguiente:
+ Una lista de etiquetas predichas.
+ Probabilidades, y la etiqueta predicha seleccionada y su probabilidad.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Registro único  |  '[\$1"etiqueta\$1predicha":"perro","probabilidad":0,6,"etiquetas\$1predichas":["gato","perro","pez"],"probabilidades":[0,1,0,6,0,3]\$1]'  | 
|  Dos registros  |  '[\$1"etiqueta\$1predicha":"perro","probabilidad":0,6,"etiquetas\$1predichas":["gato","perro","pez"],"probabilidades":[0,1,0,6,0,3]\$1,\$1"etiqueta\$1predicha":"gato","probabilidad":0,7,"etiquetas\$1predichas":["gato","perro","pez"],"probabilidades":[0,7,0,2,0,1]\$1]'  | 

El trabajo SageMaker de procesamiento de Clarify se puede configurar de varias maneras para extraer las predicciones.

Para el análisis del sesgo, el ejemplo anterior se puede configurar como **uno** de los siguientes.
+ Defina el `label` parámetro de la `predictor` configuración en la JMESPath expresión «[\$1] .predicted\$1label» para extraer la etiqueta prevista.
+ Defina el parámetro en la JMESPath expresión «[\$1] .predicted\$1labels» para extraer las etiquetas pronosticadas. Defina `probability` la JMESPath expresión «[\$1] .probabilities» para extraer sus probabilidades. El trabajo SageMaker de procesamiento Clarify puede determinar automáticamente la etiqueta prevista identificando la etiqueta con el valor de proximidad más alto.
+ Defina `probability` la JMESPath expresión «[\$1] .probabilities» para extraer sus probabilidades. Si `label_headers` se proporciona, el trabajo de procesamiento de SageMaker Clarify puede determinar automáticamente la etiqueta prevista identificando la etiqueta con el valor de probabilidad más alto.

Para el análisis de la importancia de las características, `probability` defina la JMESPath expresión «[\$1] .probabilities» para extraer las probabilidades de todas las etiquetas pronosticadas. A continuación, se calcularán las atribuciones de características para todas las etiquetas.

# Comprobación previa de la solicitud y la respuesta del punto de conexión para datos tabulares
<a name="clarify-processing-job-data-format-tabular-precheck"></a>

Le recomendamos que despliegue su modelo en un punto final de inferencia en tiempo real de la SageMaker IA y que envíe las solicitudes al punto final. Examine manualmente las solicitudes y las respuestas para asegurarse de que ambas cumplen con los requisitos de la sección [Solicitudes de punto de conexión para datos tabulares](clarify-processing-job-data-format-tabular-request.md) y de la sección [Respuesta del punto de conexión para datos tabulares](clarify-processing-job-data-format-tabular-response.md). Si el contenedor de modelos admite solicitudes por lotes, puede empezar con una sola solicitud de registro y, a continuación, probar con dos o más registros.

En los siguientes comandos se muestra cómo solicitar una respuesta mediante la AWS CLI. Viene AWS CLI preinstalado en las instancias de SageMaker Studio y SageMaker Notebook. Para instalarlo AWS CLI, siga esta [guía de instalación](https://aws.amazon.com/cli/).

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name $ENDPOINT_NAME \
  --content-type $CONTENT_TYPE \
  --accept $ACCEPT_TYPE \
  --body $REQUEST_DATA \
  $CLI_BINARY_FORMAT \
  /dev/stderr 1>/dev/null
```

Los parámetros se definen como sigue:
+ `$ENDPOINT NAME`: el nombre del punto de conexión.
+ `$CONTENT_TYPE`: el tipo MIME de la solicitud (entrada del contenedor de modelos).
+ `$ACCEPT_TYPE`: el tipo MIME de la respuesta (salida del contenedor de modelos).
+ `$REQUEST_DATA`: la cadena de carga solicitada.
+ `$CLI_BINARY_FORMAT`: el formato del parámetro de la interfaz de la línea de comandos (CLI). Para la AWS CLI versión 1, este parámetro debe permanecer en blanco. En la versión 2, este parámetro debe establecerse en `--cli-binary-format raw-in-base64-out`.

**nota**  
AWS CLI [La v2 pasa los parámetros binarios como cadenas codificadas en base64 de forma predeterminada.](https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html#cliv2-migration-binaryparam)

# AWS CLI ejemplos de v1
<a name="clarify-processing-job-data-format-tabular-precheck-cli-v1-examples"></a>

El ejemplo de la sección anterior era para la AWS CLI versión 2. Los siguientes ejemplos de solicitud y respuesta hacia y desde el punto de conexión utilizan la v1 de la AWS CLI .

## Solicitud y respuesta del punto de conexión en formato CSV
<a name="clarify-processing-job-data-format-tabular-precheck-csv"></a>

En el siguiente ejemplo de código, la solicitud consta de un único registro y la respuesta es su valor de probabilidad.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-sagemaker-xgboost-model \
  --content-type text/csv \
  --accept text/csv \
  --body '1,2,3,4' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
0.6
```

En el siguiente ejemplo de código, la solicitud consta de dos registros y la respuesta incluye sus probabilidades, que están separadas por una coma.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-sagemaker-xgboost-model \
  --content-type text/csv \
  --accept text/csv \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, la expresión `$'content'` del comando `--body` indica al comando que interprete `'\n'` en el contenido como un salto de línea. A continuación, se muestra el resultado de respuesta.

```
0.6,0.3
```

En el siguiente ejemplo de código, la solicitud consta de dos registros y la respuesta incluye sus probabilidades, que están separadas por un salto de línea.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-1 \
  --content-type text/csv \
  --accept text/csv \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
0.6
0.3
```

En el siguiente ejemplo de código, la solicitud consta de un único registro y la respuesta son los valores de probabilidad de un modelo multiclase que contiene tres clases.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-1 \
  --content-type text/csv \
  --accept text/csv \
  --body '1,2,3,4' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
0.1,0.6,0.3
```

En el siguiente ejemplo de código, la solicitud consta de dos registros y la respuesta son los valores de probabilidad de un modelo multiclase que contiene tres clases.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-1 \
  --content-type text/csv \
  --accept text/csv \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
0.1,0.6,0.3
0.2,0.5,0.3
```

En el siguiente ejemplo de código, la solicitud consta de dos registros y la respuesta incluye la probabilidad y la etiqueta predicha.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-2 \
  --content-type text/csv \
  --accept text/csv \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
1,0.6
0,0.3
```

En el siguiente ejemplo de código, la solicitud consta de dos registros y la respuesta incluye las probabilidades y los encabezados de etiqueta.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-3 \
  --content-type text/csv \
  --accept text/csv \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
"['cat','dog','fish']","[0.1,0.6,0.3]"
"['cat','dog','fish']","[0.2,0.5,0.3]"
```

## Solicitud y respuesta del punto de conexión en formato JSON Lines
<a name="clarify-processing-job-data-format-tabular-precheck-jsonlines"></a>

En el siguiente ejemplo de código, la solicitud consta de un único registro y la respuesta es su valor de probabilidad.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-jsonlines \
  --content-type application/jsonlines \
  --accept application/jsonlines \
  --body '{"features":["This is a good product",5]}' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
{"score":0.6}
```

En el siguiente ejemplo de código, la solicitud contiene dos registros y la respuesta incluye la probabilidad y la etiqueta predicha.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-jsonlines-2 \
  --content-type application/jsonlines \
  --accept application/jsonlines \
  --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
{"predicted_label":1,"probability":0.6}
{"predicted_label":0,"probability":0.3}
```

En el siguiente ejemplo de código, la solicitud contiene dos registros y la respuesta incluye las probabilidades y los encabezados de etiqueta.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-jsonlines-3 \
  --content-type application/jsonlines \
  --accept application/jsonlines \
  --body $'{"data":{"features":[1,2,3,4]}}\n{"data":{"features":[5,6,7,8]}}' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
{"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}
{"predicted_labels":["cat","dog","fish"],"probabilities":[0.2,0.5,0.3]}
```

## Solicitud y respuesta del punto de conexión en formatos mixtos
<a name="clarify-processing-job-data-format-tabular-precheck-diff"></a>

En el siguiente ejemplo de código, la solicitud está en formato CSV y la respuesta en formato JSON Lines.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-in-jsonlines-out \
  --content-type text/csv \
  --accept application/jsonlines \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
{"probability":0.6}
{"probability":0.3}
```

En el siguiente ejemplo de código, la solicitud está en formato JSON Lines y la respuesta en formato CSV.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-jsonlines-in-csv-out \
  --content-type application/jsonlines \
  --accept text/csv \
  --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
0.6
0.3
```

En el siguiente ejemplo de código, la solicitud está en formato CSV y la respuesta en formato JSON.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-csv-in-jsonlines-out \
  --content-type text/csv \
  --accept application/jsonlines \
  --body $'1,2,3,4\n5,6,7,8' \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
{"predictions":[{"label":1,"score":0.6},{"label":0,"score":0.3}]}
```

# Requisitos de datos de imágenes
<a name="clarify-processing-job-data-format-image"></a>

Un trabajo de procesamiento de SageMaker Clarify permite explicar las imágenes. En este tema se proporcionan los requisitos de formato de datos para los datos de imagen. Para obtener más información sobre el procesamiento de datos de imágenes, consulte [Análisis de datos de imágenes para la explicabilidad de la visión artificial](clarify-processing-job-run.md#clarify-processing-job-run-cv).

Un conjunto de datos de imagen contiene uno o más archivos de imagen. Para identificar un conjunto de datos de entrada para el SageMaker trabajo de procesamiento de Clarify, defina un [ProcessingInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html#sagemaker-CreateProcessingJob-request-ProcessingInputs)nombre `dataset` o el `dataset_uri` parámetro de configuración del análisis en un prefijo URI de Amazon S3 de sus archivos de imagen.

Los formatos de archivo de imagen y extensiones de archivo admitidos se enumeran en la siguiente tabla.


| Formato de imagen | Extensión de archivo | 
| --- | --- | 
|  JPEG  |  jpg, jpeg  | 
|  PNG  |  png  | 

Establezca el parámetro `dataset_type` de la configuración del análisis en **application/x-image**. Como el tipo no es un formato de archivo de imagen específico, se utilizará `content_type` para decidir el formato y la extensión del archivo de imagen.

El trabajo SageMaker de procesamiento Clarify carga cada archivo de imagen en una [NumPymatriz](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html) tridimensional para su posterior procesamiento. Las tres dimensiones incluyen la altura, la anchura y los valores RGB de cada píxel.

## Archivo de solicitud del punto de conexión
<a name="clarify-processing-job-data-format-image-request"></a>

El SageMaker trabajo de procesamiento Clarify convierte los datos RGB sin procesar de una imagen en un formato de imagen compatible, como JPEG. Lo hace antes de enviar los datos al punto de conexión para realizar predicciones. Los formatos de imagen compatibles son los siguientes.


| Formato de los datos | Tipo MIME | Extensión de archivo | 
| --- | --- | --- | 
|  JPEG  |  `image/jpeg`  |  jpg, jpeg  | 
|  PNG  |  `image/png`  |  png  | 
|  NPY  |  `application/x-npy`  |  All above  | 

Especifique el formato de los datos de la carga de la solicitud mediante el parámetro de configuración de análisis `content_type`. Si no se proporciona `content_type`, el formato de datos se establece de forma predeterminada en `image/jpeg`.

## Formato de respuesta del punto de conexión
<a name="clarify-processing-job-data-format-image-response"></a>

Al recibir la respuesta de una invocación de un punto final de inferencia, el trabajo de procesamiento de SageMaker Clarify deserializa la carga útil de la respuesta y, a continuación, extrae las predicciones de la misma.

### Problema de clasificación de imágenes
<a name="clarify-processing-job-data-format-image-response-class"></a>

El formato de datos de la carga de respuesta debe especificarse mediante el parámetro de configuración del análisis accept\$1type. Si no se proporciona `accept_type`, el formato de datos se establece de forma predeterminada en `application/json`. Los formatos admitidos son los mismos que los descritos en la sección **Respuesta del punto de conexión para datos tabulares**.

Véase un [Inferencia con el algoritmo Image Classification](image-classification.md#IC-inference) ejemplo de un algoritmo de clasificación de imágenes integrado en la SageMaker IA que acepta una sola imagen y, a continuación, devuelve un conjunto de valores de probabilidad (puntuaciones), cada uno de ellos para una clase.

Como se muestra en la siguiente tabla, cuando el parámetro `content_type` se establece en `application/jsonlines`, la respuesta es un objeto JSON.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Imagen única  |  '\$1"predicción":[0.1,0,6,0.3]\$1'  | 

En el ejemplo anterior, defina el `probability` parámetro en la JMESPath expresión «predicción» para extraer las puntuaciones.

Cuando el parámetro `content_type` se establece en `application/json`, la respuesta es un objeto JSON, como se muestra en la siguiente tabla.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Imagen única  |  '[0,1,0,6,0.3]'  | 

En el ejemplo anterior, `probability` defina JMESPath la expresión «[\$1]» para extraer todos los elementos de la matriz. En el ejemplo anterior, se extrae [`0.1, 0.6, 0.3]`. Como alternativa, si omite el parámetro de configuración `probability`, también se extraerán todos los elementos de la matriz. Esto se debe a que toda la carga se deserializa según las predicciones.

### Problema de detección de objetos
<a name="clarify-processing-job-data-format-object-response-class"></a>

La configuración de análisis `accept_type` se establece en `application/json` de forma predeterminada y el único formato compatible es el formato de inferencia de detección de objetos. Para obtener más información sobre los formatos de respuesta, consulte [Formatos de respuesta](object-detection-in-formats.md#object-detection-recordio).

La siguiente tabla es un ejemplo de respuesta de un punto de conexión que genera una matriz. Cada elemento de la matriz es una matriz de valores que contiene el índice de clase, la puntuación de confianza y las coordenadas del cuadro delimitador del objeto detectado.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Imagen única (un objeto)  |  '[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244]]'  | 
|  Imagen única (dos objetos)  |  '[[4,0, 0,86419455409049988, 0,3088374733924866, 0,07030484080314636, 0,7110607028007507, 0,9345266819000244],[0,0, 0,73376623392105103, 0,5714187026023865, 0,40427327156066895, 0,827075183391571, 0,9712159633636475]]'  | 

La siguiente tabla es un ejemplo de respuesta de un punto de conexión que genera un objeto JSON con una clave que hace referencia a la matriz. Establezca la configuración del análisis `probability` en la clave “predicción” para extraer los valores.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | 
| --- | --- | 
|  Imagen única (un objeto)  |  '\$1"predicción":[[4,0, 0,86419455409049988, 0,3088374733924866, 0,07030484080314636, 0,7110607028007507, 0,9345266819000244]]\$1'  | 
|  Imagen única (dos objetos)  |  '\$1"predicción":[[4,0, 0,86419455409049988, 0,3088374733924866, 0,07030484080314636, 0,7110607028007507, 0,9345266819000244],[0,0, 0,73376623392105103, 0,5714187026023865, 0,40427327156066895, 0,827075183391571, 0,9712159633636475]]\$1'  | 

## Comprobación previa de la solicitud y la respuesta del punto de conexión para datos de imagen
<a name="clarify-processing-job-data-format-object-precheck"></a>

Se recomienda implementar el modelo en un punto final de inferencia en tiempo real de la SageMaker IA y enviar las solicitudes al punto final. Examine manualmente las solicitudes y respuestas. Asegúrese de que ambas cumplen los requisitos de la sección **Solicitud del punto de conexión para datos de imagen** y de la sección **Respuesta del punto de conexión para datos de imagen**.

Los siguientes son dos ejemplos de código que muestran cómo enviar solicitudes y examinar las respuestas para detectar objetos y clasificar las imágenes.

### Problema de clasificación de imágenes
<a name="clarify-processing-job-data-format-object-precheck-class"></a>

El siguiente código de ejemplo indica a un punto de conexión que lea un archivo PNG y, a continuación, lo clasifique.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-sagemaker-image-classification \
  --content-type "image/png" \
  --accept "application/json" \
  --body fileb://./test.png  \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
[0.1,0.6,0.3]
```

### Problema de detección de objetos
<a name="clarify-processing-job-data-format-object-precheck-object"></a>

El siguiente código de ejemplo indica a un punto de conexión que lea un archivo JPEG y, a continuación, detecte el objeto en él.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-sagemaker-object-detection \
  --content-type "image/jpg" \
  --accept "application/json" \
  --body fileb://./test.jpg  \
  /dev/stderr 1>/dev/null
```

En el ejemplo de código anterior, el resultado de la respuesta es el siguiente.

```
{"prediction":[[4.0, 0.86419455409049988, 0.3088374733924866, 0.07030484080314636, 0.7110607028007507, 0.9345266819000244],[0.0, 0.73376623392105103, 0.5714187026023865, 0.40427327156066895, 0.827075183391571, 0.9712159633636475],[4.0, 0.32643985450267792, 0.3677481412887573, 0.034883320331573486, 0.6318609714508057, 0.5967587828636169],[8.0, 0.22552496790885925, 0.6152569651603699, 0.5722782611846924, 0.882301390171051, 0.8985623121261597],[3.0, 0.42260299175977707, 0.019305512309074402, 0.08386176824569702, 0.39093565940856934, 0.9574796557426453]]}
```

# Datos de serie temporal
<a name="clarify-processing-job-data-format-time-series"></a>

Los datos de series temporales se refieren a los datos que se pueden cargar en un marco de datos tridimensional. En el marco, en cada marca de tiempo, cada fila representa un registro objetivo, y cada registro objetivo tiene una o más columnas relacionadas. Los valores de cada celda del marco de datos pueden ser de tipo numérico, categórico o de texto.

## Requisitos previos del conjunto de datos de series temporales
<a name="clarify-processing-job-data-format-time-series-prereq"></a>

Antes del análisis, complete los pasos de preprocesamiento necesarios para preparar los datos, como la limpieza de datos o la ingeniería de características. Puede proporcionar uno o varios conjuntos de datos. Si proporciona varios conjuntos de datos, utilice uno de los siguientes métodos para proporcionarlos al trabajo de procesamiento de SageMaker Clarify:
+ Utilice una configuración con [ProcessingInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProcessingInput.html)nombre `dataset` o de análisis `dataset_uri` para especificar el conjunto de datos principal. Para obtener más información sobre `dataset_uri`, consulte la lista de parámetros en [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).
+ Utilice el parámetro `baseline` proporcionado en el archivo de configuración del análisis. El conjunto de datos de referencia es necesario para `static_covariates`, si está presente. Para obtener más información sobre el archivo de configuración del análisis, incluidos ejemplos, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

En la siguiente tabla se enumeran los formatos de datos compatibles, sus extensiones de archivo y los tipos MIME.


| Formato de los datos | Extensión de archivo | Tipo MIME | 
| --- | --- | --- | 
|  `item_records`  |  json  |  `application/json`  | 
|  `timestamp_records`  |  json  |  `application/json`  | 
|  `columns`  |  json  |  `application/json`  | 

JSON es un formato flexible que puede representar cualquier nivel de complejidad en sus datos estructurados. Como se muestra en la tabla, SageMaker Clarify admite los formatos `item_records``timestamp_records`, y`columns`.

## Ejemplos de configuración de conjuntos de datos de series temporales
<a name="clarify-processing-job-data-format-time-series-ex"></a>

Esta sección le muestra cómo establecer una configuración de análisis utilizando `time_series_data_config` para los datos de series temporales en formato JSON. Suponga que tiene un conjunto de datos con dos elementos, cada uno con una marca de tiempo (t), una serie temporal objetivo (x), dos series temporales relacionadas (r) y dos covariables estáticas (u), de la siguiente manera:

 t1 = [0,1,2], t2 = [2,3]

x1 = [5,6,4], x2 = [0,4]

r1 = [0,1,0], r21 = [1,1]

r12 = [0,0,0], r22 = [1,0]

u11 = -1, u21 = 0

u12 = 1, u22 = 2

Puede codificar el conjunto de datos con `time_series_data_config` de tres maneras diferentes, según `dataset_format`. En las secciones siguientes se describe cada método.

### Configuración de datos de series temporales cuando `dataset_format` es `columns`
<a name="clarify-processing-job-data-format-time-series-columns"></a>

En el ejemplo siguiente se utiliza el valor `columns` para `dataset_format`. El siguiente archivo JSON representa el conjunto de datos anterior.

```
{
    "ids": [1, 1, 1, 2, 2],
    "timestamps": [0, 1, 2, 2, 3], # t
    "target_ts": [5, 6, 4, 0, 4], # x
    "rts1": [0, 1, 0, 1, 1], # r1
    "rts2": [0, 0, 0, 1, 0], # r2
    "scv1": [-1, -1, -1, 0, 0], # u1
    "scv2": [1, 1, 1, 2, 2], # u2
}
```

Tenga en cuenta que los ID de los elementos se repiten en el campo `ids`. A continuación, se muestra la implementación correcta de `time_series_data_config`:

```
"time_series_data_config": {
    "item_id": "ids",
    "timestamp": "timestamps",
    "target_time_series": "target_ts",
    "related_time_series": ["rts1", "rts2"],
    "static_covariates": ["scv1", "scv2"],
    "dataset_format": "columns"
}
```

### Configuración de datos de series temporales cuando `dataset_format` es `item_records`
<a name="clarify-processing-job-data-format-time-series-itemrec"></a>

En el ejemplo siguiente se utiliza el valor `item_records` para `dataset_format`. El siguiente archivo JSON representa el conjunto de datos.

```
[
    {
        "id": 1,
        "scv1": -1,
        "scv2": 1,
        "timeseries": [
            {"timestamp": 0, "target_ts": 5, "rts1": 0, "rts2": 0},
            {"timestamp": 1, "target_ts": 6, "rts1": 1, "rts2": 0},
            {"timestamp": 2, "target_ts": 4, "rts1": 0, "rts2": 0}
        ]
    },
    {
        "id": 2,
        "scv1": 0,
        "scv2": 2,
        "timeseries": [
            {"timestamp": 2, "target_ts": 0, "rts1": 1, "rts2": 1},
            {"timestamp": 3, "target_ts": 4, "rts1": 1, "rts2": 0}
        ]
    }
]
```

Cada elemento se representa como una entrada independiente en el JSON. En el siguiente fragmento se muestra el correspondiente `time_series_data_config` (que utiliza JMESPath). 

```
"time_series_data_config": {
    "item_id": "[*].id",
    "timestamp": "[*].timeseries[].timestamp",
    "target_time_series": "[*].timeseries[].target_ts",
    "related_time_series": ["[*].timeseries[].rts1", "[*].timeseries[].rts2"],
    "static_covariates": ["[*].scv1", "[*].scv2"],
    "dataset_format": "item_records"
}
```

### Configuración de datos de series temporales cuando `dataset_format` es `timestamp_record`
<a name="clarify-processing-job-data-format-time-series-tsrec"></a>

En el ejemplo siguiente se utiliza el valor `timestamp_record` para `dataset_format`. El siguiente archivo JSON representa el conjunto de datos anterior.

```
[
    {"id": 1, "timestamp": 0, "target_ts": 5, "rts1": 0, "rts2": 0, "svc1": -1, "svc2": 1},
    {"id": 1, "timestamp": 1, "target_ts": 6, "rts1": 1, "rts2": 0, "svc1": -1, "svc2": 1},
    {"id": 1, "timestamp": 2, "target_ts": 4, "rts1": 0, "rts2": 0, "svc1": -1, "svc2": 1},
    {"id": 2, "timestamp": 2, "target_ts": 0, "rts1": 1, "rts2": 1, "svc1": 0, "svc2": 2},
    {"id": 2, "timestamp": 3, "target_ts": 4, "rts1": 1, "rts2": 0, "svc1": 0, "svc2": 2},
]
```

Cada entrada del JSON representa una marca de tiempo única y corresponde a un único elemento. A continuación, se muestra la implementación de `time_series_data_config`: 

```
{
    "item_id": "[*].id",
    "timestamp": "[*].timestamp",
    "target_time_series": "[*].target_ts",
    "related_time_series": ["[*].rts1"],
    "static_covariates": ["[*].scv1"],
    "dataset_format": "timestamp_records"
}
```

# Solicitudes de punto de conexión para datos de series temporales
<a name="clarify-processing-job-data-format-time-series-request-jsonlines"></a>

Un trabajo de SageMaker procesamiento de Clarify serializa los datos en estructuras JSON arbitrarias (con el tipo MIME:). `application/json` Para ello, debe proporcionar una cadena de plantilla al parámetro de configuración del análisis `content_template`. El trabajo de procesamiento de SageMaker Clarify lo utiliza para crear la consulta JSON proporcionada a su modelo. `content_template`contiene uno o varios registros de su conjunto de datos. También debe proporcionar una cadena de plantilla para `record_template`, que se utilizará para construir la estructura JSON de cada registro. Estos registros se insertan luego en `content_template`. Para obtener más información acerca de `content_type` o `dataset_type`, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

**nota**  
Como `content_template` y `record_template` son parámetros de cadena, cualquier carácter entre comillas dobles (") que forme parte de la estructura serializada de JSON debe anotarse como un carácter de escape en la configuración. Por ejemplo, si quiere escapar las comillas dobles en Python, puede introducir el siguiente valor para `content_template`.  

```
'$record'
```

La siguiente tabla muestra ejemplos de cargas útiles de solicitud JSON serializadas y los parámetros `content_template` y `record_template` correspondientes que se requieren para construirlas.


| Caso de uso | Carga de solicitud de punto de conexión (representación de cadena) | plantilla\$1contenido | plantilla\$1registro | 
| --- | --- | --- | --- | 
|  Un solo registro a la vez  |  `{"target": [1, 2, 3],"start": "2024-01-01 01:00:00"}`  |  `'$record'`  |  `'{"start": $start_time, "target": $target_time_series}'`  | 
|  Un solo registro con `$related_time_series` y `$static_covariates`  |  `{"target": [1, 2, 3],"start": "2024-01-01 01:00:00","dynamic_feat": [[1.0, 2.0, 3.0],[1.0, 2.0, 3.0],"cat": [0,1]}`  |  `'$record'`  |  `'{"start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates}'`  | 
|  Varios registros  |  `{"instances": [{"target": [1, 2, 3],"start": "2024-01-01 01:00:00"}, {"target": [1, 2, 3],"start": "2024-01-01 02:00:00"}]}`  |  `'{"instances": $records}'`  |  `'{"start": $start_time, "target": $target_time_series}'`  | 
|  Varios registros con `$related_time_series` y `$static_covariates`  |  `{"instances": [{"target": [1, 2, 3],"start": "2024-01-01 01:00:00","dynamic_feat": [[1.0, 2.0, 3.0],[1.0, 2.0, 3.0],"cat": [0,1]}, {"target": [1, 2, 3],"start": "2024-01-01 02:00:00","dynamic_feat": [[1.0, 2.0, 3.0],[1.0, 2.0, 3.0],"cat": [0,1]}]}`  |  `'{"instances": $records}'`  |  `''{"start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates}'`  | 

# Respuesta de los puntos de conexión para datos de series temporales
<a name="clarify-processing-job-data-format-time-series-response-json"></a>

El trabajo SageMaker de procesamiento de Clarify deserializa toda la carga útil como JSON. A continuación, extrae las predicciones de los datos deserializados mediante las JMESPath expresiones proporcionadas en la configuración de análisis. Los registros en la carga de respuesta deben coincidir con los registros en la carga de solicitud.

La siguiente tabla es un ejemplo de respuesta de un punto de conexión que solo genera el valor de predicción medio. El valor `forecast` utilizado en el `predictor` campo en la [configuración del análisis](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-processing-job-configure-analysis.html#clarify-processing-job-configure-analysis-parameters) debe proporcionarse como una JMESPath expresión para encontrar el resultado de la predicción para el trabajo de procesamiento.


| Carga de solicitud de punto de conexión | Carga de respuesta de punto de conexión (representación en cadena) | JMESPath expresión para la previsión en la configuración de análisis | 
| --- | --- | --- | 
|  Ejemplo de un solo registro. La configuración debería ser `TimeSeriesModelConfig(forecast="prediction.mean")` para extraer la predicción correctamente.  |  `'{"prediction": {"mean": [1, 2, 3, 4, 5]}'`  |  `'prediction.mean'`  | 
|  Varios registros. Una respuesta de punto final AWS de DeepAR.  |  `'{"predictions": [{"mean": [1, 2, 3, 4, 5]}, {"mean": [1, 2, 3, 4, 5]}]}'`  |  `'predictions[*].mean'`  | 

# Comprobación previa de la solicitud y la respuesta del punto de conexión para datos de series temporales
<a name="clarify-processing-job-data-format-time-series-precheck"></a>

Se recomienda implementar el modelo en un punto final de inferencia en tiempo real de la SageMaker IA y enviar las solicitudes al punto final. Examine manualmente las solicitudes y las respuestas para asegurarse de que ambas cumplen con los requisitos de las secciones [Solicitudes de punto de conexión para datos de series temporales](clarify-processing-job-data-format-time-series-request-jsonlines.md) y [Respuesta de los puntos de conexión para datos de series temporales](clarify-processing-job-data-format-time-series-response-json.md). Si el contenedor de modelos admite solicitudes por lotes, puede empezar con una sola solicitud de registro y, a continuación, probar con dos o más registros.

En los siguientes comandos, se muestra cómo solicitar una respuesta mediante la AWS CLI. Viene AWS CLI preinstalado en las instancias de Studio y SageMaker Notebook. Para instalarlo AWS CLI, siga la [guía de instalación](https://aws.amazon.com//cli/).

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name $ENDPOINT_NAME \
  --content-type $CONTENT_TYPE \
  --accept $ACCEPT_TYPE \
  --body $REQUEST_DATA \
  $CLI_BINARY_FORMAT \
  /dev/stderr 1>/dev/null
```

Los parámetros se definen como sigue:
+ \$1ENDPOINT NAME: el nombre del punto de conexión.
+ \$1CONTENT\$1TYPE: el tipo MIME de la solicitud (entrada del contenedor de modelos).
+ \$1ACCEPT\$1TYPE: el tipo MIME de la respuesta (salida del contenedor de modelos).
+ \$1REQUEST\$1DATA: cadena de carga útil solicitada.
+ \$1CLI\$1BINARY\$1FORMAT: el formato del parámetro de la interfaz de la línea de comandos (CLI). Para la AWS CLI versión 1, este parámetro debe permanecer en blanco. En la versión 2, este parámetro debe establecerse en `--cli-binary-format raw-in-base64-out`.

**nota**  
AWS CLI La v2 pasa los parámetros binarios como cadenas codificadas en base64 de forma predeterminada. Los siguientes ejemplos de solicitudes y respuestas hacia y desde el punto final utilizan la v1. AWS CLI 

------
#### [ Example 1 ]

En el siguiente ejemplo de código, la solicitud consta de un único registro.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-json \
  --content-type application/json \
  --accept application/json \
  --body '{"target": [1, 2, 3, 4, 5],
    "start": "2024-01-01 01:00:00"}' \
/dev/stderr 1>/dev/null
```

El siguiente fragmento muestra la salida de respuesta correspondiente.

```
{'predictions': {'mean': [1, 2, 3, 4, 5]}
```

------
#### [ Example 2 ]

En el siguiente ejemplo de código, la solicitud consta de dos registros.

```
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name test-endpoint-json-2 \
  --content-type application/json \
  --accept application/json \
  --body $'{"instances": [{"target":[1, 2, 3],
    "start":"2024-01-01 01:00:00",
    "dynamic_feat":[[1, 2, 3, 4, 5],
        [1, 2, 3, 4, 5]]}], {"target":[1, 2, 3],
    "start":"2024-01-02 01:00:00",
    "dynamic_feat":[[1, 2, 3, 4, 5],
        [1, 2, 3, 4, 5]]}]}' \
dev/stderr 1>/dev/null
```

Esta es la salida de respuesta:

```
{'predictions': [{'mean': [1, 2, 3, 4, 5]}, {'mean': [1, 2, 3, 4, 5]}]}
```

------

# Ejecute SageMaker Clarify Processing Jobs para analizar los sesgos y facilitar la explicación
<a name="clarify-processing-job-run"></a>

Para analizar sus datos y modelos en busca de sesgos y explicabilidad con SageMaker Clarify, debe configurar un SageMaker trabajo de procesamiento de Clarify. Esta guía muestra cómo configurar las entradas, salidas, recursos y configuración de análisis del trabajo mediante la API del SDK de SageMaker Python`SageMakerClarifyProcessor`. 

La API actúa como un contenedor de alto nivel de la `CreateProcessingJob` API de SageMaker IA. Oculta muchos de los detalles necesarios para configurar un trabajo de procesamiento de SageMaker Clarify. Los detalles necesarios para configurar un trabajo incluyen la recuperación del URI de la imagen del contenedor SageMaker de Clarify y la generación del archivo de configuración del análisis. Los siguientes pasos muestran cómo configurar, inicializar y lanzar un trabajo de procesamiento de SageMaker Clarify. 

**Configure un trabajo de SageMaker procesamiento de Clarify mediante la API**

1. Defina los objetos de configuración para cada parte de la configuración del trabajo. Estas partes pueden incluir las siguientes:
   + El conjunto de datos de entrada y la ubicación de salida: [DataConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.DataConfig).
   + El modelo o punto final que se va a analizar: [ModelConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.ModelConfig).
   + Parámetros del análisis de sesgo: [BiasConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.BiasConfig).
   + SHapley Parámetros de análisis de Additive Explanations (SHAP): [SHAPConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SHAPConfig).
   + Parámetros de análisis de valores asimétricos de Shapley (solo para series temporales):. [AsymmetricShapleyValueConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.AsymmetricShapleyValueConfig)

   Los objetos de configuración de un trabajo de SageMaker procesamiento de Clarify varían según los diferentes tipos de formatos de datos y casos de uso. En las siguientes secciones, se proporcionan ejemplos de configuración de datos tabulares en formato [CSV](#clarify-processing-job-run-tabular-csv) y [JSON Lines](#clarify-processing-job-run-tabular-jsonlines), procesamiento de lenguaje natural ([NLP](#clarify-processing-job-run-tabular-nlp)) [computer vision](#clarify-processing-job-run-cv) (CV) y problemas de series temporales (TS). 

1. Cree un objeto `SageMakerClarifyProcessor` e inicialícelo con parámetros que especifiquen los recursos del trabajo. Estos recursos incluyen parámetros como el número de instancias de computación que se van a utilizar.

   El siguiente ejemplo de código muestra cómo crear un objeto `SageMakerClarifyProcessor` e indicarle que utilice una instancia de computación `ml.c4.xlarge` para realizar el análisis.

   ```
   from sagemaker import clarify
   
   clarify_processor = clarify.SageMakerClarifyProcessor(
       role=role,
       instance_count=1,
       instance_type='ml.c4.xlarge',
       sagemaker_session=session,
   )
   ```

1. Llame al método de ejecución específico del [SageMakerClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor.run)objeto junto con los objetos de configuración de su caso de uso para lanzar el trabajo. Estos métodos de ejecución incluyen lo siguiente:
   + `run_pre_training_bias`
   + `run_post_training_bias`
   + `run_bias`
   + `run_explainability`
   + `run_bias_and_explainability`

   `SageMakerClarifyProcessor` gestiona varias tareas entre bastidores. Estas tareas incluyen recuperar el identificador universal de recursos (URI) de la imagen del contenedor de SageMaker Clarify, crear un archivo de configuración de análisis basado en los objetos de configuración proporcionados, cargar el archivo en un bucket de Amazon S3 y [configurar el trabajo de procesamiento de SageMaker Clarify](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-processing-job-configure-parameters.html).

   Las siguientes secciones ampliables muestran cómo calcular las **métricas de sesgo previas al entrenamiento** y **posteriores al entrenamiento**, los **valores SHAP** y los **gráficos de dependencia parcial** (PDPs). Las secciones muestran la importancia de las características de estos tipos de datos:
   + Conjuntos de datos tabulares en formato CSV o formato JSON Lines
   + Conjuntos de datos de procesamiento de lenguaje natural (NLP)
   + Conjuntos de datos de visión artificial

En las secciones ampliables se incluye una guía para ejecutar trabajos de procesamiento paralelos de SageMaker Clarify con formación distribuida mediante **Spark**.

## Análisis de datos tabulares en formato CSV
<a name="clarify-processing-job-run-tabular-csv"></a>

Los siguientes ejemplos muestran cómo configurar el análisis del sesgo y el análisis de la explicabilidad para un conjunto de datos tabular en formato CSV. En estos ejemplos, el conjunto de datos entrante tiene cuatro columnas de características y una columna de etiquetas binarias, `Target`. El contenido del conjunto de datos es el siguiente. Un valor de etiqueta de `1` indica un resultado positivo. 

```
Target,Age,Gender,Income,Occupation
0,25,0,2850,2
1,36,0,6585,0
1,22,1,1759,1
0,48,0,3446,1
...
```

Este objeto `DataConfig` especifica el conjunto de datos de entrada y dónde almacenar la salida. El parámetro `s3_data_input_path` puede ser un URI de un archivo de conjunto de datos o un prefijo URI de Amazon S3. Si proporciona un prefijo URI de S3, el trabajo de procesamiento de SageMaker Clarify recopila de forma recursiva todos los archivos de Amazon S3 ubicados debajo del prefijo. El valor de `s3_output_path` debe ser un prefijo URI de S3 para contener los resultados del análisis. SageMaker La IA lo usa `s3_output_path` al compilar y no puede tomar el valor de un parámetro, propiedad o `ExecutionVariable` expresión de SageMaker AI Pipeline que se utilice durante el tiempo de ejecución. En el siguiente ejemplo de código se muestra cómo especificar una configuración de datos para el conjunto de datos de entrada de ejemplo anterior.

```
data_config = clarify.DataConfig(
    s3_data_input_path=dataset_s3_uri,
    dataset_type='text/csv',
    headers=['Target', 'Age', 'Gender', 'Income', 'Occupation'],
    label='Target',
    s3_output_path=clarify_job_output_s3_uri,
)
```

### Cómo calcular todas las métricas de sesgo previas al entrenamiento para un conjunto de datos CSV
<a name="clarify-processing-job-run-tabular-csv-pretraining"></a>

El siguiente ejemplo de código muestra cómo configurar un objeto `BiasConfig` para medir el sesgo de la entrada de la muestra anterior hacia las muestras con un valor `Gender` de `0`.

```
bias_config = clarify.BiasConfig(
    label_values_or_threshold=[1],
    facet_name='Gender',
    facet_values_or_threshold=[0],
)
```

El siguiente ejemplo de código muestra cómo usar una sentencia de ejecución para lanzar un trabajo de procesamiento de SageMaker Clarify que calcula todas las [métricas de sesgo previas al entrenamiento](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-measure-data-bias.html) para un conjunto de datos de entrada. 

```
clarify_processor.run_pre_training_bias(
     data_config=data_config,
    data_bias_config=bias_config,
    methods="all",
)
```

Como alternativa, puede elegir qué métricas calcular si asigna una lista de métricas de sesgo previas al entrenamiento al parámetro de métodos. Por ejemplo, si se `methods="all"` reemplaza por, `methods=["CI", "DPL"]` se indica al procesador SageMaker Clarify que calcule únicamente el [desequilibrio de clases](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-bias-metric-class-imbalance.html) y la [diferencia en las proporciones](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-data-bias-metric-true-label-imbalance.html) de las etiquetas.

### Cómo calcular todas las métricas de sesgo posteriores al entrenamiento para un conjunto de datos CSV
<a name="clarify-processing-job-run-tabular-csv-posttraining"></a>

Puede calcular las métricas de sesgo previas al entrenamiento antes del entrenamiento. Sin embargo, para calcular las [métricas de sesgo posteriores al entrenamiento](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-measure-post-training-bias.html) debe tener un modelo entrenado. El siguiente ejemplo de salida proviene de un modelo de clasificación binaria que genera datos en formato CSV. En este ejemplo de salida, cada fila contiene dos columnas. La primera columna contiene la etiqueta predicha y la segunda columna contiene el valor de probabilidad de esa etiqueta.

```
0,0.028986845165491
1,0.825382471084594
...
```

En el siguiente ejemplo de configuración, el `ModelConfig` objeto indica al trabajo que despliegue el modelo de SageMaker IA en un punto final efímero. El punto de conexión utiliza una instancia de inferencia `ml.m4.xlarge`. Como el parámetro `content_type` y el parámetro `accept_type` no están configurados, utilizan automáticamente el valor del parámetro`dataset_type`, que es `text/csv`.

```
model_config = clarify.ModelConfig(
    model_name=your_model,
    instance_type='ml.m4.xlarge',
    instance_count=1,
)
```

El siguiente ejemplo de configuración utiliza un objeto `ModelPredictedLabelConfig` con un índice de etiqueta de `0`. Esto indica al trabajo de procesamiento de SageMaker Clarify que ubique la etiqueta prevista en la primera columna de la salida del modelo. En este ejemplo, el trabajo de procesamiento utiliza la indexación de base cero.

```
predicted_label_config = clarify.ModelPredictedLabelConfig(
    label=0,
)
```

En combinación con el ejemplo de configuración anterior, el siguiente ejemplo de código inicia un trabajo de procesamiento de SageMaker Clarify para calcular todas las métricas de sesgo posteriores al entrenamiento.

```
clarify_processor.run_post_training_bias(
    data_config=data_config,
    data_bias_config=bias_config,
    model_config=model_config,
    model_predicted_label_config=predicted_label_config,
    methods="all",
)
```

Igualmente, puede elegir qué métricas calcular si asigna una lista de métricas de sesgo posteriores al entrenamiento al parámetro `methods`. Por ejemplo, sustituya `methods=“all”` por `methods=["DPPL", "DI"]` para calcular solo la [Diferencia en las proporciones positivas de las etiquetas predichas](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-post-training-bias-metric-dppl.html) y el [Impacto dispar](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-post-training-bias-metric-di.html).

### Cómo calcular todas las métricas de sesgo para un conjunto de datos CSV
<a name="clarify-processing-job-run-tabular-csv-all"></a>

El siguiente ejemplo de configuración muestra cómo ejecutar todas las métricas de sesgo previas y posteriores al entrenamiento en un trabajo de procesamiento de SageMaker Clarify.

```
clarify_processor.run_bias(
    data_config=data_config,
     bias_config=bias_config,
     model_config=model_config,
    model_predicted_label_config=predicted_label_config,
    pre_training_methods="all",
    post_training_methods="all",
)
```

Para ver un ejemplo de cuaderno con instrucciones sobre cómo ejecutar un trabajo de procesamiento de SageMaker Clarify en SageMaker Studio Classic para detectar sesgos, consulte [Equidad y explicabilidad](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.ipynb) con Clarify. SageMaker 

### Cómo calcular los valores SHAP para un conjunto de datos CSV
<a name="clarify-processing-job-run-tabular-csv-shap"></a>

SageMaker [Clarify proporciona las atribuciones de funciones mediante el algoritmo KernelShap.](https://arxiv.org/abs/1705.07874) SHAPEl análisis requiere el valor o la puntuación de probabilidad en lugar de la etiqueta prevista, por lo que este `ModelPredictedLabelConfig` objeto tiene un índice de probabilidad. `1` Esto indica al trabajo de procesamiento SageMaker de Clarify que extraiga la puntuación de probabilidad de la segunda columna de la salida del modelo (mediante una indexación basada en cero).

```
probability_config = clarify.ModelPredictedLabelConfig(
    probability=1,
)
```

El objeto `SHAPConfig` proporciona los parámetros de análisis SHAP. En este ejemplo, se omite el parámetro SHAP `baseline` y el valor del parámetro `num_clusters` es `1`. Esto indica al procesador SageMaker Clarify que calcule una muestra de SHAP referencia basándose en la agrupación del conjunto de datos de entrada. Si desea elegir el conjunto de datos de referencia, consulte [Referencias SHAP para la explicabilidad](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-feature-attribute-shap-baselines.html).

```
shap_config = clarify.SHAPConfig(
    num_clusters=1,
)
```

El siguiente ejemplo de código inicia un trabajo de procesamiento SageMaker de Clarify para calcular SHAP valores.

```
clarify_processor.run_explainability(
    data_config=data_config,
    model_config=model_config,
    model_scores=probability_config,
    explainability_config=shap_config,
)
```

Para ver un ejemplo de cuaderno con instrucciones sobre cómo ejecutar un trabajo de SageMaker procesamiento de Clarify en SageMaker Studio Classic para calcular SHAP valores, consulte [Equidad y explicabilidad con SageMaker ](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.ipynb) Clarify.

### Cómo calcular los gráficos de dependencia parcial (PDPs) para un conjunto de datos CSV
<a name="clarify-processing-job-run-tabular-csv-pdp"></a>

Los PDPs muestran la dependencia de la respuesta objetivo predicha con respecto a una o más características de entrada de interés y, al mismo tiempo, mantienen constantes todas las demás características. Una línea inclinada hacia arriba, o curva en el PDP, indica que la relación entre el objetivo y las características de entrada es positiva, y la inclinación indica la fortaleza de la relación. Una línea o curva inclinada hacia abajo indica que si una característica de entrada disminuye, la variable objetivo aumenta. De forma intuitiva, puede interpretar la dependencia parcial como la respuesta de la variable objetivo a cada característica de entrada de interés.

El siguiente ejemplo de configuración sirve para usar un `PDPConfig` objeto para indicar al trabajo de procesamiento de SageMaker Clarify que calcule la importancia de la función. `Income`

```
pdp_config = clarify.PDPConfig(
    features=["Income"],
    grid_resolution=10,
)
```

En el ejemplo anterior, el parámetro `grid_resolution` divide el rango de valores de la característica `Income` en `10` buckets. El trabajo SageMaker de procesamiento Clarify se generará PDPs para `Income` dividirlo en `10` segmentos en el eje x. El eje y mostrará el impacto marginal de `Income` en las predicciones.

En el siguiente ejemplo de código se inicia un trabajo de procesamiento SageMaker de Clarify para realizar el cálculoPDPs.

```
clarify_processor.run_explainability(
    data_config=data_config,
    model_config=model_config,
    model_scores=probability_config,
    explainability_config=pdp_config,
)
```

Para ver un ejemplo de cuaderno con instrucciones sobre cómo ejecutar un trabajo de SageMaker procesamiento de Clarify en SageMaker Studio Classic para realizar cálculosPDPs, consulte [Explicabilidad con Clarify: SageMaker gráficos de dependencia parcial (PDP)](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/explainability_with_pdp.ipynb).

### Cómo calcular los valores SHAP y PDPs para un conjunto de datos CSV
<a name="clarify-processing-job-run-tabular-csv-shap-pdp"></a>

Puede calcular ambos SHAP valores PDPs en un solo trabajo de procesamiento de SageMaker Clarify. En el siguiente ejemplo de configuración, el parámetro `top_k_features` de un objeto `PDPConfig` nuevo se establece en `2`. Esto indica al trabajo de SageMaker procesamiento de Clarify que calcule PDPs las `2` entidades que tienen los SHAP valores globales más altos. 

```
shap_pdp_config = clarify.PDPConfig(
    top_k_features=2,
    grid_resolution=10,
)
```

El siguiente ejemplo de código inicia un trabajo de SageMaker procesamiento de Clarify para calcular ambos SHAP valores yPDPs.

```
clarify_processor.run_explainability(
    data_config=data_config,
    model_config=model_config,
    model_scores=probability_config,
    explainability_config=[shap_config, shap_pdp_config],
)
```

## Análisis de datos tabulares en formato JSON Lines
<a name="clarify-processing-job-run-tabular-jsonlines"></a>

Los siguientes ejemplos muestran cómo configurar el análisis de sesgo y el análisis de explicabilidad para un conjunto de datos tabular en el formato denso > SageMaker AI JSON Lines. Para obtener más información, consulte [Formato de solicitud JSONLINES](cdf-inference.md#cm-jsonlines). En estos ejemplos, el conjunto de datos entrante tiene los mismos datos que en la sección anterior, pero están en el formato JSON Lines. Cada línea es un objeto JSON válido. La clave `Features` apunta a una matriz de valores de características, y la clave `Label` apunta a la etiqueta de verdad fundamental.

```
{"Features":[25,0,2850,2],"Label":0}
{"Features":[36,0,6585,0],"Label":1}
{"Features":[22,1,1759,1],"Label":1}
{"Features":[48,0,3446,1],"Label":0}
...
```

En el siguiente ejemplo de configuración, el objeto `DataConfig`especifica el conjunto de datos de entrada y dónde almacenar la salida. 

```
data_config = clarify.DataConfig(
    s3_data_input_path=jsonl_dataset_s3_uri,
    dataset_type='application/jsonlines',
    headers=['Age', 'Gender', 'Income', 'Occupation', 'Target'],
    label='Label',
    features='Features',
    s3_output_path=clarify_job_output_s3_uri,
)
```

En el ejemplo de configuración anterior, el parámetro de características se establece en la [JMESPath](https://jmespath.org/)expresión `Features` para que el trabajo de procesamiento de SageMaker Clarify pueda extraer la matriz de características de cada registro. El `label` parámetro está configurado en forma de JMESPath expresión para `Label` que el trabajo de SageMaker procesamiento de Clarify pueda extraer la etiqueta Ground Truth de cada registro. El parámetro `s3_data_input_path` puede ser un URI de un archivo de conjunto de datos o un prefijo URI de Amazon S3. Si proporciona un prefijo URI de S3, el trabajo de procesamiento de SageMaker Clarify recopila de forma recursiva todos los archivos de S3 ubicados debajo del prefijo. El valor de `s3_output_path` debe ser un prefijo URI de S3 para contener los resultados del análisis. SageMaker La IA lo usa `s3_output_path` al compilar y no puede tomar el valor de un parámetro, propiedad o `ExecutionVariable` expresión de SageMaker AI Pipeline que se utilice durante el tiempo de ejecución.

Debe tener un modelo entrenado para calcular las métricas de sesgo posteriores al entrenamiento de la importancia de las características. El siguiente ejemplo proviene de un modelo de clasificación binaria que genera datos en formato JSON Lines en el formato del ejemplo. Cada fila de la salida del modelo es un objeto JSON válido. La clave `predicted_label` apunta a la etiqueta predicha y la clave `probability` apunta al valor de probabilidad.

```
{"predicted_label":0,"probability":0.028986845165491}
{"predicted_label":1,"probability":0.825382471084594}
...
```

En el siguiente ejemplo de configuración, un `ModelConfig` objeto indica al trabajo de procesamiento de SageMaker Clarify que despliegue el modelo de SageMaker IA en un punto final efímero. El punto de conexión utiliza una instancia de inferencia `ml.m4.xlarge`.

```
model_config = clarify.ModelConfig(
    model_name=your_model,
    instance_type='ml.m4.xlarge',
    instance_count=1,
    content_template='{"Features":$features}',
)
```

En el ejemplo de configuración anterior, los parámetros `content_type` y `accept_type` no están configurados. Por lo tanto, utilizan automáticamente el valor del parámetro `dataset_type` del objeto `DataConfig`, que es `application/jsonlines`. El trabajo SageMaker de procesamiento de Clarify utiliza el `content_template` parámetro para componer la entrada del modelo sustituyendo el `$features` marcador de posición por un conjunto de características.

El siguiente ejemplo de configuración muestra cómo establecer el parámetro de etiqueta del `ModelPredictedLabelConfig` objeto en la JMESPath expresión`predicted_label`. Esto extraerá la etiqueta predicha de la salida del modelo.

```
predicted_label_config = clarify.ModelPredictedLabelConfig(
    label='predicted_label',
)
```

El siguiente ejemplo de configuración muestra cómo establecer el `probability` parámetro del `ModelPredictedLabelConfig` objeto en la JMESPath expresión`probability`. Esto extraerá la puntuación de la salida del modelo.

```
probability_config = clarify.ModelPredictedLabelConfig(
    probability='probability',
)
```

 Para calcular las métricas de sesgo y la importancia de las características de los conjuntos de datos en formato JSON Lines, utilice las mismas instrucciones de ejecución y objetos de configuración que en la sección anterior para los conjuntos de datos CSV. Puede ejecutar un trabajo de procesamiento SageMaker de Clarify en SageMaker Studio Classic para detectar sesgos y calcular la importancia de las funciones. Para obtener instrucciones y un ejemplo de cuaderno, consulte [Equidad y explicabilidad con SageMaker Clarify (formato de líneas JSON)](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_jsonlines_format.ipynb).

## Análisis de datos tabulares para la explicabilidad del NLP
<a name="clarify-processing-job-run-tabular-nlp"></a>

SageMaker Clarify admite las explicaciones de los modelos de procesamiento del lenguaje natural (PNL). Estas explicaciones le ayudan a entender qué secciones del texto son las más importantes para las predicciones del modelo. Puede explicar la predicción del modelo para una sola instancia del conjunto de datos de entrada, o las predicciones del modelo del conjunto de datos de referencia. Para comprender y visualizar el comportamiento de un modelo, puede especificar varios niveles de granularidad. Para ello, defina la longitud del segmento de texto, como sus tokens, oraciones y párrafos.

SageMaker La explicabilidad de la PNL de Clarify es compatible con los modelos de clasificación y regresión. También puede usar SageMaker Clarify para explicar el comportamiento del modelo en conjuntos de datos multimodales que contienen características textuales, categóricas o numéricas. La explicabilidad mediante la PNL de los conjuntos de datos multimodales puede ayudarlo a comprender la importancia de cada característica para el resultado del modelo. SageMaker Clarify admite 62 idiomas y puede gestionar textos que incluyan varios idiomas.

El siguiente ejemplo muestra un archivo de configuración de análisis que calcula la importancia de las características para el NLP. En este ejemplo, el conjunto de datos entrante es un conjunto de datos tabular en formato CSV, con una columna de etiqueta binaria y dos columnas de características.

```
0,2,"Flavor needs work"
1,3,"They taste good"
1,5,"The best"
0,1,"Taste is awful"
...
```

El siguiente ejemplo de configuración muestra cómo especificar un conjunto de datos de entrada en formato CSV y una ruta de datos de salida con el objeto `DataConfig`.

```
nlp_data_config = clarify.DataConfig(
    s3_data_input_path=nlp_dataset_s3_uri,
    dataset_type='text/csv',
    headers=['Target', 'Rating', 'Comments'],
    label='Target',
    s3_output_path=clarify_job_output_s3_uri,
)
```

En el ejemplo de configuración anterior, el parámetro `s3_data_input_path` puede ser un URI de un archivo de conjunto de datos o un prefijo URI de Amazon S3. Si proporciona un prefijo URI de S3, el trabajo de procesamiento de SageMaker Clarify recopila de forma recursiva todos los archivos de S3 ubicados debajo del prefijo. El valor de `s3_output_path` debe ser un prefijo URI de S3 para contener los resultados del análisis. SageMaker La IA lo usa `s3_output_path` al compilar y no puede tomar el valor de un parámetro, propiedad o `ExecutionVariable` expresión de SageMaker AI Pipeline que se utilice durante el tiempo de ejecución.

El siguiente ejemplo de salida se creó a partir de un modelo de clasificación binaria entrenado en el conjunto de datos de entrada anterior. El modelo de clasificación acepta datos CSV y genera una puntuación única entre `0` y `1`.

```
0.491656005382537
0.569582343101501
...
```

En el siguiente ejemplo, se muestra cómo configurar el `ModelConfig` objeto para implementar un modelo de SageMaker IA. En este ejemplo, un punto de conexión efímero implementa el modelo. Este punto de conexión utiliza una instancia de inferencia `ml.g4dn.xlarge` equipada con una GPU para acelerar la inferencia.

```
nlp_model_config = clarify.ModelConfig(
    model_name=your_nlp_model_name,
    instance_type='ml.g4dn.xlarge',
    instance_count=1,
)
```

El siguiente ejemplo muestra cómo configurar el objeto `ModelPredictedLabelConfig`para localizar la probabilidad (puntuación) en la primera columna con un índice de `0`.

```
probability_config = clarify.ModelPredictedLabelConfig(
    probability=0,
)
```

El siguiente ejemplo de configuración SHAP muestra cómo ejecutar un análisis de explicabilidad simbólica mediante un modelo y un conjunto de datos de entrada en inglés.

```
text_config = clarify.TextConfig(
    language='english',
    granularity='token',
)
nlp_shap_config = clarify.SHAPConfig(
    baseline=[[4, '[MASK]']],
    num_samples=100,
    text_config=text_config,
)
```

En el ejemplo anterior, el objeto `TextConfig` activa el análisis de explicabilidad del NLP. El parámetro `granularity` indica que el análisis debe analizar los tokens. En inglés, cada token es una palabra. Para otros lenguajes, consulta la [documentación de SpACy sobre la tokenización, que SageMaker Clarify usa para](https://spacy.io/usage/linguistic-features#tokenization) el procesamiento de la PNL. El ejemplo anterior también muestra cómo utilizar un `Rating`promedio de `4` para establecer una instancia de referencia SHAP in situ. Se utiliza un token de máscara especial `[MASK]` para reemplazar un token (palabra) en `Comments`.

En el ejemplo anterior, si la instancia es `2,"Flavor needs work"`, establece la referencia en un `Rating` promedio de `4` con la siguiente referencia.

```
4, '[MASK]'
```

En el ejemplo anterior, el explicador de SageMaker Clarify recorre en iteración cada token y lo reemplaza por la máscara, de la siguiente manera.

```
2,"[MASK] needs work"

4,"Flavor [MASK] work"

4,"Flavor needs [MASK]"
```

Luego, el explicador de SageMaker Clarify enviará cada línea a su modelo para realizar predicciones. Esto es para que el explicador aprenda las predicciones con y sin las palabras enmascaradas. Luego, SageMaker el explicador de Clarify usa esta información para calcular la contribución de cada token.

El siguiente ejemplo de código inicia un trabajo de procesamiento SageMaker de Clarify para calcular SHAP valores.

```
clarify_processor.run_explainability(
    data_config=nlp_data_config,
    model_config=nlp_model_config,
    model_scores=probability_config,
    explainability_config=nlp_shap_config,
)
```

Para ver un ejemplo de cuaderno con instrucciones sobre cómo ejecutar un trabajo de procesamiento de SageMaker Clarify en SageMaker Studio Classic para el análisis de la explicabilidad de la PNL, consulte [Explicación del análisis del sentimiento textual mediante](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/text_explainability/text_explainability.ipynb) Clarify. SageMaker 

## Análisis de datos de imágenes para la explicabilidad de la visión artificial
<a name="clarify-processing-job-run-cv"></a>

SageMaker Clarify genera mapas térmicos que proporcionan información sobre cómo los modelos de visión artificial clasifican y detectan los objetos en las imágenes.

En el siguiente ejemplo de configuración, el conjunto de datos de entrada consta de imágenes JPEG.

```
cv_data_config = clarify.DataConfig(
    s3_data_input_path=cv_dataset_s3_uri,
    dataset_type="application/x-image",
    s3_output_path=clarify_job_output_s3_uri,
)
```

 En el ejemplo de configuración anterior, el objeto `DataConfig` contiene una `s3_data_input_path` establecida en un prefijo URI de Amazon S3. El trabajo SageMaker de procesamiento Clarify recopila de forma recursiva todos los archivos de imagen ubicados bajo el prefijo. El parámetro `s3_data_input_path` puede ser un URI de un archivo de conjunto de datos o un prefijo URI de Amazon S3. Si proporciona un prefijo URI de S3, el trabajo de procesamiento de SageMaker Clarify recopila de forma recursiva todos los archivos S3 ubicados bajo el prefijo. El valor de `s3_output_path` debe ser un prefijo URI de S3 para contener los resultados del análisis. SageMaker La IA lo usa `s3_output_path` al compilar y no puede tomar el valor de un parámetro, propiedad o `ExecutionVariable` expresión de SageMaker AI Pipeline que se utilice durante el tiempo de ejecución.

### Cómo explicar un modelo de clasificación de imágenes
<a name="clarify-processing-job-run-tabular-cv-image-classification"></a>

El trabajo SageMaker de procesamiento Clarify explica las imágenes mediante el algoritmo KernelShap, que trata la imagen como un conjunto de superpíxeles. Dado que se trata de un conjunto de datos formado por imágenes, el trabajo de procesamiento genera un conjunto de datos de imágenes en el que cada imagen muestra el mapa térmico de los superpíxeles pertinentes.

El siguiente ejemplo de configuración muestra cómo configurar un análisis de explicabilidad mediante un modelo de clasificación de imágenes. SageMaker Para obtener más información, consulte [Clasificación de imágenes - MXNet](image-classification.md).

```
ic_model_config = clarify.ModelConfig(
    model_name=your_cv_ic_model,
    instance_type="ml.p2.xlarge",
    instance_count=1,
    content_type="image/jpeg",
    accept_type="application/json",
)
```

En el ejemplo de configuración anterior, un modelo denominado `your_cv_ic_model` se ha entrenado para que clasifique los animales de las imágenes JPEG de entrada. El `ModelConfig` objeto del ejemplo anterior indica al trabajo de procesamiento de SageMaker Clarify que implemente el modelo de SageMaker IA en un punto final efímero. Para acelerar la inferencia, el punto de conexión utiliza una instancia de inferencia `ml.p2.xlarge` equipada con una GPU.

Después de enviar una imagen JPEG a un punto de conexión, el punto de conexión la clasifica y devuelve una lista de puntuaciones. Cada puntuación corresponde a una categoría. El objeto `ModelPredictedLabelConfig` proporciona el nombre de cada categoría, de la siguiente manera.

```
ic_prediction_config = clarify.ModelPredictedLabelConfig(
    label_headers=['bird', 'cat', 'dog'],
)
```

Un ejemplo de salida para la entrada anterior ['ave','gato','perro'] podría ser 0,3,0,6,0,1, donde 0,3 representa la puntuación de confianza para clasificar una imagen como ave.

El siguiente ejemplo de configuración SHAP muestra cómo generar explicaciones para un problema de clasificación de imágenes. Utiliza un objeto `ImageConfig` para activar el análisis.

```
ic_image_config = clarify.ImageConfig(
    model_type="IMAGE_CLASSIFICATION",
    num_segments=20,
    segment_compactness=5,
)

ic_shap_config = clarify.SHAPConfig(
    num_samples=100,
    image_config=ic_image_config,
)
```

SageMaker Clarify extrae las características mediante el método de [agrupamiento iterativo lineal simple (SLIC) de la biblioteca scikit-learn para la segmentación](https://scikit-image.org/docs/dev/api/skimage.segmentation.html#skimage.segmentation.slic) de imágenes. En el ejemplo de configuración anterior, el parámetro `model_type` indica el tipo de problema de clasificación de imágenes. El parámetro `num_segments` estima el número aproximado de segmentos que se etiquetarán en la imagen de entrada. A continuación, el número de segmentos se pasa al parámetro slic `n_segments`. 

Cada segmento de la imagen se considera un superpíxel característica y los valores SHAP locales se calculan para cada segmento. El parámetro `segment_compactness` determina la forma y el tamaño de los segmentos de imagen que se generan con el método slic scikit-image. A continuación, los tamaños y las formas de los segmentos de la imagen se transfieren al parámetro slic `compactness`.

El siguiente ejemplo de código inicia un trabajo de procesamiento de Clarify para SageMaker generar mapas térmicos para las imágenes. Los valores positivos del mapa térmico muestran que la característica aumentó la puntuación de confianza a la hora de detectar el objeto. Los valores negativos indican que la característica disminuyó la puntuación de confianza.

```
clarify_processor.run_explainability(
    data_config=cv_data_config,
    model_config=ic_model_config,
    model_scores=ic_prediction_config,
    explainability_config=ic_shap_config,
)
```

Para ver un ejemplo de cuaderno que usa SageMaker Clarify para clasificar imágenes y explicar su clasificación, consulte [Explicación de la clasificación de imágenes con SageMaker Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/computer_vision/image_classification/explainability_image_classification.ipynb).

### Cómo explicar un modelo de detección de objetos
<a name="clarify-processing-job-run-tabular-cv-object-detection"></a>

Un trabajo SageMaker de procesamiento de Clarify permite detectar y clasificar los objetos de una imagen y, a continuación, proporcionar una explicación del objeto detectado. El proceso de explicación es el siguiente.

1. Los objetos de la imagen se clasifican primero en una de las clases de una colección específica. Por ejemplo, si un modelo de detección de objetos puede reconocer gatos, perros y peces, estas tres clases forman parte de una colección. Esta colección se especifica mediante el parámetro `label_headers` de la siguiente manera.

   ```
   clarify.ModelPredictedLabelConfig(
   
   label_headers=object_categories,
   
   )
   ```

1. El trabajo SageMaker de procesamiento Clarify produce una puntuación de confianza para cada objeto. Una puntuación de confianza alta indica que pertenece a una de las clases de una colección específica. El trabajo SageMaker de procesamiento Clarify también produce las coordenadas de un cuadro delimitador que delimita el objeto. Para obtener más información acerca de las puntuaciones de confianza y los cuadros delimitadores, consulte [Formatos de respuesta](object-detection-in-formats.md#object-detection-recordio).

1. SageMaker A continuación, Clarify proporciona una explicación para la detección de un objeto en la escena de la imagen. Utiliza los métodos descritos en la sección **Cómo explicar un modelo de clasificación de imágenes**.

En el siguiente ejemplo de configuración, un modelo de detección de objetos mediante SageMaker IA `your_cv_od_model` se basa en imágenes JPEG para identificar a los animales que aparecen en ellas. 

```
od_model_config = clarify.ModelConfig(
    model_name=your_cv_ic_model,
    instance_type="ml.p2.xlarge",
    instance_count=1,
    content_type="image/jpeg",
    accept_type="application/json",
)
```

El `ModelConfig` objeto del ejemplo de configuración anterior indica al trabajo de procesamiento de SageMaker Clarify que despliegue el modelo de SageMaker IA en un punto final efímero. Para acelerar el procesamiento de las imágenes, este punto de conexión utiliza una instancia de inferencia `ml.p2.xlarge` equipada con una GPU.

En el siguiente ejemplo de configuración, el objeto `ModelPredictedLabelConfig` proporciona el nombre de cada categoría para su clasificación.

```
ic_prediction_config = clarify.ModelPredictedLabelConfig(
    label_headers=['bird', 'cat', 'dog'],
)
```

El siguiente ejemplo de configuración SHAP muestra cómo generar explicaciones para un problema de detección de objetos.

```
od_image_config = clarify.ImageConfig(
    model_type="OBJECT_DETECTION",
    num_segments=20,
    segment_compactness=5,
    max_objects=5,
    iou_threshold=0.5,
    context=1.0,
)
od_shap_config = clarify.SHAPConfig(
    num_samples=100,
    image_config=image_config,
)
```

En la configuración del ejemplo anterior, el objeto `ImageConfig` activa el análisis. El parámetro `model_type` indica que el tipo de problema es la detección de objetos. Para ver una descripción detallada del resto de parámetros, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

El siguiente ejemplo de código inicia un trabajo de procesamiento SageMaker de Clarify para generar mapas térmicos para sus imágenes. Los valores positivos del mapa térmico muestran que la característica aumentó la puntuación de confianza a la hora de detectar el objeto. Los valores negativos indican que la característica disminuyó la puntuación de confianza.

```
clarify_processor.run_explainability(
    data_config=cv_data_config,
    model_config=od_model_config,
    model_scores=od_prediction_config,
    explainability_config=od_shap_config,
)
```

Para ver un ejemplo de cuaderno que usa SageMaker Clarify para detectar objetos en una imagen y explicar sus predicciones, consulte [Explicación de los modelos de detección de objetos con Amazon SageMaker AI Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/computer_vision/object_detection/object_detection_clarify.ipynb).

## Análisis de las explicaciones de los modelos de previsión de series temporales
<a name="clarify-processing-job-run-ts"></a>

Los siguientes ejemplos muestran cómo configurar los datos en formato denso JSON de SageMaker IA para explicar un modelo de previsión de series temporales. Para obtener más información sobre el formato JSON, consulte [Formato de solicitud JSON](cdf-inference.md#cm-json).

```
[
    {
        "item_id": "item1",
        "timestamp": "2019-09-11",
        "target_value": 47650.3,
        "dynamic_feature_1": 0.4576,
        "dynamic_feature_2": 0.2164,
        "dynamic_feature_3": 0.1906,
        "static_feature_1": 3,
        "static_feature_2": 4
    },
    {
        "item_id": "item1",
        "timestamp": "2019-09-12",
        "target_value": 47380.3,
        "dynamic_feature_1": 0.4839,
        "dynamic_feature_2": 0.2274,
        "dynamic_feature_3": 0.1889,
        "static_feature_1": 3,
        "static_feature_2": 4
    },
    {
        "item_id": "item2",
        "timestamp": "2020-04-23",
        "target_value": 35601.4,
        "dynamic_feature_1": 0.5264,
        "dynamic_feature_2": 0.3838,
        "dynamic_feature_3": 0.4604,
        "static_feature_1": 1,
        "static_feature_2": 2
    },
]
```

### Configuración de datos
<a name="clarify-processing-job-run-ts-dataconfig"></a>

Utilice `TimeSeriesDataConfig` para comunicar a su trabajo de explicabilidad cómo analizar correctamente los datos del conjunto de datos de entrada pasado, como se muestra en el siguiente ejemplo de configuración:

```
time_series_data_config = clarify.TimeSeriesDataConfig(
    target_time_series='[].target_value',
    item_id='[].item_id',
    timestamp='[].timestamp',
    related_time_series=['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'],
    static_covariates=['[].static_feature_1', '[].static_feature_2'],
    dataset_format='timestamp_records',
)
```

### Configuración asimétrica de valores de Shapley
<a name="clarify-processing-job-run-ts-asymm"></a>

Utilice `AsymmetricShapleyValueConfig` para definir los argumentos del análisis de la explicación del modelo de previsión de series temporales, como la referencia, la dirección, el nivel de detalle y el número de muestras. Los valores de referencia se establecen para los tres tipos de datos: series temporales relacionadas, covariables estáticas y series temporales objetivo. La `AsymmetricShapleyValueConfig` configuración indica al procesador SageMaker Clarify cómo calcular las atribuciones de características para un elemento a la vez. La siguiente configuración muestra un ejemplo de definición de `AsymmetricShapleyValueConfig`. 

```
asymmetric_shapley_value_config = AsymmetricShapleyValueConfig(
    direction="chronological",
    granularity="fine-grained",
    num_samples=10,
    baseline={
        "related_time_series": "zero", 
        "static_covariates": {
            "item1": [0, 0], "item2": [0, 0]
        }, 
        "target_time_series": "zero"
    },
)
```

Los valores que proporcione a `AsymmetricShapleyValueConfig` se pasan a la configuración de análisis como una entrada en `methods` con la clave `asymmetric_shapley_value`.

### Configuración del modelo
<a name="clarify-processing-job-run-ts-model"></a>

Puede controlar la estructura de la carga útil enviada desde el procesador SageMaker Clarify. En el siguiente ejemplo de código, un objeto de `ModelConfig` configuración dirige una tarea de explicabilidad de previsión de series temporales a agregar registros mediante la JMESPath sintaxis`'{"instances": $records}'`, donde la estructura de cada registro se define con la siguiente plantilla de registro. `'{"start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates}'` Tenga en cuenta que `$start_time`, `$target_time_series`, `$related_time_series` y `$static_covariates` son símbolos internos que se utilizan para asignar los valores del conjunto de datos a los valores de las solicitudes de punto de conexión. 

```
model_config = clarify.ModelConfig(
    model_name=your_model,
    instance_type='ml.m4.xlarge',
    instance_count=1,
    record_template='{"start": $start_time, "target": $target_time_series, "dynamic_feat": $related_time_series, "cat": $static_covariates}',
    content_template='{"instances": $records}',,
    time_series_model_config=TimeSeriesModelConfig(
        forecast={'forecast': 'predictions[*].mean[:2]'}
    )
)
```

Del mismo modo, el atributo `forecast` de `TimeSeriesModelConfig` que se pasa a la configuración de análisis con la clave `time_series_predictor_config`, se utiliza para extraer la previsión del modelo de la respuesta del punto de conexión. Este podría ser un ejemplo de respuesta por lotes del punto de conexión:

```
{
    "predictions": [
        {"mean": [13.4, 3.6, 1.0]}, 
        {"mean": [23.0, 4.7, 3.0]}, 
        {"mean": [3.4, 5.6, 2.0]}
    ]
}
```

Si la JMESPath expresión proporcionada `forecast` es \$1'predictions [\$1] .mean [:2] '\$1\$1, el valor de la previsión se analiza de la siguiente manera: 

```
[[13.4, 3.6], [23.0, 4.7], [3.4, 5.6]]
```

## Cómo ejecutar trabajos de procesamiento de SageMaker Clarify en paralelo
<a name="clarify-processing-job-run-spark"></a>

Cuando trabaje con conjuntos de datos grandes, puede usar [Apache Spark](https://spark.apache.org/) para aumentar la velocidad de sus trabajos de procesamiento de SageMaker Clarify. Spark es un motor de análisis unificado para el procesamiento de datos a gran escala. Cuando solicitas más de una instancia por procesador SageMaker Clarify, SageMaker Clarify utiliza las capacidades de computación distribuida de Spark.

El siguiente ejemplo de configuración muestra cómo `SageMakerClarifyProcessor` crear un procesador SageMaker Clarify con instancias de `5` cómputo. Para ejecutar cualquier trabajo asociado al`SageMakerClarifyProcessor`, SageMaker Clarify utiliza el procesamiento distribuido de Spark.

```
from sagemaker import clarify

spark_clarify_processor = clarify.SageMakerClarifyProcessor(
    role=role,
    instance_count=5,
    instance_type='ml.c5.xlarge',
)
```

Si establece el `save_local_shap_values` parámetro en`True`, el trabajo de [SHAPConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SHAPConfig)procesamiento de SageMaker Clarify guarda el SHAP valor local como varios archivos de piezas en la ubicación de salida del trabajo. 

Para asociar los valores SHAP locales a las instancias del conjunto de datos de entrada, utilice el parámetro `joinsource` de `DataConfig`. Si añade más instancias de procesamiento, le recomendamos que también aumente el `instance_count` de [ModelConfig](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.ModelConfig)para el punto final efímero. Esto evita que las solicitudes de inferencia simultáneas de los trabajadores de Spark sobrecarguen el punto de conexión. En concreto, te recomendamos que utilices una one-to-one proporción de endpoint-to-processing instancias.

# Resultados del análisis
<a name="clarify-processing-job-analysis-results"></a>

Una vez SageMaker finalizado un trabajo de procesamiento de Clarify, puede descargar los archivos de salida para inspeccionarlos o puede visualizar los resultados en SageMaker Studio Classic. En el siguiente tema se describen los resultados del análisis que SageMaker genera Clarify, como el esquema y el informe que se generan mediante el análisis de sesgos, el análisis SHAP, el análisis de explicabilidad mediante visión artificial y el análisis de gráficas de dependencia parcial ()PDPs. Si el análisis de configuración contiene parámetros para calcular varios análisis, los resultados se agregan en un análisis y un archivo de informe.

El directorio de salida de los trabajos de procesamiento de SageMaker Clarify contiene los siguientes archivos:
+ `analysis.json`: un archivo que contiene las métricas de sesgo y la importancia de las características en formato JSON.
+ `report.ipynb`: un cuaderno estático que contiene código para ayudarle a visualizar las métricas de sesgo y la importancia de las características.
+ `explanations_shap/out.csv`: un directorio que se crea y contiene archivos generados automáticamente en función de sus configuraciones de análisis específicas. Por ejemplo, si activa el parámetro `save_local_shap_values`, los valores SHAP locales por instancia se guardarán en el directorio `explanations_shap`. Como otro ejemplo, si `analysis configuration` no contiene un valor para el parámetro de referencia de SHAP, el trabajo de explicabilidad de SageMaker Clarify calcula una línea de base agrupando el conjunto de datos de entrada. A continuación, guarda la referencia generada en el directorio.

Para obtener más información, consulte las siguientes secciones.

**Topics**
+ [Análisis del sesgo](#clarify-processing-job-analysis-results-bias)
+ [Análisis SHAP](#clarify-processing-job-analysis-results-shap)
+ [Análisis de explicabilidad de la visión artificial (CV)](#clarify-processing-job-analysis-results-cv)
+ [Análisis de gráficas de dependencia parcial (PDPs)](#clarify-processing-job-analysis-results-pdp)
+ [Valores asimétricos de Shapley](#clarify-processing-job-analysis-results-asymmshap)

## Análisis del sesgo
<a name="clarify-processing-job-analysis-results-bias"></a>

Amazon SageMaker Clarify utiliza la terminología documentada [Amazon SageMaker aclara los términos de sesgo y equidad](clarify-detect-data-bias.md#clarify-bias-and-fairness-terms) para hablar sobre los prejuicios y la imparcialidad.

### Esquema del archivo de análisis
<a name="clarify-processing-job-analysis-results-bias-schema"></a>

El archivo de análisis está en formato JSON y está organizado en dos secciones: métricas de sesgo previas al entrenamiento y métricas de sesgo posteriores al entrenamiento. Los parámetros de las métricas de sesgo antes y después del entrenamiento son los siguientes.
+ **pre\$1training\$1bias\$1metrics**: parámetros para las métricas de sesgo previas al entrenamiento. Para obtener más información, consulte [Métricas de sesgo previas al entrenamiento](clarify-measure-data-bias.md) y [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).
  + **label**: el nombre de la etiqueta de verdad fundamental definido por el parámetro de configuración del análisis `label`.
  + **label\$1value\$1or\$1threshold**: cadena que contiene los valores de etiqueta o el intervalo definidos por el parámetro de configuración del análisis `label_values_or_threshold`. Por ejemplo, si se proporciona un valor de `1` para un problema de clasificación binaria, la cadena será `1`. Si se proporcionan varios valores `[1,2]` para un problema multiclase, entonces la cadena será `1,2`. Si se proporciona un umbral de `40` para un problema de regresión, la cadena será interna, como `(40, 68]` donde `68` es el valor máximo de la etiqueta en el conjunto de datos de entrada.
  + **facets**: la sección contiene varios pares clave-valor, donde la clave corresponde al nombre de la faceta definido por el parámetro `name_or_index` de la configuración de la faceta, y el valor es una matriz de objetos facetados. Cada objeto facetado tiene los siguientes miembros:
    + **value\$1or\$1threshold**: cadena que contiene los valores de la faceta o el intervalo definidos por el parámetro de configuración del análisis `value_or_threshold`.
    + **metrics**: la sección contiene una matriz de elementos de métrica de sesgo y cada elemento de métrica de sesgo tiene los siguientes atributos:
      + **name**: el nombre abreviado de la métrica de sesgo. Por ejemplo, `CI`. 
      + **description**: el nombre completo de la métrica de sesgo. Por ejemplo, `Class Imbalance (CI)`.
      + **value**: el valor de la métrica de sesgo o el valor nulo de JSON si la métrica de sesgo no se calcula por un motivo concreto. Los valores ±∞ se representan como cadenas `∞` y `-∞` respectivamente.
      + **error**: mensaje de error opcional que explica por qué no se calculó la métrica de sesgo.
+ **post\$1training\$1bias\$1metrics**: la sección contiene las métricas de sesgo posteriores al entrenamiento y sigue un diseño y una estructura similares a los de la sección previa al entrenamiento. Para obtener más información, consulte [Métricas del sesgo de los datos y el modelo posterior al entrenamiento](clarify-measure-post-training-bias.md).

El siguiente es un ejemplo de una configuración de análisis que calculará las métricas de sesgo previas y posteriores al entrenamiento.

```
{
    "version": "1.0",
    "pre_training_bias_metrics": {
        "label": "Target",
        "label_value_or_threshold": "1",
        "facets": {
            "Gender": [{
                "value_or_threshold": "0",
                "metrics": [
                    {
                        "name": "CDDL",
                        "description": "Conditional Demographic Disparity in Labels (CDDL)",
                        "value": -0.06
                    },
                    {
                        "name": "CI",
                        "description": "Class Imbalance (CI)",
                        "value": 0.6
                    },
                    ...
                ]
            }]
        }
    },
    "post_training_bias_metrics": {
        "label": "Target",
        "label_value_or_threshold": "1",
        "facets": {
            "Gender": [{
                "value_or_threshold": "0",
                "metrics": [
                    {
                        "name": "AD",
                        "description": "Accuracy Difference (AD)",
                        "value": -0.13
                    },
                    {
                        "name": "CDDPL",
                        "description": "Conditional Demographic Disparity in Predicted Labels (CDDPL)",
                        "value": 0.04
                    },
                    ...
                ]
            }]
        }
    }
}
```

### Informe de análisis del sesgo
<a name="clarify-processing-job-analysis-results-bias-report"></a>

El informe de análisis del sesgo incluye varias tablas y diagramas que contienen explicaciones y descripciones detalladas. Incluyen, entre otras cosas, la distribución de los valores de las etiquetas, la distribución de los valores de las facetas, un diagrama de rendimiento del modelo de alto nivel, una tabla de métricas de sesgo y sus descripciones. Para obtener más información sobre las métricas de sesgo y cómo interpretarlas, consulte [Aprenda cómo Amazon SageMaker Clarify ayuda a detectar el sesgo](https://aws.amazon.com/blogs/machine-learning/learn-how-amazon-sagemaker-clarify-helps-detect-bias/).

## Análisis SHAP
<a name="clarify-processing-job-analysis-results-shap"></a>

SageMaker Los trabajos de procesamiento de Clarify utilizan el algoritmo SHAP del núcleo para calcular las atribuciones de las características. El trabajo SageMaker de procesamiento de Clarify produce valores SHAP locales y globales. Estos ayudan a determinar la contribución de cada característica a las predicciones del modelo. Los valores SHAP locales representan la importancia de la característica para cada instancia individual, mientras que los valores SHAP globales agregan los valores SHAP locales de todas las instancias del conjunto de datos. Para obtener más información acerca de los valores SHAP y cómo interpretarlos, consulte [Atribuciones de características que utilizan valores Shapley](clarify-shapley-values.md).

### Esquema del archivo de análisis SHAP
<a name="clarify-processing-job-analysis-results-shap-schema"></a>

Los resultados del análisis SHAP global se almacenan en la sección de explicaciones del archivo de análisis, en la sección correspondiente al método `kernel_shap`. Los diferentes parámetros del archivo de análisis SHAP son los siguientes:
+ **explanations**: la sección del archivo de análisis que contiene los resultados del análisis de importancia de las características.
  + **kernal\$1shap**: sección del archivo de análisis que contiene el resultado del análisis SHAP global.
    + **global\$1shap\$1values**: sección del archivo de análisis que contiene varios pares clave-valor. Cada clave del par clave-valor representa un nombre de característica del conjunto de datos de entrada. Cada valor del par clave-valor corresponde al valor SHAP global de la característica. El valor SHAP global se obtiene al agregar los valores SHAP por instancia de la característica mediante la configuración `agg_method`. Si la configuración `use_logit` está activada, el valor se calcula mediante los coeficientes de regresión logística, que se pueden interpretar como coeficientes logarítmicos de probabilidades.
    + **expected\$1value**: la predicción media del conjunto de datos de referencia. Si la configuración `use_logit` está activada, el valor se calcula mediante coeficientes de regresión logística.
    + **global\$1top\$1shap\$1text**: se utiliza para el análisis de explicabilidad del NLP. Sección del archivo de análisis que incluye un conjunto de pares clave-valor. SageMaker Los trabajos de procesamiento de Clarify agregan los valores de SHAP de cada token y, a continuación, seleccionan los principales tokens en función de sus valores de SHAP globales. La configuración `max_top_tokens` define el número de tokens que se van a seleccionar. 

      Cada uno de los principales tokens seleccionados tiene un par clave-valor. La clave del par clave-valor corresponde al nombre de la característica de texto de un token principal. Cada valor del par clave-valor son los valores SHAP globales del token principal. Para ver un ejemplo de un par clave-valor `global_top_shap_text`, consulte la siguiente salida.

A continuación, se muestra un ejemplo de salida del análisis de SHAP de un conjunto de datos tabular.

```
{
    "version": "1.0",
    "explanations": {
        "kernel_shap": {
            "Target": {
                 "global_shap_values": {
                    "Age": 0.022486410860333206,
                    "Gender": 0.007381025261958729,
                    "Income": 0.006843906804137847,
                    "Occupation": 0.006843906804137847,
                    ...
                },
                "expected_value": 0.508233428001
            }
        }
    }
}
```

A continuación, se muestra un ejemplo de salida del análisis de SHAP de un conjunto de datos de texto. La salida correspondiente a la columna `Comments` es un ejemplo de salida que se genera después del análisis de una característica de texto.

```
{
    "version": "1.0",
    "explanations": {
        "kernel_shap": {
            "Target": {
               "global_shap_values": {
                    "Rating": 0.022486410860333206,
                    "Comments": 0.058612104851485144,
                    ...
                },
                "expected_value": 0.46700941970297033,
                "global_top_shap_text": {
                    "charming": 0.04127962903247833,
                    "brilliant": 0.02450240786522321,
                    "enjoyable": 0.024093569652715457,
                    ...
                }
            }
        }
    }
}
```

### Esquema del archivo de referencia generado
<a name="clarify-processing-job-analysis-results-baseline-schema"></a>

Cuando no se proporciona una configuración de referencia de SHAP, el trabajo de procesamiento de SageMaker Clarify genera un conjunto de datos de referencia. SageMaker Clarify utiliza un algoritmo de agrupamiento basado en la distancia para generar un conjunto de datos de referencia a partir de los clústeres creados a partir del conjunto de datos de entrada. El conjunto de datos de referencia resultante se guarda en un archivo CSV, ubicado en `explanations_shap/baseline.csv`. Este archivo de salida contiene una fila de encabezado y varias instancias en función del parámetro `num_clusters` especificado en la configuración del análisis. El conjunto de datos de referencia solo consta de columnas de características. El siguiente ejemplo muestra una referencia creada mediante al agrupar en clúster el conjunto de datos de entrada.

```
Age,Gender,Income,Occupation
35,0,2883,1
40,1,6178,2
42,0,4621,0
```

### Esquema de valores SHAP locales a partir del análisis de explicabilidad de un conjunto de datos tabulares
<a name="clarify-processing-job-analysis-results-tabular-schema"></a>

En el caso de los conjuntos de datos tabulares, si se utiliza una sola instancia de procesamiento, el trabajo de procesamiento de SageMaker Clarify guarda los valores SHAP locales en un archivo CSV denominado. `explanations_shap/out.csv` Si utiliza varias instancias de computación, los valores SHAP locales se guardan en varios archivos CSV del directorio `explanations_shap`.

Un archivo de salida que contiene valores SHAP locales tiene una fila que contiene los valores SHAP locales de cada columna definida en los encabezados. Los encabezados siguen la convención de nomenclatura de `Feature_Label`, donde el nombre de la característica se anexa con un guion bajo seguido del nombre de la variable objetivo. 

En el caso de problemas multiclase, primero varían los nombres de las características en el encabezado y luego las etiquetas. Por ejemplo, dos características `F1, F2`, y dos clases `L1` y `L2`, en los encabezados son `F1_L1`, `F2_L1`, `F1_L2` y `F2_L2`. Si la configuración de análisis contiene un valor para el parámetro `joinsource_name_or_index`, la columna de clave utilizada en la unión se anexa al final del nombre del encabezado. Esto permite asignar los valores SHAP locales a instancias del conjunto de datos de entrada. A continuación, se muestra un ejemplo de un archivo de salida que contiene valores SHAP.

```
Age_Target,Gender_Target,Income_Target,Occupation_Target
0.003937908,0.001388849,0.00242389,0.00274234
-0.0052784,0.017144491,0.004480645,-0.017144491
...
```

### Esquema de valores SHAP locales a partir del análisis de explicabilidad del NLP
<a name="clarify-processing-job-analysis-results-nlp-schema"></a>

Para el análisis de explicabilidad de la PNL, si se utiliza una sola instancia de procesamiento, el trabajo de procesamiento de Clarify guarda los SageMaker valores SHAP locales en un archivo de líneas JSON denominado. `explanations_shap/out.jsonl` Si utiliza varias instancias de computación, los valores SHAP locales se guardan en varios archivos JSON Lines del directorio `explanations_shap`.

Cada archivo que contiene valores SHAP locales tiene varias líneas de datos y cada línea es un objeto JSON válido. El objeto JSON tiene los siguientes atributos:
+ **explanations**: la sección del archivo de análisis que contiene una serie de explicaciones Kernel SHAP para una sola instancia. Cada elemento de la matriz tiene los siguientes miembros:
  + **feature\$1name**: el nombre del encabezado de las características proporcionado por la configuración del encabezado.
  + **data\$1type: el tipo de** función que deduce el trabajo de procesamiento de Clarify. SageMaker Los valores válidos para las características de texto incluyen `numerical`, `categorical` y `free_text` (para las características de texto).
  + **attributions**: conjunto de objetos de atribución específicos de una característica. Una característica de texto puede tener varios objetos de atribución, cada uno para una unidad definida por la configuración `granularity`. El objeto de atribución tiene los siguientes miembros:
    + **attribution**: conjunto de valores de probabilidad específico de una clase.
    + **description**: (para las características del texto). La descripción de las unidades de texto.
      + **partial\$1text: la parte del texto** explicada por el trabajo de procesamiento de Clarify. SageMaker 
      + **start\$1idx**: un índice de base cero para identificar la ubicación de la matriz que indica el principio del fragmento de texto parcial.

El siguiente es un ejemplo de una sola línea de un archivo de valores SHAP local, embellecido para mejorar su legibilidad.

```
{
    "explanations": [
        {
            "feature_name": "Rating",
            "data_type": "categorical",
            "attributions": [
                {
                    "attribution": [0.00342270632248735]
                }
            ]
        },
        {
            "feature_name": "Comments",
            "data_type": "free_text",
            "attributions": [
                {
                    "attribution": [0.005260534499999983],
                    "description": {
                        "partial_text": "It's",
                        "start_idx": 0
                    }
                },
                {
                    "attribution": [0.00424190349999996],
                    "description": {
                        "partial_text": "a",
                        "start_idx": 5
                    }
                },
                {
                    "attribution": [0.010247314500000014],
                    "description": {
                        "partial_text": "good",
                        "start_idx": 6
                    }
                },
                {
                    "attribution": [0.006148907500000005],
                    "description": {
                        "partial_text": "product",
                        "start_idx": 10
                    }
                }
            ]
        }
    ]
}
```

### Informe de análisis SHAP
<a name="clarify-processing-job-analysis-results-shap-report"></a>

El informe de análisis SHAP proporciona un gráfico de barras con un máximo de `10` valores SHAP principales globales. El siguiente ejemplo de gráfico muestra los valores SHAP de las `4` características principales.

![\[Gráfico de barras horizontales de valores SHAP globales calculados para la variable objetivo de las cuatro características principales.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify/shap-chart.png)


## Análisis de explicabilidad de la visión artificial (CV)
<a name="clarify-processing-job-analysis-results-cv"></a>

SageMaker La explicabilidad de la visión artificial de Clarify toma un conjunto de datos compuesto por imágenes y trata cada imagen como una colección de superpíxeles. Tras el análisis, el trabajo SageMaker de procesamiento Clarify genera un conjunto de datos de imágenes en el que cada imagen muestra el mapa térmico de los superpíxeles.

El siguiente ejemplo muestra una señal de límite de velocidad de entrada a la izquierda y un mapa térmico muestra la magnitud de los valores SHAP a la derecha. Estos valores SHAP se calcularon mediante un modelo Resnet-18 de reconocimiento de imágenes que está entrenado para reconocer las [señales de tráfico alemanas](https://benchmark.ini.rub.de/gtsrb_news.html). El conjunto de datos German Traffic Sign Recognition Benchmark (GTSRB) se incluye en el artículo [Man vs. computer: Benchmarking machine learning algorithms for traffic sign recognition](https://www.sciencedirect.com/science/article/abs/pii/S0893608012000457?via%3Dihub). En el resultado del ejemplo, los valores positivos altos indican que el superpíxel tiene una fuerte correlación positiva con la predicción del modelo. Los valores negativos altos indican que el superpíxel tiene una fuerte correlación negativa con la predicción del modelo. Cuanto mayor sea el valor absoluto del valor SHAP que se muestra en el mapa térmico, más fuerte será la relación entre el superpíxel y la predicción del modelo.

![\[Imagen de entrada de señal de límite de velocidad y mapa térmico resultante de valores SHAP de un modelo Resnet-18.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify/shap_speed-limit-70.png)


Para obtener más información, consulte los cuadernos de muestra [que explican la clasificación de imágenes con SageMaker Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/computer_vision/image_classification/explainability_image_classification.ipynb) y [Explican los modelos de detección de objetos con Amazon SageMaker Clarify.](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/computer_vision/object_detection/object_detection_clarify.ipynb)

## Análisis de gráficas de dependencia parcial (PDPs)
<a name="clarify-processing-job-analysis-results-pdp"></a>

Los gráficos de dependencia parcial muestran la dependencia de la respuesta objetivo prevista con respecto a un conjunto de características de entrada de interés. Están marginadas sobre los valores de todas las demás características de entrada y se denominan características de complemento. De forma intuitiva, puede interpretar la dependencia parcial como la respuesta objetivo, que se espera como una función de cada característica de entrada de interés.

### Esquema del archivo de análisis
<a name="clarify-processing-job-analysis-results-pdp-schema"></a>

Los valores PDP se almacenan en la sección `explanations` del archivo de análisis correspondiente al método `pdp`. Los parámetros de `explanations` son los siguientes:
+ **explanations**: la sección de los archivos de análisis que contiene los resultados del análisis de importancia de las características.
  + **pdp**: la sección del archivo de análisis que contiene una matriz de explicaciones PDP para una sola instancia. Cada elemento de la matriz tiene los siguientes miembros:
    + **feature\$1name**: el nombre del encabezado de las características proporcionado por la configuración de `headers`.
    + **data\$1type: el tipo** de función inferido por el trabajo de procesamiento de SageMaker Clarify. Los valores válidos de `data_type` incluyen los numéricos y los categóricos.
    + **feature\$1values**: contiene los valores presentes en la característica. Si lo `data_type` inferido por SageMaker Clarify es categórico, `feature_values` contiene todos los valores únicos que podría tener la entidad. Si lo `data_type` inferido por SageMaker Clarify es numérico, `feature_values` contiene una lista del valor central de los cubos generados. El parámetro `grid_resolution` determina el número de buckets que se utilizan para agrupar los valores de la columna de características.
    + **data\$1distribution**: matriz de porcentajes en la que cada valor es el porcentaje de instancias que contiene un bucket. El parámetro `grid_resolution` determina el número de buckets. Los valores de la columna de características se agrupan en estos buckets.
    + **model\$1predictions**: matriz de predicciones del modelo, en la que cada elemento de la matriz es una matriz de predicciones que corresponde a una clase de la salida del modelo.

      **label\$1headers**: los encabezados de etiquetas proporcionados por la configuración `label_headers`.
    + **error**: se genera un mensaje de error si los valores PDP no se calculan por un motivo determinado. Este mensaje de error reemplaza el contenido de los campos `feature_values`, `data_distributions` y `model_predictions`.

A continuación se muestra un ejemplo de la salida de un archivo de análisis que contiene el resultado de un análisis PDP.

```
{
    "version": "1.0",
    "explanations": {
        "pdp": [
            {
                "feature_name": "Income",
                "data_type": "numerical",
                "feature_values": [1046.9, 2454.7, 3862.5, 5270.2, 6678.0, 8085.9, 9493.6, 10901.5, 12309.3, 13717.1],
                "data_distribution": [0.32, 0.27, 0.17, 0.1, 0.045, 0.05, 0.01, 0.015, 0.01, 0.01],
                "model_predictions": [[0.69, 0.82, 0.82, 0.77, 0.77, 0.46, 0.46, 0.45, 0.41, 0.41]],
                "label_headers": ["Target"]
            },
            ...
        ]
    }
}
```

### Informe de análisis PDP
<a name="clarify-processing-job-analysis-results-pdp-report"></a>

Puede generar un informe de análisis que contenga un gráfico PDP para cada característica. El gráfico PDP traza los `feature_values` a lo largo del eje x y traza las `model_predictions` a lo largo del eje y. Para los modelos multiclase, `model_predictions` es una matriz y cada elemento de esta matriz corresponde a una de las clases de predicción del modelo.

El siguiente es un ejemplo de gráfico PDP para la característica `Age`. En la salida de ejemplo, el PDP muestra el número de valores de la característica que están agrupados en buckets. El número de buckets viene determinado por `grid_resolution`. Los buckets de valores de las características se representan gráficamente en función de las predicciones del modelo. En este ejemplo, los valores de la característica más altos tienen los mismos valores de predicción del modelo.

![\[Gráfico de líneas que muestra cómo varían las predicciones del modelo frente a los feature_values para 10 puntos de cuadrícula únicos.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify/pdp-chart.png)


## Valores asimétricos de Shapley
<a name="clarify-processing-job-analysis-results-asymmshap"></a>

SageMaker Los trabajos de procesamiento de Clarify utilizan el algoritmo de valores asimétricos de Shapley para calcular las atribuciones explicativas del modelo de previsión de series temporales. Este algoritmo determina la contribución de las características de entrada en cada paso temporal en las predicciones pronosticadas.

### Esquema del archivo de análisis de valores asimétricos de Shapley
<a name="clarify-processing-job-analysis-results-shap-schema-assym"></a>

Los resultados de los valores asimétricos de Shapley se almacenan en un bucket de Amazon S3. Puede encontrar la ubicación de este bucket en la sección de *explicaciones* del archivo de análisis. Esta sección contiene los resultados del análisis de importancia de las características. Los siguientes parámetros se incluyen en el archivo de análisis de valores asimétricos de Shapley.
+ **asymmetric\$1shapley\$1value**: sección del archivo de análisis que contiene metadatos sobre los resultados del trabajo de explicación, incluidos los siguientes:
  + **explanation\$1results\$1path**: ubicación de Amazon S3 con los resultados de la explicación
  + **direction**: configuración proporcionada por el usuario para el valor de configuración de `direction`
  + **granularity**: configuración proporcionada por el usuario para el valor de configuración de `granularity`

El siguiente fragmento muestra los parámetros mencionados anteriormente en un archivo de análisis de ejemplo:

```
{
    "version": "1.0",
    "explanations": {
        "asymmetric_shapley_value": {
            "explanation_results_path": EXPLANATION_RESULTS_S3_URI,
           "direction": "chronological",
           "granularity": "timewise",
        }
    }
}
```

En las siguientes secciones, se describe cómo la estructura de los resultados de la explicación depende del valor de `granularity` en la configuración.

#### Nivel de detalle basado en tiempo
<a name="clarify-processing-job-analysis-results-shap-schema-timewise"></a>

Cuando el nivel de detalle es `timewise`, la salida se representa en la siguiente estructura. El valor `scores` representa la atribución de cada marca de tiempo. El valor `offset` representa la predicción del modelo sobre los datos de referencia y describe el comportamiento del modelo cuando no recibe datos.

En el siguiente fragmento, se muestra un ejemplo de la salida de un modelo que hace predicciones para dos pasos temporales. Por lo tanto, todas las atribuciones son una lista de dos elementos, donde la primera entrada se refiere al primer intervalo de tiempo pronosticado.

```
{
    "item_id": "item1",
    "offset": [1.0, 1.2],
    "explanations": [
        {"timestamp": "2019-09-11 00:00:00", "scores": [0.11, 0.1]},
        {"timestamp": "2019-09-12 00:00:00", "scores": [0.34, 0.2]},
        {"timestamp": "2019-09-13 00:00:00", "scores": [0.45, 0.3]},
    ]
}
{
    "item_id": "item2",
    "offset": [1.0, 1.2],
    "explanations": [
        {"timestamp": "2019-09-11 00:00:00", "scores": [0.51, 0.35]},
        {"timestamp": "2019-09-12 00:00:00", "scores": [0.14, 0.22]},
        {"timestamp": "2019-09-13 00:00:00", "scores": [0.46, 0.31]},
    ]
}
```

#### Nivel de detalle afinado
<a name="clarify-processing-job-analysis-results-shap-schema-fine"></a>

El siguiente ejemplo muestra los resultados de la atribución cuando la el nivel de detalle es `fine_grained`. El valor `offset` tiene el mismo significado que el descrito en la sección anterior. Las atribuciones se calculan para cada característica de entrada en cada marca de tiempo para una serie temporal objetivo y series temporales relacionadas, si hay disponibles, además de para cada covariable estática, si hay alguna disponible.

```
{
    "item_id": "item1",
    "offset": [1.0, 1.2],
    "explanations": [
        {"feature_name": "tts_feature_name_1", "timestamp": "2019-09-11 00:00:00", "scores": [0.11, 0.11]},
        {"feature_name": "tts_feature_name_1", "timestamp": "2019-09-12 00:00:00", "scores": [0.34, 0.43]},
        {"feature_name": "tts_feature_name_2", "timestamp": "2019-09-11 00:00:00", "scores": [0.15, 0.51]},
        {"feature_name": "tts_feature_name_2", "timestamp": "2019-09-12 00:00:00", "scores": [0.81, 0.18]},
        {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-11 00:00:00", "scores": [0.01, 0.10]},
        {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-12 00:00:00", "scores": [0.14, 0.41]},
        {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-13 00:00:00", "scores": [0.95, 0.59]},
        {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-14 00:00:00", "scores": [0.95, 0.59]},
        {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-11 00:00:00", "scores": [0.65, 0.56]},
        {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-12 00:00:00", "scores": [0.43, 0.34]},
        {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-13 00:00:00", "scores": [0.16, 0.61]},
        {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-14 00:00:00", "scores": [0.95, 0.59]},
        {"feature_name": "static_covariate_1", "scores": [0.6, 0.1]},
        {"feature_name": "static_covariate_2", "scores": [0.1, 0.3]},
    ]
}
```

Para ambos casos de uso, `timewise` y `fine-grained`, los resultados se almacenan en el formato JSON Lines (.jsonl).

# Solucione problemas de Clarify SageMaker Processing Jobs
<a name="clarify-processing-job-run-troubleshooting"></a>

 Si encuentra errores en los trabajos de SageMaker procesamiento de Clarify, consulte los siguientes escenarios para ayudar a identificar el problema.

**nota**  
El motivo del error y el mensaje de salida se han diseñado para contener mensajes descriptivos y excepciones, si se encuentran, durante la ejecución. Un motivo frecuente de los errores es que falten parámetros o no sean válidos. Si ve mensajes poco claros, confusos o engañosos o no encuentra una solución, envíe sus comentarios.

**Topics**
+ [El trabajo de procesamiento no finaliza](#clarify-troubleshooting-job-fails)
+ [El trabajo de procesamiento tarda demasiado en ejecutarse](#clarify-troubleshooting-job-long)
+ [El trabajo de procesamiento finaliza sin resultados y aparece un mensaje de CloudWatch advertencia](#clarify-troubleshooting-no-results-and-warning)
+ [Mensaje de error de configuración de análisis no válida](#clarify-troubleshooting-invalid-analysis-configuration)
+ [El cálculo de las métricas de sesgo produce un error en varias o en todas las métricas](#clarify-troubleshooting-bias-metric-computation-fails)
+ [Discrepancia entre la configuración del análisis y la entrada/salida dataset/model](#clarify-troubleshooting-mismatch-analysis-config-and-data-model)
+ [El modelo devuelve un error interno de servidor 500 o el contenedor recurre a las predicciones por registro debido a un error del modelo](#clarify-troubleshooting-500-internal-server-error)
+ [El rol de ejecución no es válido](#clarify-troubleshooting-execution-role-invalid)
+ [No se pudieron descargar los datos](#clarify-troubleshooting-data-download)
+ [No se ha podido conectar a la IA SageMaker](#clarify-troubleshooting-connection)

## El trabajo de procesamiento no finaliza
<a name="clarify-troubleshooting-job-fails"></a>

Si el trabajo de procesamiento no finaliza, pruebe lo siguiente:
+ Inspeccione los registros de trabajos directamente en el cuaderno en el que ejecutó el trabajo. Los registros del trabajo se encuentran en la salida de la celda del cuaderno en la que se inició la ejecución.
+ Inspeccione los inicios de sesión del trabajo CloudWatch.
+ Agregue la siguiente línea a su cuaderno para describir el último trabajo de procesamiento y busque el motivo del error y el mensaje de salida:
  + `clarify_processor.jobs[-1].describe()`
+ Ejecute el siguiente AWS CLI comando para describir el trabajo de procesamiento y buscar el motivo del error y el mensaje de salida:
  + `aws sagemaker describe-processing-job —processing-job-name <processing-job-id>`

## El trabajo de procesamiento tarda demasiado en ejecutarse
<a name="clarify-troubleshooting-job-long"></a>

Si el trabajo de procesamiento tarda demasiado en ejecutarse, utilice las siguientes formas de encontrar la causa raíz.

Compruebe si la configuración de los recursos es suficiente para gestionar la carga de computación. Para acelerar el trabajo, pruebe lo siguiente:
+ Usa un tipo de instancia más grande. SageMaker Clarify consulta el modelo repetidamente, y una instancia más grande puede reducir considerablemente el tiempo de cálculo. Para ver una lista de las instancias disponibles, sus tamaños de memoria, ancho de banda y otros detalles de rendimiento, consulta los [precios de Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing/).
+ Añada más instancias. SageMaker Clarify puede usar varias instancias para explicar varios puntos de datos de entrada en paralelo. Para habilitar la computación en paralelo, configure su `instance_count`en más de `1` cuando llame al `SageMakerClarifyProcessor`. Para obtener más información, consulte [Cómo ejecutar trabajos de procesamiento de SageMaker Clarify en paralelo](clarify-processing-job-run.md#clarify-processing-job-run-spark). Si aumenta el número de instancias, supervise el rendimiento de su punto de conexión para comprobar si puede implementar el aumento de carga. Para obtener más información, consulte [Captura de datos del punto de conexión en tiempo real](model-monitor-data-capture-endpoint.md). 
+ Si calcula valores SHapley Additive exPlanations (SHAP), reduzca el parámetro `num_samples` en el archivo de configuración del análisis. El número de muestras afecta directamente a lo siguiente:
  + El tamaño de los conjuntos de datos sintéticos que se envían a su punto de conexión
  + El tiempo de ejecución

  Reducir el número de muestras también puede reducir la precisión en la estimación de los valores SHAP. Para obtener más información, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

## El trabajo de procesamiento finaliza sin resultados y aparece un mensaje de CloudWatch advertencia
<a name="clarify-troubleshooting-no-results-and-warning"></a>

Si el trabajo de procesamiento finaliza pero no se encuentra ningún resultado, los CloudWatch registros muestran un mensaje de advertencia que indica que se ha recibido la señal 15 y se está limpiando. Esta advertencia indica que el trabajo se detuvo porque una solicitud de un cliente llamó a la `StopProcessingJob` API o porque se agotó el tiempo asignado para completarlo. En este último caso, compruebe el tiempo de ejecución máximo en la configuración del trabajo (`max_runtime_in_seconds`) y auméntelo según sea necesario.

## Mensaje de error de configuración de análisis no válida
<a name="clarify-troubleshooting-invalid-analysis-configuration"></a>
+  Si aparece el mensaje de error Unable to load analysis configuration as JSON., esto significa que el archivo de entrada de la configuración del análisis para el trabajo de procesamiento no contiene un objeto JSON válido. Compruebe la validez del objeto JSON mediante un linter de JSON.
+ Si aparece el mensaje de error Analysis configuration schema validation error., esto significa que el archivo de entrada de la configuración del análisis para el trabajo de procesamiento contiene campos desconocidos o tipos no válidos para algunos valores de campo. Revise los parámetros de configuración del archivo y compruébelos con los parámetros que figuran en el archivo de configuración del análisis. Para obtener más información, consulte [Archivos de configuración del análisis](clarify-processing-job-configure-analysis.md).

## El cálculo de las métricas de sesgo produce un error en varias o en todas las métricas
<a name="clarify-troubleshooting-bias-metric-computation-fails"></a>

Si recibe uno de los siguientes mensajes de error No Label values are present in the predicted Label Column, Positive Predicted Index Series contains all False values. o Predicted Label Column series data type is not the same as Label Column series., pruebe lo siguiente:
+ Compruebe que se está utilizando el conjunto de datos correcto.
+ Compruebe si el tamaño del conjunto de datos es demasiado pequeño; si, por ejemplo, contiene solo unas pocas filas. Esto puede provocar que las salidas del modelo tengan el mismo valor o que el tipo de datos se infiera incorrectamente.
+ Compruebe si la etiqueta o la faceta se consideran continuas o categóricas. SageMaker Clarify utiliza la heurística para determinar la. [https://github.com/aws/amazon-sagemaker-clarify/blob/master/src/smclarify/bias/metrics/common.py#L114)](https://github.com/aws/amazon-sagemaker-clarify/blob/master/src/smclarify/bias/metrics/common.py#L114)) En el caso de las métricas de sesgo posteriores al entrenamiento, es posible que el tipo de datos devuelto por el modelo no coincida con el contenido del conjunto de datos o SageMaker que Clarify no pueda transformarlos correctamente. 
  + En el informe de sesgo, debería ver un valor único para las columnas categóricas o un intervalo para las columnas continuas.
  + Por ejemplo, si una columna tiene valores 0,0 y 1,0 como flotantes, se considerará continua incluso si hay muy pocos valores únicos.

## Discrepancia entre la configuración del análisis y la entrada/salida dataset/model
<a name="clarify-troubleshooting-mismatch-analysis-config-and-data-model"></a>
+ Compruebe que el formato de referencia de la configuración de análisis es el mismo que el formato del conjunto de datos.
+ Si recibe el mensaje de error Could not convert string to float., compruebe que el formato se ha especificado correctamente. También podría indicar que las predicciones del modelo tienen un formato diferente al de la columna de etiquetas o podría indicar que la configuración de la etiqueta o las probabilidades es incorrecta.
+ Si recibe el mensaje de error Unable to locate the facet. o Headers must contain label. o Headers in config do not match with the number of columns in the dataset. o Feature names not found., compruebe que los encabezados coinciden con las columnas.
+ Si recibe el mensaje de error Data must contain features., compruebe la plantilla de contenido de JSON Lines y compárela con el ejemplo del conjunto de datos, si está disponible.

## El modelo devuelve un error interno de servidor 500 o el contenedor recurre a las predicciones por registro debido a un error del modelo
<a name="clarify-troubleshooting-500-internal-server-error"></a>

Si recibe el mensaje de error Fallback to per-record prediction because of model error., esto podría indicar que el modelo no puede gestionar el tamaño del lote, está limitado o simplemente no acepta la entrada pasada por el contenedor debido a problemas de serialización. Debe revisar los CloudWatch registros del punto final de la SageMaker IA y buscar mensajes de error o rastreos. Para los casos de limitación de modelos, puede ser útil utilizar un tipo de instancia diferente o aumentar el número de instancias del punto de conexión.

## El rol de ejecución no es válido
<a name="clarify-troubleshooting-execution-role-invalid"></a>

Esto indica que el rol proporcionado es incorrecto o que faltan los permisos necesarios. Compruebe el rol y los permisos que se utilizaron para configurar el trabajo de procesamiento y compruebe la política de permisos y confianza del rol.

## No se pudieron descargar los datos
<a name="clarify-troubleshooting-data-download"></a>

Esto indica que no se pudieron descargar las entradas del trabajo para que se iniciara el trabajo. Compruebe el nombre del bucket y los permisos del conjunto de datos y las entradas de configuración.

## No se ha podido conectar a la IA SageMaker
<a name="clarify-troubleshooting-connection"></a>

Esto indica que el trabajo no pudo llegar a los puntos finales del servicio de SageMaker IA. Compruebe los ajustes de red para el trabajo de procesamiento y verifique la configuración de la nube privada virtual (VPC).

## Cuadernos de ejemplo
<a name="clarify-fairness-and-explainability-sample-notebooks"></a>

Las siguientes secciones contienen cuadernos que le ayudarán a empezar a utilizar SageMaker Clarify, para utilizarla en tareas especiales, incluidas las que se encuentran dentro de un trabajo distribuido, y para la visión artificial.

### Introducción
<a name="clarify-fairness-and-explainability-sample-notebooks-getting-started"></a>

Los siguientes cuadernos de muestra muestran cómo usar SageMaker Clarify para comenzar con las tareas de explicabilidad y modelar los sesgos. Estas tareas incluyen la creación de un trabajo de procesamiento, el entrenamiento de un modelo de machine learning (ML) y la supervisión de las predicciones del modelo:
+ [Explicabilidad y detección de sesgos con Amazon SageMaker Clarify](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.html): utilice SageMaker Clarify para crear un trabajo de procesamiento que detecte sesgos y explique las predicciones del modelo.
+ [Supervisión de la desviación de sesgo y la desviación de la atribución de características Amazon SageMaker Clarify](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_model_monitor/fairness_and_explainability/SageMaker-Model-Monitor-Fairness-and-Explainability.html): utilice Amazon SageMaker Model Monitor para supervisar la desviación de sesgo y la desviación de la atribución de características a lo largo del tiempo.
+ Cómo [leer un conjunto de datos en formato JSON Lines en](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_jsonlines_format.html) un trabajo de procesamiento de SageMaker Clarify.
+ [Mitigue el sesgo, entrene otro modelo imparcial y colóquelo en el registro de modelos: utilice la](https://github.com/aws/amazon-sagemaker-examples/blob/master/end_to_end/fraud_detection/3-mitigate-bias-train-model2-registry-e2e.ipynb) [técnica de sobremuestreo de minorías sintéticas (SMOTE)](https://arxiv.org/pdf/1106.1813.pdf) y SageMaker Clarify para mitigar el sesgo, entrene otro modelo y, a continuación, coloque el nuevo modelo en el registro de modelos. Este ejemplo de cuaderno también muestra cómo colocar los nuevos artefactos del modelo, incluidos los datos, el código y los metadatos del modelo, en el registro del modelo. Este cuaderno forma parte de una serie que muestra cómo integrar SageMaker Clarify en un proceso de SageMaker IA, tal como se describe en The [Architect, y cómo desarrollar todo el ciclo de vida del aprendizaje automático con AWS](https://aws.amazon.com/blogs/machine-learning/architect-and-build-the-full-machine-learning-lifecycle-with-amazon-sagemaker/) una entrada de blog.

### Casos especiales
<a name="clarify-post-training-bias-model-explainability-sample-notebooks"></a>

Los siguientes cuadernos muestran cómo usar un SageMaker Clarify para casos especiales, incluso si está dentro de su propio contenedor, y para tareas de procesamiento del lenguaje natural:
+ [Imparcialidad y explicabilidad con SageMaker Clarify (traiga su propio contenedor)](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_byoc.ipynb): cree su propio modelo y contenedor que pueda integrarse con SageMaker Clarify para medir los sesgos y generar un informe de análisis de explicabilidad. En este ejemplo de bloc de notas también se presentan los términos clave y se muestra cómo acceder al informe a través de Studio Classic. SageMaker 
+ [Imparcialidad y explicabilidad con el procesamiento distribuido de SageMaker Clarify Spark](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_spark.ipynb): utilice el procesamiento distribuido para ejecutar un trabajo de SageMaker Clarify que mida el sesgo previo al entrenamiento de un conjunto de datos y el sesgo posterior al entrenamiento de un modelo. Este ejemplo de cuaderno también muestra cómo obtener una explicación de la importancia de las funciones de entrada en la salida del modelo y cómo acceder al informe del análisis de explicabilidad a través de Studio Classic. SageMaker 
+ [Explicabilidad con SageMaker Clarify: gráficos de dependencia parcial (PDP)](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/explainability_with_pdp.html): utilice SageMaker Clarify para generar un informe de explicabilidad del modelo PDPs y acceder a él.
+  [Explicación del análisis del sentimiento textual mediante SageMaker Clarify La explicabilidad del procesamiento del lenguaje natural (PNL)](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/text_explainability/text_explainability.html): utilice Clarify para el análisis del sentimiento textual. SageMaker 
+ Use la explicabilidad de la visión artificial (CV) para la [clasificación de imágenes](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/computer_vision/image_classification/explainability_image_classification.html) y la [detección de objetos](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/computer_vision/object_detection/object_detection_clarify.html)

Se ha comprobado que estos blocs de notas funcionan en Amazon SageMaker Studio Classic. Si necesita instrucciones sobre cómo abrir un cuaderno en Studio Classic, consulte [Crear o abrir un bloc de notas Amazon SageMaker Studio Classic](notebooks-create-open.md). Si se le pide que elija un kernel, elija **Python 3 (ciencia de datos)**.

# Sesgo de los datos previo al entrenamiento
<a name="clarify-detect-data-bias"></a>

El sesgo algorítmico, la discriminación, la equidad y temas relacionados se han estudiado en disciplinas como el derecho, la política y la informática. Un sistema de computación puede considerarse sesgado si discrimina a determinadas personas o grupos de personas. Los modelos de machine learning que impulsan estas aplicaciones aprenden de los datos, y estos datos podrían reflejar disparidades u otros sesgos inherentes. Por ejemplo, es posible que los datos de entrenamiento no representen lo suficiente a diversos grupos demográficos o podrían contener etiquetas sesgadas. Los modelos de machine learning basados en conjuntos de datos que presentan estos sesgos podrían terminar aprendiendo esos sesgos y luego reproducirlos o incluso exacerbarlos en sus predicciones. El campo de machine learning brinda la oportunidad de abordar los sesgos al detectarlos y medirlos en cada etapa del ciclo de vida de ML. Puede usar Amazon SageMaker Clarify para determinar si los datos utilizados para los modelos de entrenamiento codifican algún sesgo.

El sesgo se puede medir antes y después del entrenamiento, y se puede supervisar al compararlo con las referencias después de implementar los modelos en los puntos de conexión para realizar inferencias. Las métricas del sesgo previas al entrenamiento están diseñadas para detectar y medir el sesgo en los datos sin procesar antes de usarlos para entrenar un modelo. Las métricas utilizadas son independientes del modelo porque no dependen de los resultados de ningún modelo. Sin embargo, hay diferentes conceptos de equidad que requieren distintas medidas de sesgo. Amazon SageMaker Clarify proporciona métricas de sesgo para cuantificar varios criterios de equidad.

Para obtener información adicional sobre las métricas de sesgo, consulte [Descubra cómo Amazon SageMaker Clarify ayuda a detectar medidas de sesgo](https://aws.amazon.com/blogs/machine-learning/learn-how-amazon-sagemaker-clarify-helps-detect-bias) [y equidad para Machine Learning in Finance](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf).

## Amazon SageMaker aclara los términos de sesgo y equidad
<a name="clarify-bias-and-fairness-terms"></a>

SageMaker Clarify utiliza la siguiente terminología para hablar sobre los prejuicios y la imparcialidad.

**Característica**  
Propiedad o característica medible individual de un fenómeno que se observa, contenida en una columna para datos tabulares.

**Etiqueta**  
Característica que es el objetivo para entrenar un modelo de machine learning. Se conoce como *etiqueta observada* o *resultado observado*.

**Etiqueta predicha**  
La etiqueta según la predice el modelo. También se conoce como *resultado predicho*.

**Muestra**  
Entidad observada que se describe mediante los valores de la característica y el valor de la etiqueta, incluidos en una fila para datos tabulares.

**Conjunto de datos**  
Una colección de muestras.

**Sesgo**  
Un desequilibrio en los datos de entrenamiento o en el comportamiento de predicción del modelo en diferentes grupos, como la edad o el nivel de ingresos. Los sesgos pueden deberse a los datos o el algoritmo utilizados para entrenar el modelo. Por ejemplo, si un modelo de ML se basa principalmente en datos de personas de mediana edad, es posible que sea menos preciso al hacer predicciones que involucren a personas jóvenes y de edad avanzada.

**Métrica de sesgo**  
Función que devuelve valores numéricos que indican el nivel de un sesgo potencial.

**Informe de sesgo**  
Una colección de métricas de sesgo para un conjunto de datos determinado o una combinación de un conjunto de datos y un modelo.

**Valores de etiqueta positivos**  
Valores de etiqueta que son favorables a un grupo demográfico observado en una muestra. En otras palabras, designa que una muestra tiene un *resultado positivo*. 

**Valores de etiqueta negativos**  
Valores de etiqueta que son desfavorables a un grupo demográfico observado en una muestra. En otras palabras, designa que una muestra tiene un *resultado negativo*. 

**Variable de grupo**  
Columna categórica del conjunto de datos que se utiliza para formar subgrupos para la medición de la disparidad demográfica condicional (CDD). Solo se requiere para esta métrica en lo que respecta a la paradoja de Simpson.

**Faceta**  
Columna o característica que contiene los atributos con respecto a los cuales se mide el sesgo.

**Valor de faceta**  
Los valores de la característica de los atributos que el sesgo puede favorecer o desfavorecer.

**Probabilidad predicha**  
La probabilidad, según lo previsto por el modelo, de que una muestra tenga un resultado positivo o negativo.

## Cuadernos de ejemplo
<a name="clarify-data-bias-sample-notebooks"></a>

Amazon SageMaker Clarify proporciona el siguiente ejemplo de cuaderno para la detección de sesgos:
+ [Explicabilidad y detección de sesgos con Amazon SageMaker Clarify](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.html): utilice SageMaker Clarify para crear un trabajo de procesamiento para detectar sesgos y explicar las predicciones del modelo con atribuciones de características.

Se ha verificado que este portátil solo funciona en Amazon SageMaker Studio. Si necesitas instrucciones sobre cómo abrir un bloc de notas en Amazon SageMaker Studio, consulta[Crear o abrir un bloc de notas Amazon SageMaker Studio Classic](notebooks-create-open.md). Si se le pide que elija un kernel, elija **Python 3 (ciencia de datos)**. 

**Topics**
+ [Amazon SageMaker aclara los términos de sesgo y equidad](#clarify-bias-and-fairness-terms)
+ [Cuadernos de ejemplo](#clarify-data-bias-sample-notebooks)
+ [Métricas de sesgo previas al entrenamiento](clarify-measure-data-bias.md)
+ [Genere informes en Studio para detectar sesgos en los datos previos al entrenamiento SageMaker](clarify-data-bias-reports-ui.md)

# Métricas de sesgo previas al entrenamiento
<a name="clarify-measure-data-bias"></a>

La medición del sesgo en los modelos de ML es un primer paso para mitigarlo. Cada medida del sesgo corresponde a una noción diferente de equidad. Incluso la consideración de conceptos sencillos de equidad puede conducir a muchas medidas diferentes aplicables en diversos contextos. Por ejemplo, consideremos la equidad con respecto a la edad y, para simplificar, consideremos que los dos grupos demográficos pertinentes son los de mediana edad y el resto de los grupos de edad, denominados *facetas*. En el caso de un modelo de préstamos basado en ML, es posible que deseemos que los préstamos para pequeñas empresas se emitan a un número igual de personas de ambos grupos demográficos. O bien, al procesar las solicitudes de empleo, es posible que deseemos que se contrate al mismo número de miembros de cada grupo demográfico. Sin embargo, este enfoque podría dar por supuesto que un número igual de candidatos de ambos grupos de edad solicitan estos puestos, por lo que es posible que deseemos condicionar el número de candidatos. Además, quizá debamos considerar no si se presenta el mismo número de candidatos, sino si tenemos el mismo número de candidatos cualificados. O bien, podemos considerar que la equidad es una tasa de aceptación igual de candidatos cualificados de ambos grupos de edad, o una tasa de rechazo igual de candidatos, o ambas. Puede utilizar conjuntos de datos con diferentes proporciones de datos sobre los atributos de interés. Este desequilibrio puede desvirtuar la medida de sesgo que elija. Los modelos pueden ser más precisos a la hora de clasificar una faceta que otra. Por lo tanto, debe elegir métricas de sesgo que sean conceptualmente apropiadas para la aplicación y la situación.

Usamos la siguiente notación para analizar las métricas de sesgo. El modelo conceptual que se describe aquí es para la clasificación binaria, donde los eventos se etiquetan como si tuvieran solo dos resultados posibles en su espacio muestral, denominados positivos (con un valor 1) y negativos (con un valor 0). Por lo general, este marco se puede extender a la clasificación multicategoría de forma sencilla o a casos que implican resultados valorados de forma continua, cuando es necesario. En el caso de la clasificación binaria, se asignan etiquetas positivas y negativas a los resultados registrados en un conjunto de datos sin procesar para una faceta favorecida *a* y para una faceta desfavorecida *d*. Estas etiquetas y se denominan *etiquetas observadas* para distinguirlas de las *etiquetas predichas* y' que asignan un modelo de machine learning durante las etapas de entrenamiento o inferencia del ciclo de vida de ML. Estas etiquetas se utilizan para definir las distribuciones de probabilidad Pa(y) y Pd(y) para sus respectivos resultados de faceta. 
+ etiquetas: 
  + y representa las n etiquetas observadas para los resultados de los eventos en un conjunto de datos de entrenamiento.
  + y' representa las etiquetas predichas para las n etiquetas observadas en el conjunto de datos por un modelo entrenado.
+ resultados:
  + Un resultado positivo (con un valor de 1) para una muestra, como la aceptación de una solicitud.
    + n(1) es el número de etiquetas observadas para los resultados positivos (aceptaciones).
    + n'(1) es el número de etiquetas predichas para los resultados positivos (aceptaciones).
  + Un resultado negativo (con un valor de 0) para una muestra, como el rechazo de una solicitud.
    + n(0) es el número de etiquetas observadas para los resultados negativos (rechazos).
    + n'(0) es el número de etiquetas predichas para los resultados negativos (rechazos).
+ valores de faceta:
  + faceta *a*: el valor de la característica que define un grupo demográfico al que favorece el sesgo.
    + na es el número de etiquetas observadas para el valor de faceta favorecida: na = na(1) \$1 na(0) la suma de las etiquetas observadas positivas y negativas para el valor de faceta *a*.
    + n'a es el número de etiquetas predichas para el valor de faceta favorecida: n'a = n'a(1) \$1 n'a(0) la suma de las etiquetas de resultados predichos positivos y negativos para el valor de faceta *a*. Observe que n'a = na.
  + faceta *d*: el valor de la característica que define un grupo demográfico al que desfavorece el sesgo.
    + nd es el número de etiquetas observadas para el valor de faceta desfavorecida: nd = nd(1) \$1 nd(0) la suma de las etiquetas observadas positivas y negativas para el valor de faceta *d*. 
    + n'd es el número de etiquetas predichas para el valor de faceta desfavorecida: n'd = n'd(1) \$1 n'd(0) la suma de las etiquetas de resultados predichos positivos y negativos para el valor de faceta *d*. Observe que n'd = nd.
+ distribuciones de probabilidad para los resultados de los datos de facetas etiquetadas:
  + Pa(y) es la distribución de probabilidad de las etiquetas observadas para la faceta *a*. En el caso de los datos con etiquetas binarias, esta distribución viene dada por la relación entre el número de muestras de la faceta *a* etiquetadas con resultados positivos y el número total, Pa(y1) = na(1)/ na, y la relación entre el número de muestras con resultados negativos y el número total, Pa(y0) = na(0)/ na. 
  + Pd(y) es la distribución de probabilidad de las etiquetas observadas para la faceta *d*. En el caso de los datos con etiquetas binarias, esta distribución viene dada por la relación entre el número de muestras de la faceta *d* etiquetadas con resultados positivos y el número total, Pd(y1) = nd(1)/ nd, y la relación entre el número de muestras con resultados negativos y el número total, Pd(y0) = nd(0)/ nd. 

Los modelos basados en datos sesgados por las disparidades demográficas podrían aprenderlas e incluso exacerbarlas. Para identificar el sesgo en los datos antes de gastar recursos en entrenar modelos sobre ellos, SageMaker Clarify proporciona métricas de sesgo de datos que puede calcular a partir de conjuntos de datos sin procesar antes de entrenarlos. Todas las métricas previas al entrenamiento son independientes del modelo porque no dependen de los resultados del modelo y, por lo tanto, son válidas para cualquier modelo. La primera métrica de sesgo examina el desequilibrio de las facetas, pero no los resultados. Determina en qué medida la cantidad de datos de entrenamiento es representativa en las diferentes facetas, según se desee para la aplicación. Las métricas de sesgo restantes comparan la distribución de las etiquetas de resultados de varias maneras para las facetas *a* y *d* de los datos. Las métricas que oscilan sobre valores negativos pueden detectar sesgos negativos. La siguiente tabla contiene una hoja de referencia para obtener una guía rápida y enlaces a las métricas de sesgo previas al entrenamiento.

Métricas de sesgo previas al entrenamiento


| Métrica de sesgo | Description (Descripción) | Pregunta de ejemplo | Interpretación de los valores de la métrica | 
| --- | --- | --- | --- | 
| [Desequilibrio de clases (CI)](clarify-bias-metric-class-imbalance.md) | Mide el desequilibrio en el número de miembros entre los distintos valores de faceta. |  ¿Podrían existir sesgos basados en la edad por no disponer de suficientes datos demográficos al margen de una faceta de mediana edad?   |  Rango normalizado: [-1,\$11] Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 
| [Diferencia en las proporciones de las etiquetas (DPL)](clarify-data-bias-metric-true-label-imbalance.md) | Mide el desequilibrio de los resultados positivos entre los diferentes valores de las facetas. | ¿Podrían existir sesgos basados en la edad en las predicciones de ML debido al etiquetado sesgado de los valores de las facetas en los datos? |  Rango para etiquetas de facetas binarias y multicategoría normalizadas: [-1,\$11] Rango para etiquetas continuas: (-∞, \$1∞) Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 
| [Divergencia de Kullback-Leibler (KL)](clarify-data-bias-metric-kl-divergence.md) | Mide en qué medida las distribuciones de resultados de las diferentes facetas divergen entrópicamente entre sí.  | ¿En qué medida son diferentes las distribuciones de los resultados de las solicitudes de préstamos para los distintos grupos demográficos? |  Rango para binario, multicategoría y continuo: [0, \$1∞) Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 
| [Divergencia de Jensen-Shannon (JS)](clarify-data-bias-metric-jensen-shannon-divergence.md)  | Mide en qué medida las distribuciones de resultados de las diferentes facetas divergen entrópicamente entre sí.  | ¿En qué medida son diferentes las distribuciones de los resultados de las solicitudes de préstamos para los distintos grupos demográficos? |  Rango para binario, multicategoría y continuo: [0, \$1∞) Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 
| [Norma Lp (LP)](clarify-data-bias-metric-lp-norm.md)  | Mide una diferencia en la norma p entre distintas distribuciones demográficas de los resultados asociados a distintas facetas de un conjunto de datos. | ¿En qué medida son diferentes las distribuciones de los resultados de las solicitudes de préstamos para los distintos grupos demográficos? |  Rango para binario, multicategoría y continuo: [0, \$1∞) Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 
| [Distancia de variación total (TVD)](clarify-data-bias-metric-total-variation-distance.md)  | Mide la mitad de la diferencia de la norma L1 entre las distintas distribuciones demográficas de los resultados asociados a distintas facetas de un conjunto de datos. | ¿En qué medida son diferentes las distribuciones de los resultados de las solicitudes de préstamos para los distintos grupos demográficos? |  Rango para resultados binarios, multicategoría y continuos: [0, \$1∞) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 
| [Kolmogorov-Smirnov (KS)](clarify-data-bias-metric-kolmogorov-smirnov.md)  | Mide la máxima divergencia entre los resultados de las distribuciones para diferentes facetas de un conjunto de datos. | ¿Cuáles son los resultados de las solicitudes de ingreso a la universidad que manifiestan las mayores disparidades por grupo demográfico? | Rango de valores de KS para resultados binarios, multicategoría y continuos: [0,\$11][\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html) | 
| [Disparidad demográfica condicional (CDD)](clarify-data-bias-metric-cddl.md)  | Mide la disparidad de resultados entre diferentes facetas en su conjunto, pero también por subgrupos. | ¿Tienen algunos grupos una mayor proporción de rechazos en los resultados de admisión a la universidad que su proporción de aceptaciones? |  Rango de CDD: [-1, \$11] [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-data-bias.html)  | 

Para obtener información adicional sobre las métricas de sesgo, consulte [Fairness Measures for Machine Learning in Finance](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf).

**Topics**
+ [Desequilibrio de clases (CI)](clarify-bias-metric-class-imbalance.md)
+ [Diferencia en las proporciones de las etiquetas (DPL)](clarify-data-bias-metric-true-label-imbalance.md)
+ [Divergencia de Kullback-Leibler (KL)](clarify-data-bias-metric-kl-divergence.md)
+ [Divergencia de Jensen-Shannon (JS)](clarify-data-bias-metric-jensen-shannon-divergence.md)
+ [Norma Lp (LP)](clarify-data-bias-metric-lp-norm.md)
+ [Distancia de variación total (TVD)](clarify-data-bias-metric-total-variation-distance.md)
+ [Kolmogorov-Smirnov (KS)](clarify-data-bias-metric-kolmogorov-smirnov.md)
+ [Disparidad demográfica condicional (CDD)](clarify-data-bias-metric-cddl.md)

# Desequilibrio de clases (CI)
<a name="clarify-bias-metric-class-imbalance"></a>

El sesgo de desequilibrio de clases (CI) se produce cuando un valor de la faceta *d* tiene menos muestras de entrenamiento en comparación con otra faceta *a* del conjunto de datos. Esto se debe a que los modelos se ajustan preferentemente a las facetas más grandes en lugar de a las más pequeñas y, por lo tanto, pueden generar un mayor error de entrenamiento para la faceta *d*. Los modelos también corren un mayor riesgo de sobreajustar los conjuntos de datos más pequeños, lo que puede provocar un error de prueba mayor en la faceta *d*. Piense en el ejemplo en el que un modelo de machine learning se basa principalmente en datos de personas de mediana edad (faceta a), pero podría ser menos preciso cuando se hacen predicciones con personas jóvenes y de edad avanzada (faceta d).

La fórmula para medir el desequilibrio de las facetas (normalizado) es la siguiente:

        CI = (na - nd)/(na \$1 nd)

Donde na es el número de miembros de la faceta *a* y nd el número para la faceta *d*. Sus valores oscilan en el intervalo [-1, 1]. 
+ Los valores CI positivos indican que la faceta *a* tiene más muestras de entrenamiento en el conjunto de datos y un valor de 1 indica que los datos solo contienen miembros de la faceta *a*.
+  Los valores CI cercanos a cero indican una distribución más equitativa de los miembros entre las facetas y un valor cero indica una partición perfectamente igual entre las facetas y representa una distribución equilibrada de las muestras en los datos de entrenamiento.
+ Los valores CI negativos indican que la faceta *d* tiene más muestras de entrenamiento en el conjunto de datos y un valor de -1 indica que los datos solo contienen miembros de la faceta *d*.
+ Los valores CI cercanos a cualquiera de los extremos, -1 o 1, están muy desequilibrados y corren un riesgo considerable de generar predicciones sesgadas.

Si se detecta que existe un desequilibrio significativo entre las facetas, es posible que desee volver a equilibrar la muestra antes de proceder a entrenar los modelos con ella.

# Diferencia en las proporciones de las etiquetas (DPL)
<a name="clarify-data-bias-metric-true-label-imbalance"></a>

La diferencia en las proporciones de las etiquetas (DPL) compara la proporción de resultados observados con etiquetas positivas para la faceta *d* con la proporción de resultados observados con etiquetas positivas para la faceta *a* en un conjunto de datos de entrenamiento. Por ejemplo, podría usarse para comparar la proporción de personas de mediana edad (faceta *a*) y de otros grupos de edad (faceta *d*) a las que se aprueban préstamos financieros. Los modelos de machine learning intentan imitar las decisiones de los datos de entrenamiento lo más fielmente posible. Por lo tanto, es probable que un modelo de machine learning entrenado en un conjunto de datos con un DPL alto refleje el mismo desequilibrio en sus predicciones futuras.

La fórmula para la diferencia en las proporciones de las etiquetas es la siguiente:

        DPL = (qa - qd)

Donde:
+ qa = na(1)/na es la proporción de facetas *a* que tienen un valor de etiqueta observada de 1. Por ejemplo, la proporción de personas de mediana edad a las que se aprueban préstamos. Aquí na(1) representa el número de miembros de la faceta *a* que obtienen un resultado positivo y na es el número de miembros de la faceta *a*. 
+ qd = nd(1)/nd es la proporción de facetas *d* que tienen un valor de etiqueta observada de 1. Por ejemplo, la proporción de personas fuera del grupo demográfico de mediana edad a las que se aprueban préstamos. Aquí nd(1) representa el número de miembros de la faceta *d* que obtienen un resultado positivo y nd es el número de miembros de la faceta *d*. 

Si la DPL está lo suficientemente cerca de 0, decimos que se ha alcanzado la *paridad demográfica*.

En el caso de las etiquetas de facetas binarias y multicategoría, el rango de valores DPL oscila a lo largo del intervalo (-1, 1). En el caso de las etiquetas continuas, se establece un umbral para reducir las etiquetas a binarias. 
+ Los valores de la DPL positivos indican que la faceta *a* tiene una mayor proporción de resultados positivos en comparación con la faceta *d*.
+ Los valores de la DPL cercanos a cero indican una proporción más equitativa de resultados positivos entre las facetas y un valor de cero indica una paridad demográfica perfecta. 
+ Los valores de la DPL negativos indican que la faceta *d* tiene una mayor proporción de resultados positivos en comparación con la faceta *a*.

Que una magnitud alta de la DPL sea problemática o no varía de una situación a otra. En un caso problemático, una DPL de gran magnitud podría ser una señal de problemas subyacentes en los datos. Por ejemplo, un conjunto de datos con una DPL alta podría reflejar sesgos históricos o prejuicios contra grupos demográficos basados en la edad que no sería deseable que un modelo aprendiera.

# Divergencia de Kullback-Leibler (KL)
<a name="clarify-data-bias-metric-kl-divergence"></a>

La divergencia de Kullback-Leibler (KL) mide en qué medida la distribución de etiquetas observadas de la faceta *a*, Pa(y), diverge de la distribución de la faceta *d*, Pd(y). También se conoce como entropía relativa de Pa(y) con respecto a Pd(y) y cuantifica la cantidad de información que se pierde al pasar de Pa(y) a Pd(y).

La fórmula de la divergencia de Kullback-Leibler es la siguiente: 

        KL(Pa \$1\$1 Pd) = ∑yPa(y)\$1log[Pa(y)/Pd(y)]

Es la expectativa de la diferencia logarítmica entre las probabilidades Pa(y) y Pd(y), donde la expectativa se pondera con las probabilidades Pa(y). No se trata de una distancia real entre las distribuciones, ya que es asimétrica y no satisface la desigualdad triangular. La implementación usa logaritmos naturales, dando KL en unidades de nats. Si se utilizan diferentes bases logarítmicas, se obtienen resultados proporcionales pero en unidades diferentes. Por ejemplo, si se utiliza la base 2, se obtiene KL en unidades de bits.

Por ejemplo, supongamos que un grupo de solicitantes de préstamos tiene una tasa de aprobación del 30 % (faceta *d*) y que la tasa de aprobación de otros solicitantes (faceta *a*) es del 80 %. La fórmula de Kullback-Leibler proporciona la divergencia de distribución de etiquetas entre la faceta *a* y la faceta *d* de la siguiente manera:

        KL = 0,8\$1ln(0,8/0,3) \$1 0,2\$1ln(0,2/0,7) = 0,53

Aquí hay dos términos en la fórmula porque las etiquetas son binarias en este ejemplo. Esta medida se puede aplicar a varias etiquetas además de a las binarias. Por ejemplo, en un escenario de admisión a la universidad, supongamos que a un candidato se le puede asignar una de las tres categorías siguientes: yi = \$1y0, y1, y2\$1 = \$1rechazado, en lista de espera, aceptado\$1. 

El rango de valores de la métrica KL para los resultados binarios, multicategoría y continuos es [0, \$1∞).
+ Los valores cercanos a cero significan que los resultados se distribuyen de forma similar para las distintas facetas.
+ Los valores positivos indican que las distribuciones de las etiquetas son divergentes; cuanto más positivas, mayor es la divergencia.

# Divergencia de Jensen-Shannon (JS)
<a name="clarify-data-bias-metric-jensen-shannon-divergence"></a>

La divergencia de Jensen-Shannon (JS) mide en qué medida las distribuciones de etiquetas de diferentes facetas divergen entrópicamente entre sí. Se basa en la divergencia de Kullback-Leibler, pero es simétrica. 

La fórmula de la divergencia de Jensen-Shannon es la siguiente:

        JS = ½\$1[KL(Pa \$1\$1 P) \$1 KL(Pd \$1\$1 P)]

Donde P = ½( Pa \$1 Pd ), la distribución media de las etiquetas en las facetas *a* y *d*.

El rango de valores JS para los resultados binarios, multicategoría y continuos es [0, ln(2)).
+ Los valores cercanos a cero indican que las etiquetas están distribuidas de forma similar.
+ Los valores positivos indican que las distribuciones de las etiquetas son divergentes; cuanto más positivas, mayor es la divergencia.

Esta métrica indica si hay una gran divergencia en una de las etiquetas en todas las facetas. 

# Norma Lp (LP)
<a name="clarify-data-bias-metric-lp-norm"></a>

La norma Lp (LP) mide la distancia de la norma p entre las distribuciones de facetas de las etiquetas observadas en un conjunto de datos de entrenamiento. Esta métrica es no negativa y, por lo tanto, no puede detectar el sesgo inverso. 

La fórmula de la norma Lp es la siguiente: 

        Lp(Pa, Pd) = ( ∑y\$1\$1Pa - Pd\$1\$1p)1/p

Donde la distancia de la norma p entre los puntos x e y se define de la siguiente manera:

        Lp(x, y) = (\$1x1-y1\$1p \$1 \$1x2-y2\$1p \$1 … \$1\$1xn-yn\$1p)1/p 

La norma 2 es la norma euclidiana. Suponga que tiene una distribución de resultados con tres categorías, por ejemplo, yi = \$1y0, y1, y2\$1 = \$1aceptado, en lista de espera, rechazado\$1 en un escenario de admisiones universitarias multicategoría. Se calcula la suma de los cuadrados de las diferencias entre los recuentos de resultados de las facetas *a* y *d*. La distancia euclidiana resultante se calcula de la siguiente manera:

        L2(Pa, Pd) = [(na(0) - nd(0))2 \$1 (na(1) - nd(1))2 \$1 (na(2) - nd(2))2]1/2

Donde: 
+ na(i) es el número de los resultados de la i-ésima categoría en la faceta *a*: por ejemplo, na(0) es el número de aceptaciones de la faceta *a*.
+ nd(i) es el número de los resultados de la i-ésima categoría en la faceta *d*: por ejemplo, nd(2) es el número de rechazos de la faceta *d*.

  El rango de valores LP para los resultados binarios, multicategoría y continuos es [0, √2), donde:
  + Los valores cercanos a cero indican que las etiquetas están distribuidas de forma similar.
  + Los valores positivos indican que las distribuciones de las etiquetas son divergentes; cuanto más positivas, mayor es la divergencia.

# Distancia de variación total (TVD)
<a name="clarify-data-bias-metric-total-variation-distance"></a>

La métrica de sesgo de datos de la distancia de variación total (TVD) es la mitad de la norma L1. La TVD es la mayor diferencia posible entre las distribuciones de probabilidad de los resultados de las etiquetas de las facetas *a* y *d*. La norma L1 es la distancia de Hamming, una métrica que se utiliza para comparar dos cadenas de datos binarios al determinar el número mínimo de sustituciones necesarias para cambiar una cadena por otra. Si las cadenas fueran copias una de la otra, determina el número de errores que se han producido al copiarlas. En el contexto de la detección de sesgos, la TVD cuantifica cuántos resultados de la faceta *a* deberían cambiarse para que coincidan con los resultados de la faceta *d*.

La fórmula para la distancia de variación total es la siguiente: 

        TVD = ½\$1L1(Pa, Pd)

Por ejemplo, suponga que tiene una distribución de resultados con tres categorías, yi = \$1y0, y1, y2\$1 = \$1aceptado, en lista de espera, rechazado\$1 en un escenario de admisiones universitarias multicategoría. Para calcular la TVD, se toman las diferencias entre los recuentos de las facetas *a* y *d* de cada resultado. El resultado es el siguiente.

        L1(Pa, Pd) = \$1na(0) - nd(0)\$1 \$1 \$1na(1) - nd(1)\$1 \$1 \$1na(2) - nd(2)\$1

Donde: 
+ na(i) es el número de los resultados de la i-ésima categoría en la faceta *a*: por ejemplo, na(0) es el número de aceptaciones de la faceta *a*.
+ nd(i) es el número de los resultados de la i-ésima categoría en la faceta d: por ejemplo, nd(2) es el número de rechazos de la faceta *d*.

  El rango de valores TVD para los resultados binarios, multicategoría y continuos es [0, 1), donde:
  + Los valores cercanos a cero indican que las etiquetas están distribuidas de forma similar.
  + Los valores positivos indican que las distribuciones de las etiquetas son divergentes; cuanto más positivas, mayor es la divergencia.

# Kolmogorov-Smirnov (KS)
<a name="clarify-data-bias-metric-kolmogorov-smirnov"></a>

La métrica de sesgo de Kolmogorov-Smirnov (KS) es igual a la divergencia máxima entre las etiquetas de las distribuciones de las facetas *a* y *d* de un conjunto de datos. La prueba KS de dos muestras implementada por SageMaker Clarify complementa las demás medidas del desequilibrio de etiquetas al encontrar la etiqueta más desequilibrada. 

La fórmula de la métrica de Kolmogorov-Smirnov es la siguiente: 

        KS = max(\$1Pa(y) - Pd(y)\$1)

Por ejemplo, suponga que un grupo de candidatos (faceta *a*) a la universidad son rechazados, están en lista de espera o son aceptados con un 40 %, 40 % o 20 %, respectivamente, y que estas tasas para otros solicitantes (faceta *d*) son del 20 %, 10 % y 70 %. Entonces, el valor de la métrica de sesgo de Kolmogorov-Smirnov es el siguiente:

KS = máx(\$10,4-0,2\$1, \$10,4-0,1\$1, \$10,2-0,7\$1) = 0,5

Esto nos indica que la divergencia máxima entre las distribuciones de facetas es de 0,5 y se produce en las tasas de aceptación. Hay tres términos en la ecuación porque las etiquetas son multiclase de cardinalidad tres.

El rango de valores LP para los resultados binarios, multicategoría y continuos es [0, \$11], donde:
+ Los valores cercanos a cero indican que las etiquetas se distribuyeron uniformemente entre las facetas de todas las categorías de resultados. Por ejemplo, ambas facetas que solicitaron un préstamo obtuvieron el 50 % de aceptaciones y el 50 % de rechazos.
+ Los valores cercanos a uno indican que las etiquetas de un resultado estaban todas en una sola faceta. Por ejemplo, la faceta *a* obtuvo el 100 % de las aceptaciones y la faceta *d* no obtuvo ninguna.
+ Los valores intermitentes indican los grados relativos del desequilibrio máximo de la etiqueta.

# Disparidad demográfica condicional (CDD)
<a name="clarify-data-bias-metric-cddl"></a>

La métrica de disparidad demográfica (DD) determina si una faceta tiene una proporción mayor de los resultados rechazados en el conjunto de datos que de los resultados aceptados. En el caso binario en el que hay dos facetas, hombres y mujeres, por ejemplo, que constituyen el conjunto de datos, la desfavorecida se etiqueta como faceta *d* y la favorecida se etiqueta como faceta *a*. Por ejemplo, en el caso de las admisiones a la universidad, si las mujeres candidatas representaban el 46 % de los solicitantes rechazados y solo el 32 % de los solicitantes aceptados, decimos que existe una *disparidad demográfica* porque la tasa de mujeres rechazadas supera la tasa de las aceptadas. En este caso, las mujeres candidatas se etiquetan en la faceta *d*. Si los candidatos varones representaban el 54 % de los solicitantes rechazados y el 68 % de los aceptados, entonces no existe una disparidad demográfica en este aspecto, ya que la tasa de rechazo es inferior a la tasa de aceptación. En este caso, las mujeres candidatas se etiquetan en la faceta *a*. 

La fórmula de la disparidad demográfica para la faceta *d* menos favorecida es la siguiente: 

        DDd = nd(0)/n(0) - nd(1)/n(1) = PdR(y0) - PdA(y1) 

Donde: 
+ n(0) = na(0) \$1 nd(0) es el número total de resultados rechazados en el conjunto de datos para la faceta favorecida *a* y la faceta desfavorecida *d*.
+ n(1) = na(1) \$1 nd(1) es el número total de resultados aceptados en el conjunto de datos para la faceta favorecida *a* y la faceta desfavorecida *d*.
+ PdR(y0) es la proporción de resultados rechazados (con un valor 0) en la faceta *d*.
+ PdA(y1) es la proporción de resultados aceptados (valor 1) en la faceta *d*.

En el ejemplo de admisión a la universidad, la disparidad demográfica entre las mujeres es DDd = 0,46 - 0,32 = 0,14. En el caso de los varones, DDa = 0,54 - 0,68 = - 0,14.

Para descartar la paradoja de Simpson, se requiere una métrica de disparidad demográfica condicional (CDD) que condicione la DD a los atributos que definen un estrato o subgrupos del conjunto de datos. La reagrupación puede proporcionar información sobre la causa de las aparentes disparidades demográficas en las facetas menos favorecidas. El caso clásico surgió en el caso de las admisiones en Berkeley, donde en general los hombres eran aceptados a una tasa más alta que las mujeres. Las estadísticas de este caso se utilizaron en los cálculos de ejemplo de la DD. Sin embargo, cuando se examinaron los subgrupos departamentales, se comprobó que las tasas de admisión de mujeres eran más altas que las de los hombres si estaban condicionadas por departamento. La explicación es que las mujeres se habían presentado a departamentos con tasas de aceptación más bajas que las de los hombres. El examen de las tasas de aceptación subagrupadas reveló que, de hecho, las mujeres eran aceptadas en mayor medida que los hombres en los departamentos con tasas de aceptación más bajas.

La métrica CDD proporciona una medida única para todas las disparidades detectadas en los subgrupos definidos por un atributo de un conjunto de datos al promediarlas. Se define como el promedio ponderado de las disparidades demográficas (DDi) para cada uno de los subgrupos, y la disparidad de cada subgrupo se pondera en proporción al número de observaciones que contiene. La fórmula de la disparidad demográfica condicional es la siguiente:

        CDD = (1/n)\$1∑ini \$1DDi 

Donde: 
+ ∑ini = n es el número total de observaciones y n i es el número de observaciones de cada subgrupo.
+ DDi = ni(0)/n(0) - ni(1)/n(1) = PiR(y0) - PiA(y1) es la disparidad demográfica del i-ésimo subgrupo.

La disparidad demográfica de un subgrupo (DDi) es la diferencia entre la proporción de resultados rechazados y la proporción de resultados aceptados en cada subgrupo.

El rango de valores DD para los resultados binarios para todo el conjunto de datos DDd o para sus subgrupos condicionados DDi es [-1, \$11]. 
+ \$11: cuando no hay rechazos en la faceta *a* o el subgrupo ni aceptaciones en la faceta *d* o el subgrupo
+ Los valores positivos indican que existe una disparidad demográfica, ya que la faceta *d* o el subgrupo tiene una mayor proporción de resultados rechazados en el conjunto de datos que de resultados aceptados. Cuanto mayor sea el valor, menos favorecida será la faceta y mayor será la disparidad.
+ Los valores indican que no existe una disparidad demográfica, ya que la faceta *d* o el subgrupo tiene una mayor proporción de resultados aceptados en el conjunto de datos que de resultados rechazados. Cuanto más bajo sea el valor, más favorecida será la faceta.
+ -1: cuando no hay rechazos en la faceta *d* o el subgrupo ni aceptaciones en la faceta *a* o el subgrupo

Si no se condiciona a nada, entonces CDD es cero si y solo si DPL es cero.

Esta métrica es útil para explorar los conceptos de discriminación directa e indirecta y de justificación objetiva en la legislación y la jurisprudencia de no discriminación de la UE y el Reino Unido. Para obtener más información, consulte [Why Fairness Cannot Be Automated](https://arxiv.org/abs/2005.05906). Este documento también contiene los datos pertinentes y el análisis del caso de admisiones de Berkeley que muestran cómo la condicionalidad a los subgrupos de tasas de admisión departamentales ilustra la paradoja de Simpson.

# Genere informes en Studio para detectar sesgos en los datos previos al entrenamiento SageMaker
<a name="clarify-data-bias-reports-ui"></a>

SageMaker Clarify está integrado con Amazon SageMaker Data Wrangler, lo que puede ayudarle a identificar los sesgos durante la preparación de los datos sin tener que escribir su propio código. Data Wrangler ofrece una end-to-end solución para importar, preparar, transformar, caracterizar y analizar datos con Amazon Studio. SageMaker Para obtener información general acerca del flujo de trabajo de preparación de datos de Data Wrangler, consulte [Prepare datos de aprendizaje automático con Amazon SageMaker Data Wrangler](data-wrangler.md).

Usted especifica los atributos de interés, como el sexo o la edad, y SageMaker Clarify ejecuta un conjunto de algoritmos para detectar la presencia de sesgos en esos atributos. Una vez ejecutado el algoritmo, SageMaker Clarify proporciona un informe visual con una descripción de las fuentes y la gravedad del posible sesgo para que pueda planificar las medidas para mitigarlo. Por ejemplo, en un conjunto de datos financieros que contiene pocos ejemplos de préstamos empresariales concedidos a un grupo de edad en comparación con otros, la SageMaker IA detecta el desequilibrio para evitar un modelo que desfavorezca a ese grupo de edad.

**Para analizar e informar sobre el sesgo de los datos**

Para comenzar a utilizar Data Wrangler, consulte [Introducción a Data Wrangler](data-wrangler-getting-started.md).

1. En Amazon SageMaker Studio Classic, en el menú **Inicio** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/house.png)) del panel izquierdo, navegue hasta el nodo **Datos** y, a continuación, seleccione **Data Wrangler**. Esto abre la **página de inicio de Data Wrangler** en Studio Classic. 

1. Pulse el botón **\$1 Importar datos** para crear un flujo nuevo. 

1. En la página de flujo, en la pestaña **Importar**, seleccione Amazon S3 vaya a su bucket de Amazon S3, busque su conjunto de datos y, a continuación, seleccione **Importar**. 

1. Tras importar los datos, en el gráfico de flujo de la pestaña **Flujo de datos**, elija el signo **\$1** situado a la derecha del nodo **Tipos de datos**. 

1. Elija **Agregar análisis**. 

1. En la página **Crear análisis**, elija **Informe de sesgo** para **Tipo de análisis**. 

1. Para configurar el informe de sesgo, proporcione un **Nombre** del informe, la columna que se debe predecir y si se trata de un valor o un umbral, la columna que se va a analizar para detectar el sesgo (la faceta) y si se trata de un valor o un umbral. 

1. Siga con la configuración del informe de sesgo seleccionando las métricas de sesgo.  
![\[Elija la métrica de sesgo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify-data-wrangler-configure-bias-metrics.png)

1. Elija **Detectar sesgos** para generar y ver el informe de sesgo. Desplácese hacia abajo para ver todos los informes.   
![\[Genere y visualice el informe de sesgo.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify-data-wrangler-create-bias-report.png)

1. Seleccione el cursor situado a la derecha de la descripción de cada métrica de sesgo para ver la documentación que puede ayudarle a interpretar la importancia de los valores de las métricas. 

1. Para ver un resumen de los valores de las métricas de sesgo en una tabla, seleccione la opción **Tabla**. Para guardar el informe, elija **Guardar** en la esquina inferior derecha de la página. Puede ver el informe en el gráfico de flujo de la pestaña **Flujo de datos**. Haga doble clic en el informe para abrirlo. 

# Sesgo de los datos y el modelo posterior al entrenamiento
<a name="clarify-detect-post-training-bias"></a>

El análisis del sesgo posterior al entrenamiento puede ayudar a revelar los sesgos que podrían haber surgido del sesgos en los datos o de sesgos introducidos por los algoritmos de clasificación y predicción. Estos análisis tienen en cuenta los datos, incluidas las etiquetas y las predicciones de un modelo. El rendimiento se evalúa analizando las etiquetas predichas o comparando las predicciones con los valores objetivo observados en los datos con respecto a grupos con atributos diferentes. Existen diferentes nociones de equidad, cada una de las cuales requiere métricas de sesgo diferentes para medirlas.

Existen conceptos jurídicos de equidad que pueden no ser fáciles de captar porque son difíciles de detectar. Por ejemplo, el concepto estadounidense de impacto dispar que se produce cuando un grupo, denominado faceta menos favorecida *d*, sufre un efecto adverso incluso cuando el enfoque adoptado parece justo. Es posible que este tipo de sesgo no se deba a un modelo de machine learning, pero aún así puede detectarse mediante un análisis del sesgo posterior al entrenamiento.

Amazon SageMaker Clarify intenta garantizar un uso coherente de la terminología. Para obtener una lista de términos y sus definiciones, consulte [Amazon SageMaker aclara los términos de sesgo y equidad](clarify-detect-data-bias.md#clarify-bias-and-fairness-terms).

Para obtener información adicional sobre las métricas de sesgo posteriores a la formación, consulte [Descubra cómo Amazon SageMaker Clarify ayuda a detectar las medidas de sesgo](https://aws.amazon.com/blogs/machine-learning/learn-how-amazon-sagemaker-clarify-helps-detect-bias/) [y equidad para Machine Learning in Finance](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf). .

# Métricas del sesgo de los datos y el modelo posterior al entrenamiento
<a name="clarify-measure-post-training-bias"></a>

Amazon SageMaker Clarify proporciona once datos posteriores a la capacitación y modela métricas de sesgo para ayudar a cuantificar varios conceptos de equidad. No es posible satisfacer todos estos conceptos a la vez y la selección depende de las características específicas de los casos que se analicen que impliquen un posible sesgo. La mayoría de estas métricas son una combinación de los números extraídos de las matrices de confusión de clasificaciones binarias para los diferentes grupos demográficos. Dado que la equidad y el sesgo pueden definirse mediante una amplia gama de métricas, se requiere el juicio humano para comprender y elegir qué métricas son pertinentes para cada caso de uso individual, y los clientes deben consultar con las partes interesadas correspondientes para determinar la medida de equidad adecuada para su aplicación.

Usamos la siguiente notación para analizar las métricas de sesgo. El modelo conceptual que se describe aquí es para la clasificación binaria, donde los eventos se etiquetan como si tuvieran solo dos resultados posibles en su espacio muestral, denominados positivos (con un valor 1) y negativos (con un valor 0). Por lo general, este marco se puede extender a la clasificación multicategoría de forma sencilla o a casos que implican resultados valorados de forma continua, cuando es necesario. En el caso de la clasificación binaria, se asignan etiquetas positivas y negativas a los resultados registrados en un conjunto de datos sin procesar para una faceta favorecida *a* y para una faceta desfavorecida *d*. Estas etiquetas y se denominan *etiquetas observadas* para distinguirlas de las *etiquetas predichas* y' que asignan un modelo de machine learning durante las etapas de entrenamiento o inferencia del ciclo de vida de ML. Estas etiquetas se utilizan para definir las distribuciones de probabilidad Pa(y) y Pd(y) para sus respectivos resultados de faceta. 
+ etiquetas: 
  + y representa las n etiquetas observadas para los resultados de los eventos en un conjunto de datos de entrenamiento.
  + y' representa las etiquetas predichas para las n etiquetas observadas en el conjunto de datos por un modelo entrenado.
+ resultados:
  + Un resultado positivo (con un valor de 1) para una muestra, como la aceptación de una solicitud.
    + n(1) es el número de etiquetas observadas para los resultados positivos (aceptaciones).
    + n'(1) es el número de etiquetas predichas para los resultados positivos (aceptaciones).
  + Un resultado negativo (con un valor de 0) para una muestra, como el rechazo de una solicitud.
    + n(0) es el número de etiquetas observadas para los resultados negativos (rechazos).
    + n'(0) es el número de etiquetas predichas para los resultados negativos (rechazos).
+ valores de faceta:
  + faceta *a*: el valor de la característica que define un grupo demográfico al que favorece el sesgo.
    + na es el número de etiquetas observadas para el valor de faceta favorecida: na = na(1) \$1 na(0) la suma de las etiquetas observadas positivas y negativas para el valor de faceta *a*.
    + n'a es el número de etiquetas predichas para el valor de faceta favorecida: n'a = n'a(1) \$1 n'a(0) la suma de las etiquetas de resultados predichos positivos y negativos para el valor de faceta *a*. Observe que n'a = na.
  + faceta *d*: el valor de la característica que define un grupo demográfico al que desfavorece el sesgo.
    + nd es el número de etiquetas observadas para el valor de faceta desfavorecida: nd = nd(1) \$1 nd(0) la suma de las etiquetas observadas positivas y negativas para el valor de faceta *d*. 
    + n'd es el número de etiquetas predichas para el valor de faceta desfavorecida: n'd = n'd(1) \$1 n'd(0) la suma de las etiquetas de resultados predichos positivos y negativos para el valor de faceta *d*. Observe que n'd = nd.
+ distribuciones de probabilidad para los resultados de los datos de facetas etiquetadas:
  + Pa(y) es la distribución de probabilidad de las etiquetas observadas para la faceta *a*. En el caso de los datos con etiquetas binarias, esta distribución viene dada por la relación entre el número de muestras de la faceta *a* etiquetadas con resultados positivos y el número total, Pa(y1) = na(1)/ na, y la relación entre el número de muestras con resultados negativos y el número total, Pa(y0) = na(0)/ na. 
  + Pd(y) es la distribución de probabilidad de las etiquetas observadas para la faceta *d*. En el caso de los datos con etiquetas binarias, esta distribución viene dada por la relación entre el número de muestras de la faceta *d* etiquetadas con resultados positivos y el número total, Pd(y1) = nd(1)/ nd, y la relación entre el número de muestras con resultados negativos y el número total, Pd(y0) = nd(0)/ nd. 

La siguiente tabla contiene una hoja de referencia para obtener una guía rápida y enlaces a las métricas de sesgo posteriores al entrenamiento.

Métricas de sesgo posteriores al entrenamiento


| Métrica de sesgo posterior al entrenamiento | Description (Descripción) | Pregunta de ejemplo | Interpretación de los valores de la métrica | 
| --- | --- | --- | --- | 
| [Diferencia en las proporciones positivas de las etiquetas predichas (DPPL)](clarify-post-training-bias-metric-dppl.md) | Mide la diferencia en la proporción de predicciones positivas entre la faceta favorecida a y la faceta desfavorecida d. |  ¿Ha habido un desequilibrio entre los grupos demográficos en los resultados positivos predichos que pueda indicar un sesgo?  |  Rango para etiquetas de facetas binarias y multicategoría normalizadas: `[-1,+1]` Rango para etiquetas continuas: (-∞, \$1∞) Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html)  | 
| [Impacto dispar (DI)](clarify-post-training-bias-metric-di.md) | Mide la relación de proporciones de las etiquetas predichas para la faceta favorecida a y la faceta desfavorecida d. | ¿Ha habido un desequilibrio entre los grupos demográficos en los resultados positivos predichos que pueda indicar un sesgo? |  Rango para etiquetas de facetas multicategoría, binarias normalizadas y continuas: [0,∞) Interpretación:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html)  | 
| [Disparidad demográfica condicional en las etiquetas predichas (CDDPL)](clarify-post-training-bias-metric-cddpl.md)  | Mide la disparidad de etiquetas predichas entre las facetas en su conjunto, pero también por subgrupos. | ¿Tienen algunos grupos demográficos una mayor proporción de rechazos en las solicitudes de préstamo que de aceptaciones? |  Rango de valores de CDDPL para resultados binarios, multicategoría y continuos: `[-1, +1]` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html)  | 
| [Prueba de contrafácticos (FT)](clarify-post-training-bias-metric-ft.md)  | Examina cada miembro de la faceta d y evalúa si los miembros similares de la faceta a tienen predicciones de modelo diferentes. | ¿Hay un grupo demográfico de una edad específica que coincida estrechamente en todas las características con un grupo de edad diferente y, sin embargo, se le paga más en promedio? | El rango para etiquetas de facetas binarias y multicategoría es [-1, \$11]. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 
| [Diferencia de precisión (AD)](clarify-post-training-bias-metric-ad.md)  | Mide la diferencia entre la precisión de la predicción de las facetas favorecidas y desfavorecidas.  | ¿Predice el modelo las etiquetas con la misma precisión para las solicitudes en todos los grupos demográficos? | El rango para etiquetas de facetas binarias y multicategoría es [-1, \$11].[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 
| [Diferencia de coincidencias (RD)](clarify-post-training-bias-metric-rd.md)  | Compara las recuperaciones del modelo para las facetas favorecidas y desfavorecidas.  | ¿Existe un sesgo basado en la edad en los préstamos debido a que un modelo tiene una mayor capacidad de recuperación para un grupo de edad en comparación con otro? |  Rango para la clasificación binaria y multicategórica: `[-1, +1]`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html)  | 
| [Diferencia en la aceptación condicional () DCAcc](clarify-post-training-bias-metric-dcacc.md)  | Compara las etiquetas observadas con las predichas por un modelo. Evalúa si es igual en todas las facetas de los resultados positivos predichos (aceptaciones).  | Al comparar un grupo de edad con otro, ¿se aceptan préstamos con más frecuencia o con menos frecuencia de lo previsto (en función de las cualificaciones)? |  Rango para etiquetas de facetas multicategoría, binarias y continuas: (-∞, \$1∞). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html)  | 
| [Diferencia en tasas de aceptación (DAR)](clarify-post-training-bias-metric-dar.md)  | Mide la diferencia en las relaciones entre los resultados positivos observados (TP) y los positivos predichos (TP \$1 FP) entre las facetas favorecidas y desfavorecidas. | ¿Tiene el modelo la misma precisión a la hora de predecir las aceptaciones de préstamos para solicitantes cualificados de todos los grupos de edad? | El rango para etiquetas de facetas multicategoría, binarias y continuas es [-1, \$11].[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 
| [Diferencia de especificidad (SD)](clarify-post-training-bias-metric-sd.md)  | Compara la especificidad del modelo para las facetas favorecidas y desfavorecidas.  | ¿Existe un sesgo basado en la edad en los préstamos porque el modelo predice una mayor especificidad para un grupo de edad en comparación con otro? |  Rango para la clasificación binaria y multicategórica: `[-1, +1]`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html)  | 
| [Diferencia en rechazo condicional (DCR)](clarify-post-training-bias-metric-dcr.md)  | Compara las etiquetas observadas con las predichas por un modelo y evalúa si esto es los mismo en todas las facetas para los resultados negativos (rechazos). | ¿Se rechazan más o menos solicitudes de préstamos de lo previsto para un grupo de edad en comparación con otro en función de las cualificaciones? | Rango para etiquetas de facetas multicategoría, binarias y continuas: (-∞, \$1∞).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 
| [Diferencia en tasas de rechazo (DRR)](clarify-post-training-bias-metric-drr.md)  | Mide la diferencia en las relaciones entre los resultados negativos observados (TN) y los negativos predichos (TN \$1 FN) entre las facetas desfavorecidas y favorecidas. | ¿Tiene el modelo la misma precisión a la hora de predecir los rechazos de préstamos para solicitantes no cualificados de todos los grupos de edad? | El rango para etiquetas de facetas multicategoría, binarias y continuas es [-1, \$11].[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 
| [Igualdad de tratamiento (TE)](clarify-post-training-bias-metric-te.md)  | Mide la diferencia en la proporción de falsos positivos y falsos negativos entre las facetas favorecidas y desfavorecidas. | En las solicitudes de préstamos, ¿la proporción relativa entre falsos positivos y falsos negativos es la misma en todos los grupos demográficos de edad?  | Rango para etiquetas de facetas binarias y multicategoría: (-∞, \$1∞).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 
| [Entropía generalizada (GE)](clarify-post-training-bias-metric-ge.md)  | Mide la desigualdad en los beneficios b asignados a cada entrada por las predicciones del modelo. | De los dos modelos candidatos para la clasificación de las solicitudes de préstamos, ¿conduce uno a una distribución más desigual de los resultados deseados que el otro? | Rango para etiquetas binarias y multicategoría: (0, 0,5). La GE no está definida cuando el modelo solo predice falsos negativos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/clarify-measure-post-training-bias.html) | 

Para obtener información adicional sobre las métricas de sesgo, consulte [A Family of Fairness Measures for Machine Learning in Finance](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf).

**Topics**
+ [Diferencia en las proporciones positivas de las etiquetas predichas (DPPL)](clarify-post-training-bias-metric-dppl.md)
+ [Impacto dispar (DI)](clarify-post-training-bias-metric-di.md)
+ [Diferencia en la aceptación condicional () DCAcc](clarify-post-training-bias-metric-dcacc.md)
+ [Diferencia en rechazo condicional (DCR)](clarify-post-training-bias-metric-dcr.md)
+ [Diferencia de especificidad (SD)](clarify-post-training-bias-metric-sd.md)
+ [Diferencia de coincidencias (RD)](clarify-post-training-bias-metric-rd.md)
+ [Diferencia en tasas de aceptación (DAR)](clarify-post-training-bias-metric-dar.md)
+ [Diferencia en tasas de rechazo (DRR)](clarify-post-training-bias-metric-drr.md)
+ [Diferencia de precisión (AD)](clarify-post-training-bias-metric-ad.md)
+ [Igualdad de tratamiento (TE)](clarify-post-training-bias-metric-te.md)
+ [Disparidad demográfica condicional en las etiquetas predichas (CDDPL)](clarify-post-training-bias-metric-cddpl.md)
+ [Prueba de contrafácticos (FT)](clarify-post-training-bias-metric-ft.md)
+ [Entropía generalizada (GE)](clarify-post-training-bias-metric-ge.md)

# Diferencia en las proporciones positivas de las etiquetas predichas (DPPL)
<a name="clarify-post-training-bias-metric-dppl"></a>

La diferencia en las proporciones positivas de las etiquetas predichas (DPPL) determina si el modelo predice los resultados de forma diferente para cada faceta. Se define como la diferencia entre la proporción de predicciones positivas (y’ = 1) para la faceta *a* y la proporción de predicciones positivas (y’ = 1) para la faceta *d*. Por ejemplo, si las predicciones del modelo conceden préstamos al 60 % del grupo de mediana edad (faceta *a*) y al 50 % de otros grupos de edad (faceta *d*), podría estar sesgado en contra de la faceta *d*. En este ejemplo, debe determinar si la diferencia del 10 % es importante para determinar la existencia de un sesgo. 

Al comparar la diferencia en las proporciones de las etiquetas (DPL), una medida del sesgo previo al entrenamiento, con DPPL, una medida del sesgo posterior al entrenamiento, se evalúa si el sesgo en proporciones positivas que está inicialmente presente en el conjunto de datos cambia después del entrenamiento. Si DPPL es mayor que DPL, el sesgo en proporciones positivas aumenta después del entrenamiento. Si DPPL es menor que DPL, el sesgo del modelo no ha aumentado en proporciones positivas después del entrenamiento. La comparación de DPL con DPPL no garantiza que el modelo reduzca el sesgo en todas las dimensiones. Por ejemplo, es posible que el modelo siga estando sesgado si se consideran otras métricas, como [Prueba de contrafácticos (FT)](clarify-post-training-bias-metric-ft.md) o [Diferencia de precisión (AD)](clarify-post-training-bias-metric-ad.md). Para obtener más información sobre la detección de sesgos, consulte la entrada del blog [Descubra cómo Amazon SageMaker Clarify ayuda a detectar sesgos](https://aws.amazon.com/blogs/machine-learning/learn-how-amazon-sagemaker-clarify-helps-detect-bias/). Consulte [Diferencia en las proporciones de las etiquetas (DPL)](clarify-data-bias-metric-true-label-imbalance.md) para obtener más información sobre DPL.

La fórmula de DPPL es:



        DPPL = q'a - q'd

Donde:
+ q'a = n'a(1)/na es la proporción predicha de la faceta *a* que obtiene un resultado positivo de valor 1. En el ejemplo, la proporción de una faceta de mediana edad que se prevé que van a obtener un préstamo. Aquí n'a(1) representa el número de miembros de la faceta *a* que obtienen un resultado positivo predicho de valor 1 y na es el número de miembros de la faceta *a*. 
+ q'd = n'd(1)/nd es la proporción predicha de la faceta *de* que obtiene un resultado positivo de valor 1. En el ejemplo, una faceta de personas de edad avanzada y jóvenes que se prevé que van a obtener un préstamo. Aquí n'd(1) representa el número de miembros de la faceta *d* que obtienen un resultado positivo predicho y nd es el número de miembros de la faceta *d*. 

Si la DPPL está lo suficientemente cerca de 0, significa que se ha alcanzado la *paridad demográfica* después del entrenamiento.

En el caso de las etiquetas de facetas binarias y multicategoría, el rango de valores DPL normalizados oscila a lo largo del intervalo [-1, 1]. En el caso de las etiquetas continuas, los valores oscilan a lo largo del intervalo (-∞, \$1∞). 
+ Los valores de la DPPL positivos indican que la faceta *a* tiene una mayor proporción de resultados positivos predichos en comparación con la faceta *d*. 

  Esto se conoce como *sesgo positivo*.
+ Los valores de la DPPL cercanos a cero indican una proporción más equitativa de resultados positivos predichos entre las facetas *a* y *d* y un valor de cero indica una paridad demográfica perfecta. 
+ Los valores de la DPPL negativos indican que la faceta *d* tiene una mayor proporción de resultados positivos predichos en comparación con la faceta *a*. Esto se conoce como *sesgo negativo*.

# Impacto dispar (DI)
<a name="clarify-post-training-bias-metric-di"></a>

La métrica de diferencia en las proporciones positivas en las etiquetas predichas se puede evaluar en forma de cociente.

La comparación de la métrica de proporciones positivas en las etiquetas predichas se puede evaluar en forma de proporción en lugar de como diferencia, como ocurre con la[Diferencia en las proporciones positivas de las etiquetas predichas (DPPL)](clarify-post-training-bias-metric-dppl.md). La métrica de impacto dispar (DI) se define como la relación entre la proporción de predicciones positivas (y' = 1) para la faceta *d* y la proporción de predicciones positivas (y' = 1) para la faceta *a*. Por ejemplo, si las predicciones del modelo conceden préstamos al 60 % de un grupo de mediana edad (faceta *a*) y al 50 % de otros grupos de edad (faceta *d*), entonces DI = 0,5/0,6 = 0,8, lo que indica un sesgo positivo y un impacto adverso en el otro grupo de edad representado por la faceta *d*.

La fórmula para la relación de proporciones de las etiquetas predichas es la siguiente:



        DI = q'd/q'a

Donde:
+ q'a = n'a(1)/na es la proporción predicha de la faceta *a* que obtiene un resultado positivo de valor 1. En el ejemplo, la proporción de una faceta de mediana edad que se prevé que van a obtener un préstamo. Aquí n'a(1) representa el número de miembros de la faceta *a* que obtienen un resultado positivo predicho y na es el número de miembros de la faceta *a*. 
+ q'd = n'd(1)/nd es la proporción predicha de la faceta *d* que obtiene un resultado positivo de valor 1. En el ejemplo, una faceta de personas de edad avanzada y jóvenes que se prevé que van a obtener un préstamo. Aquí n'd(1) representa el número de miembros de la faceta *d* que obtienen un resultado positivo predicho y nd es el número de miembros de la faceta *d*. 

En el caso de las etiquetas de facetas multicategoría, binarias y continuas, el rango de valores DI oscila a lo largo del intervalo [0, ∞).
+ Los valores inferiores a 1 indican que la faceta *a* tiene una mayor proporción de resultados positivos predichos que la faceta *d*. Esto se conoce como *sesgo positivo*.
+ Un valor de 1 indica paridad demográfica. 
+ Los valores superiores a 1 indican que la faceta *d* tiene una mayor proporción de resultados positivos predichos que la faceta *a*. Esto se conoce como *sesgo negativo*.

# Diferencia en la aceptación condicional () DCAcc
<a name="clarify-post-training-bias-metric-dcacc"></a>

Esta métrica compara las etiquetas observadas con las etiquetas predichas por el modelo y evalúa si esto es lo mismo en todas las facetas para los resultados positivos predichos. Esta métrica se aproxima al sesgo humano, ya que cuantifica cuántos resultados positivos más predijo un modelo (etiqueta y') para una faceta determinada en comparación con los observados en el conjunto de datos de entrenamiento (etiquetas y). Por ejemplo, si se observaran más aceptaciones (un resultado positivo) en el conjunto de datos de entrenamiento para las solicitudes de préstamos para un grupo de mediana edad (faceta *a*) de lo previsto por el modelo basado en cualificaciones, en comparación con la faceta que contiene otros grupos de edad (faceta *d*), esto podría indicar un posible sesgo en la forma en que se aprueban los préstamos a favor del grupo de mediana edad. 

La fórmula para la diferencia en la aceptación condicional:

        DCAcc = c a - c d

Donde:
+ ca = na(1)/ n'a(1) es la relación entre el número observado de resultados positivos del valor 1 (aceptaciones) de la faceta *a* y el número previsto de resultados positivos (aceptaciones) para la faceta *a*. 
+ cd = nd(1)/ n'd(1) es la relación entre el número observado de resultados positivos del valor 1 (aceptaciones) de la faceta *d* y el número previsto de resultados positivos (aceptaciones) para la faceta *d*. 

La DCAcc métrica puede captar sesgos tanto positivos como negativos que revelan un trato preferencial basado en las calificaciones. Considere los siguientes casos de sesgo basado en la edad en la aceptación de préstamos.

**Ejemplo 1: sesgo positivo** 

Suponga que tenemos un conjunto de datos de 100 personas de mediana edad (faceta *a*) y 50 personas de otros grupos de edad (faceta *d*) que solicitaron préstamos, y que el modelo recomendó que se concedieran préstamos a 60 de la faceta *a* y 30 de la faceta *d*. Es decir, las proporciones predichas no tienen sesgo con respecto a la métrica DPPL, pero las etiquetas observadas muestran que se concedieron préstamos a 70 de la faceta *a* y a 20 de la faceta *d*. En otras palabras, el modelo concedió préstamos a un 17 % menos de la faceta de mediana edad de lo que sugerían las etiquetas observadas en los datos de entrenamiento (70/60 = 1,17) y concedió préstamos a un 33 % más de personas de otros grupos de edad de lo que sugerían las etiquetas observadas (20/30 = 0,67). El cálculo del DCAcc valor arroja lo siguiente:

        DCAcc = 70/60 - 20/30 = 1/2

El valor positivo indica que existe un posible sesgo en contra de la faceta *a* de mediana edad, con una tasa de aceptación más baja en comparación con la otra faceta *d* de lo que los datos observados (tomados como no sesgados) indican que es el caso.

**Ejemplo 2: sesgo negativo** 

Suponga que tenemos un conjunto de datos de 100 personas de mediana edad (faceta *a*) y 50 personas de otros grupos de edad (faceta *d*) que solicitaron préstamos, y que el modelo recomendó que se concedieran préstamos a 60 de la faceta *a* y 30 de la faceta *d*. Es decir, las proporciones predichas no tienen sesgo con respecto a la métrica DPPL, pero las etiquetas observadas muestran que se concedieron préstamos a 50 de la faceta *a* y a 40 de la faceta *d*. En otras palabras, el modelo concedió préstamos a un 17 % menos de la faceta de mediana edad de lo que sugerían las etiquetas observadas en los datos de entrenamiento (50/60 = 0,83) y concedió préstamos a un 33 % más de personas de otros grupos de edad de lo que sugerían las etiquetas observadas (40/30 = 1,33). El cálculo del DCAcc valor da lo siguiente:

        DCAcc = 50/60 - 40/30 = -1/2

El valor negativo indica que existe un posible sesgo en contra de la faceta *d*, con una tasa de aceptación más baja en comparación con la faceta *a* de mediana edad de lo que los datos observados (tomados como no sesgados) indican que es el caso.

Tenga en cuenta que puede utilizarlo como ayuda DCAcc para detectar posibles sesgos (no intencionados) por parte de las personas que supervisan las predicciones del modelo en un entorno. human-in-the-loop Suponga, por ejemplo, que las predicciones y' del modelo eran equitativas, pero que la decisión final la toma una persona (posiblemente con acceso a características adicionales) que puede modificar las predicciones del modelo para generar una versión nueva y final de y'. El procesamiento adicional por parte de una persona puede denegar involuntariamente los préstamos a un número desproporcionado de personas por un lado. DCAccpuede ayudar a detectar estos posibles sesgos.

El rango de valores para las diferencias en la aceptación condicional de etiquetas de facetas multicategoría, binarias y continuas es (-∞, \$1∞).
+ Los valores positivos se producen cuando la relación entre el número observado de aceptaciones y las aceptaciones predichas para la faceta *a* es superior a la misma relación para la faceta *d*. Estos valores indican un posible sesgo en contra de los candidatos cualificados de la faceta *a*. Cuanto mayor sea la diferencia de las relaciones, más extremo será el sesgo aparente.
+ Los valores cercanos a cero se producen cuando la relación entre el número observado de aceptaciones y las aceptaciones predichas para la faceta *a* es similar a la relación para la faceta *d*. Estos valores indican que las tasas de aceptación predichas son coherentes con los valores observados en los datos etiquetados y que los candidatos cualificados de ambas facetas están siendo aceptados de manera similar. 
+ Los valores negativos se producen cuando la relación entre el número observado de aceptaciones y las aceptaciones predichas para la faceta *a* es inferior a la misma relación para la faceta *d*. Estos valores indican un posible sesgo en contra de los candidatos cualificados de la faceta *d*. Cuanto más negativa sea la diferencia de las relaciones, más extremo será el sesgo aparente.

# Diferencia en rechazo condicional (DCR)
<a name="clarify-post-training-bias-metric-dcr"></a>

Esta métrica compara las etiquetas observadas con las etiquetas predichas por el modelo y evalúa si esto es lo mismo en todas las facetas para los resultados negativos (rechazos). Esta métrica se aproxima al sesgo humano, ya que cuantifica cuántos resultados negativos más predijo un modelo (etiquetas predichas y') para una faceta determinada en comparación con lo sugerido por las etiquetas en el conjunto de datos de entrenamiento (etiquetas predichas y). Por ejemplo, si se observaran más rechazos (un resultado negativo) para las solicitudes de préstamos para un grupo de mediana edad (faceta *a*) de lo previsto por el modelo basado en cualificaciones, en comparación con la faceta que contiene otros grupos de edad (faceta *d*), esto podría indicar un posible sesgo en la forma en que se rechazan los préstamos en favor del grupo de mediana edad frente a otros grupos.

La fórmula para la diferencia en la aceptación condicional:

        DCR = rd - ra

Donde:
+ rd = nd(0)/ n'd(0) es la relación entre el número observado de resultados negativos del valor 0 (rechazos) de la faceta *d* y el número previsto de resultados negativos (rechazos) de la faceta *d*. 
+ ra = na(0)/ n'a(0) es la relación entre el número observado de resultados negativos del valor 0 (rechazos) de la faceta *a* y el número previsto de resultados negativos de valor 0 (rechazos) de la faceta *a*. 

La métrica DCR puede captar sesgos tanto positivos como negativos que revelan un trato preferencial basado en las cualificaciones. Considere los siguientes casos de sesgo basado en la edad en el rechazo de préstamos.

**Ejemplo 1: sesgo positivo** 

Suponga que tenemos un conjunto de datos de 100 personas de mediana edad (faceta *a*) y 50 personas de otros grupos de edad (faceta *d*) que solicitaron préstamos, y que el modelo recomendó que se rechazaran los préstamos a 60 de la faceta *a* y 30 de la faceta *d*. Es decir, las proporciones predichas no están sesgadas por la métrica DPPL, pero las etiquetas observadas muestran que se rechazaron los préstamos a 50 de la faceta *a* y a 40 de la faceta *d*. En otras palabras, el modelo rechazó préstamos a un 17 % más de la faceta de mediana edad de lo que sugerían las etiquetas observadas en los datos de entrenamiento (50/60 = 0,83) y rechazó préstamos a un 33 % menos de personas de otros grupos de edad de lo que sugerían las etiquetas observadas (40/30 = 1,33). El valor de DCR cuantifica esta diferencia en la relación entre las tasas de rechazo observadas y las previstas entre las facetas. El valor positivo indica que existe un posible sesgo a favor del grupo de mediana edad, con tasas de rechazo más bajas en comparación con otros grupos de lo que los datos observados (tomados como no sesgados) indican que es el caso.

        DCR = 40/30 - 50/60 = 1/2

**Ejemplo 2: sesgo negativo** 

Suponga que tenemos un conjunto de datos de 100 personas de mediana edad (faceta *a*) y 50 personas de otros grupos de edad (faceta *d*) que solicitaron préstamos, y que el modelo recomendó que se rechazaran los préstamos a 60 de la faceta *a* y 30 de la faceta *d*. Es decir, las proporciones predichas no están sesgadas por la métrica DPPL, pero las etiquetas observadas muestran que se rechazaron los préstamos a 70 de la faceta *a* y a 20 de la faceta *d*. En otras palabras, el modelo rechazó préstamos a un 17 % menos de la faceta de mediana edad de lo que sugerían las etiquetas observadas en los datos de entrenamiento (70/60 = 1,17)) y rechazó préstamos a un 33 % más de personas de otros grupos de edad de lo que sugerían las etiquetas observadas (20/30 = 0,67). El valor negativo indica que existe un posible sesgo a favor de la faceta *a*, con una tasa de rechazo más baja en comparación con la faceta *a* de mediana edad de lo que los datos observados (tomados como no sesgados) indican que es el caso.

        DCR = 20/30 - 70/60 = -1/2

El rango de valores para las diferencias en el rechazo condicional de etiquetas de facetas multicategoría, binarias y continuas es (-∞, \$1∞).
+ Los valores positivos se producen cuando la relación entre el número observado de rechazos y los rechazos predichos para la faceta *d* es superior a la misma relación para la faceta *a*. Estos valores indican un posible sesgo en contra de los candidatos cualificados de la faceta *a*. Cuanto mayor sea el valor de la métrica DCR, más extremo será el sesgo aparente.
+ Los valores cercanos a cero se producen cuando la relación entre el número observado de rechazos y los rechazos predichos para la faceta *a* es similar a la relación para la faceta *d*. Estos valores indican que las tasas de rechazo predichas son coherentes con los valores observados en los datos etiquetados y que los candidatos cualificados de ambas facetas están siendo rechazados de manera similar. 
+ Los valores negativos se producen cuando la relación entre el número observado de rechazos y los rechazos predichos para la faceta *d* es inferior a la misma relación para la faceta *a*. Estos valores indican un posible sesgo en contra de los candidatos cualificados de la faceta *d*. Cuanto mayor sea la magnitud de la métrica DCR negativa, más extremo será el sesgo aparente.

 

# Diferencia de especificidad (SD)
<a name="clarify-post-training-bias-metric-sd"></a>

La diferencia de especificidad (SD) es la diferencia de especificidad entre la faceta favorecida *a* y la faceta desfavorecida *d*. La especificidad mide la frecuencia con la que el modelo predice correctamente un resultado negativo (y'=0). Cualquier diferencia en estas especificidades es una posible forma de sesgo. 

La especificidad es perfecta para una faceta si todos los casos y=0 se predicen correctamente para esa faceta. La especificidad es mayor cuando el modelo minimiza los falsos positivos, lo que se conoce como error de tipo I. Por ejemplo, la diferencia entre una especificidad baja para préstamos en la faceta *a* y una especificidad alta para préstamos en la faceta *d* es una medida del sesgo contra la faceta *d*.

La siguiente fórmula representa la diferencia en la especificidad de las facetas *a* y *d*.

        SD = TNd/(TNd \$1 FPd) - TNa/(TNa \$1 FPa) = TNRd - TNRa

Las siguientes variables utilizadas para calcular la SD se definen de la siguiente manera:
+ TNd son los verdaderos negativos predichos para la faceta *d*.
+ FPd son los falsos positivos predichos para la faceta *d*.
+ TNd son los verdaderos negativos predichos para la faceta *a*.
+ FPd son los falsos positivos predichos para la faceta *a*.
+ TNRa = TNa/(TNa \$1 FPa) es la tasa negativa verdadera, también conocida como especificidad, para la faceta *a*.
+ TNRd = TNd/(TNd \$1 FPd) es la tasa negativa verdadera, también conocida como especificidad, para la faceta *d*.

Por ejemplo, considere las siguientes matrices de confusión para las facetas *a* y *d*.

Matriz de confusión para la faceta favorecida `a`


| Predicciones de clase A | Resultado real 0 | Resultado real 1 | Total  | 
| --- | --- | --- | --- | 
| 0 | 20 | 5 | 25 | 
| 1 | 10 | 65 | 75 | 
| Total | 30 | 70 | 100 | 

Matriz de confusión para la faceta desfavorecida `d`


| Predicciones de clase D | Resultado real 0 | Resultado real 1 | Total  | 
| --- | --- | --- | --- | 
| 0 | 18 | 7 | 25 | 
| 1 | 5 | 20 | 25 | 
| Total | 23 | 27 | 50 | 

El valor de la diferencia de especificidad es `SD = 18/(18+5) - 20/(20+10) = 0.7826 - 0.6667 = 0.1159`, lo que indica un sesgo en contra de la faceta *d*.

El rango de valores de la diferencia de especificidad entre las facetas *a* y *d* para la clasificación binaria y multicategoría es `[-1, +1]`. Esta métrica no está disponible para el caso de etiquetas continuas. Esto es lo que implican los diferentes valores de SD:
+ Los valores positivos se obtienen cuando hay una mayor especificidad para la faceta *d* que para la faceta *a*. Esto sugiere que el modelo detecta menos falsos positivos para la faceta *d* que para la faceta *a*. Un valor positivo indica un sesgo en contra de la faceta *d*. 
+ Los valores cercanos a cero indican que la especificidad de las facetas que se comparan es similar. Esto sugiere que el modelo detecta un número similar de falsos positivos en ambas facetas y no está sesgado.
+ Los valores negativos se obtienen cuando hay una mayor especificidad para la faceta *a* que para la faceta *d*. Esto sugiere que el modelo detecta más falsos positivos para la faceta *a* que para la faceta *d*. Un valor negativo indica un sesgo en contra de la faceta *a*. 

# Diferencia de coincidencias (RD)
<a name="clarify-post-training-bias-metric-rd"></a>

La métrica de diferencia de coincidencias (RD) es la diferencia de coincidencias del modelo entre la faceta favorecida *a* y la faceta desfavorecida *d*. Cualquier diferencia en estas coincidencias es una posible forma de sesgo. La coincidencia es la tasa de positivos verdaderos (TPR), que mide la frecuencia con la que el modelo predice correctamente los casos que deberían recibir un resultado positivo. La coincidencia es perfecta para una faceta si todos los casos y=1 se predicen como y’=1 para esa faceta. La coincidencia es mayor cuando el modelo minimiza los falsos negativos, lo que se conoce como error de tipo II. Por ejemplo, ¿cuántas personas de dos grupos diferentes (facetas *a* y *d*) que deberían reunir los requisitos para obtener préstamos son detectadas correctamente por el modelo? Si la tasa de coincidencia es alta para los préstamos a la faceta *a*, pero baja para los préstamos a la faceta *d*, la diferencia proporciona una medida de este sesgo respecto del grupo que pertenece a la faceta *d*. 

La fórmula para la diferencia de las tasas de coincidencias de las facetas *a* y *d* es la siguiente:

        RD = TPa/(TPa \$1 FNa) - TPd/(TPd \$1 FNd) = TPRa - TPRd 

Donde:
+ TPa son los verdaderos positivos predichos para la faceta *a*.
+ FNa son los falsos negativos predichos para la faceta *a*.
+ TPd son los verdaderos positivos predichos para la faceta *d*.
+ FNd son los falsos negativos predichos para la faceta *d*.
+ TPRa = TPa/(TPa \$1 FNa) es la coincidencia para la faceta *a*, o su tasa positiva verdadera.
+ TPRd TPd/(TPd \$1 FNd) es la coincidencia para la faceta *d*, o su tasa positiva verdadera.

Por ejemplo, considere las siguientes matrices de confusión para las facetas *a* y *d*.

Matriz de confusión para la faceta favorecida A


| Predicciones de clase A | Resultado real 0 | Resultado real 1 | Total  | 
| --- | --- | --- | --- | 
| 0 | 20 | 5 | 25 | 
| 1 | 10 | 65 | 75 | 
| Total | 30 | 70 | 100 | 

Matriz de confusión para la faceta desfavorecida D


| Predicciones de clase D | Resultado real 0 | Resultado real 1 | Total  | 
| --- | --- | --- | --- | 
| 0 | 18 | 7 | 25 | 
| 1 | 5 | 20 | 25 | 
| Total | 23 | 27 | 50 | 

El valor de la diferencia de coincidencias es RD = 65/70 - 20/27 = 0,93 - 0,74 = 0,19, lo que indica un sesgo en contra de la faceta *d*.

El rango de valores de la diferencia de coincidencias entre las facetas *a* y *d* para la clasificación binaria y multicategoría es [-1, \$11]. Esta métrica no está disponible para el caso de etiquetas continuas.
+ Los valores positivos se obtienen cuando hay una mayor coincidencia para la faceta *a* que para la faceta *d*. Esto sugiere que el modelo detecta más positivos verdaderos para la faceta *a* que para la faceta *d*, lo cual es una forma de sesgo. 
+ Los valores cercanos a cero indican que la coincidencia de las facetas que se comparan es similar. Esto sugiere que el modelo detecta aproximadamente el mismo número de positivos verdaderos en ambas facetas y no está sesgado.
+ Los valores negativos se obtienen cuando hay una mayor coincidencia para la faceta *d* que para la faceta *a*. Esto sugiere que el modelo detecta más positivos verdaderos para la faceta *d* que para la faceta *a*, lo cual es una forma de sesgo. 

# Diferencia en tasas de aceptación (DAR)
<a name="clarify-post-training-bias-metric-dar"></a>

La métrica de diferencia en tasas de aceptación (DAR) es la diferencia en las relaciones entre las predicciones positivas verdaderas (TP) y las positivas observadas (TP \$1 FP) para las facetas *a* y *d*. Esta métrica mide la diferencia en la precisión del modelo para predecir las aceptaciones de estas dos facetas. La precisión mide la fracción de candidatos cualificados del grupo de candidatos cualificados que el modelo identifica como tales. Si la precisión del modelo para predecir los candidatos cualificados difiere de una faceta a otra, se trata de un sesgo y la DAR mide su magnitud.

La fórmula para la diferencia en tasas de aceptación entre las facetas *a* y *d* es la siguiente:

        DAR = TPa/(TPa \$1 FPa) - TPd/(TPd \$1 FPd) 

Donde:
+ TPa son los verdaderos positivos predichos para la faceta *a*.
+ FPa son los falsos positivos predichos para la faceta *a*.
+ TPd son los verdaderos positivos predichos para la faceta *d*.
+ FPd son los falsos positivos predichos para la faceta *d*.

Por ejemplo, suponga que el modelo acepta 70 candidatos de mediana edad (faceta *a*) para un préstamo (etiquetas predichas positivas), de los cuales solo se aceptan 35 (etiquetas observadas positivas). Suponga también que el modelo acepta 100 candidatos de otros grupos demográficos (faceta *d*) para un préstamo (etiquetas predichas positivas), de los cuales solo se aceptan 40 (etiquetas observadas positivas). Entonces, DAR = 35/70 - 40/100 = 0,10, lo que indica un posible sesgo en contra de las personas cualificadas del segundo grupo de edad (faceta *d*).

El rango de valores DAR para etiquetas de facetas multicategoría, binarias y continuas es [-1, \$11].
+ Los valores positivos se producen cuando la relación entre los resultados positivos predichos (aceptaciones) y los resultados positivos observados (candidatos cualificados) para la faceta *a* es mayor que la misma relación para la faceta *d*. Estos valores indican un posible sesgo en contra de la faceta desfavorecida *d* debido a la ocurrencia de un número relativamente mayor de falsos positivos en la faceta *d*. Cuanto mayor sea la diferencia de las relaciones, más extremo será el sesgo aparente.
+ Los valores cercanos a cero se producen cuando la relación entre los resultados positivos predichos (aceptaciones) y los resultados positivos observados (candidatos cualificados) en las facetas *a* y *d* tiene valores similares, lo que indica que las etiquetas observadas de resultados positivos están siendo predichas con la misma precisión por el modelo.
+ Los valores negativos se producen cuando la relación entre los resultados positivos predichos (aceptaciones) y los resultados positivos observados (candidatos cualificados) para la faceta *d* es mayor que la misma relación para la faceta *a*. Estos valores indican un posible sesgo en contra de la faceta favorecida *a* provocado por la ocurrencia de un número relativamente mayor de falsos positivos en la faceta *a*. Cuanto más negativa sea la diferencia de las relaciones, más extremo será el sesgo aparente.

# Diferencia en tasas de rechazo (DRR)
<a name="clarify-post-training-bias-metric-drr"></a>

La métrica de diferencia en tasas de rechazo (DRR) es la diferencia en las relaciones entre las predicciones negativas verdaderas (TN) y las negativas observadas (TN \$1 FN) para las facetas *a* y *d*. Esta métrica mide la diferencia en la precisión del modelo para predecir los rechazos de estas dos facetas. La precisión mide la fracción de candidatos no cualificados del grupo de candidatos no cualificados que el modelo identifica como tales. Si la precisión del modelo para predecir los candidatos no cualificados difiere de una faceta a otra, se trata de un sesgo y la DAR mide su magnitud.

La fórmula para la diferencia en tasas de rechazo entre las facetas *a* y *d* es la siguiente:

        DRR = TNd/(TNd \$1 FNd) - TNa/(TNa \$1 FNa) 

Los componentes de la ecuación DRR anterior son los siguientes.
+ TNd son los verdaderos negativos predichos para la faceta *d*.
+ FNd son los falsos negativos predichos para la faceta *d*.
+ TPa son los verdaderos negativos predichos para la faceta *a*.
+ FNa son los falsos negativos predichos para la faceta *a*.

Por ejemplo, suponga que el modelo rechaza a 100 solicitantes de mediana edad (faceta *a*) para un préstamo (etiquetas negativas predichas), de las cuales 80 no cumplen los requisitos (etiquetas negativas observadas). Suponga también que el modelo rechaza a 50 solicitantes de otros grupos de edad (faceta *d*) para un préstamo (etiquetas negativas predichas), de las cuales 40 no cumplen los requisitos (etiquetas negativas observadas). Entonces, DRR = 40/50 - 80/100 = 0, por lo que no se indica ningún sesgo.

El rango de valores DRR para etiquetas de facetas multicategoría, binarias y continuas es [-1, \$11].
+ Los valores positivos se producen cuando la relación entre los resultados negativos predichos (rechazos) y los resultados negativos observados (candidatos no cualificados) para la faceta *d* es mayor que la misma relación para la faceta *a*. Estos valores indican un posible sesgo en contra de la faceta favorecida *a* provocado por la ocurrencia de un número relativamente mayor de falsos negativos en la faceta *a*. Cuanto mayor sea la diferencia de las relaciones, más extremo será el sesgo aparente.
+ Los valores cercanos a cero se producen cuando la relación entre los resultados negativos predichos (rechazos) y los resultados negativos observados (candidatos no cualificados) en las facetas *a* y *d* tiene valores similares, lo que indica que las etiquetas observadas de resultados negativos están siendo predichas con la misma precisión por el modelo.
+ Los valores negativos se producen cuando la relación entre los resultados negativos predichos (rechazos) y los resultados negativos observados (candidatos no cualificados) para la faceta *a* es mayor que la misma relación para la faceta *d*. Estos valores indican un posible sesgo en contra de la faceta desfavorecida *d* debido a la ocurrencia de un número relativamente mayor de falsos positivos en la faceta *d*. Cuanto más negativa sea la diferencia de las relaciones, más extremo será el sesgo aparente.

# Diferencia de precisión (AD)
<a name="clarify-post-training-bias-metric-ad"></a>

La métrica de diferencia de precisión (AD) es la diferencia entre la precisión de la predicción para diferentes facetas. Esta métrica determina si la clasificación por el modelo es más precisa en una faceta que en la otra. La AD indica si una faceta incurre en una mayor proporción de errores de tipo I y tipo II. Sin embargo, no puede diferenciar entre los errores de tipo I y de tipo II. Por ejemplo, el modelo puede tener la misma precisión para diferentes grupos demográficos de edad, pero los errores pueden ser en su mayoría falsos positivos (errores de tipo I) para un grupo por edad y, en su mayoría, falsos negativos (errores de tipo II) para el otro. 

Además, si las aprobaciones de préstamos se realizan con una precisión mucho mayor para un grupo demográfico de mediana edad (faceta *a*) que para otro grupo demográfico basado en la edad (faceta *d*), o bien se deniega un préstamo a una mayor proporción de solicitantes cualificados del segundo grupo (FN) o bien una mayor proporción de solicitantes no cualificados de ese grupo obtiene un préstamo (FP) o ambas cosas. Esto puede provocar inequidad interna para el segundo grupo, incluso si la proporción de préstamos concedidos es casi la misma para ambos grupos por edad, lo que se indica con un valor de DPPL cercano a cero.

La fórmula de la métrica AD es la diferencia entre la precisión de la predicción de la faceta *a*, ACCa, menos la de la faceta *d*, ACCd:

        AD = ACCa - ACCd

Donde:
+ ACCa = (TPa \$1 TNa)/(TPa \$1 TNa \$1 FPa \$1 FNa) 
  + TPa son los verdaderos positivos predichos para la faceta *a*.
  + TNa son los verdaderos negativos predichos para la faceta *a*.
  + FPa son los falsos positivos predichos para la faceta *a*.
  + FNa son los falsos negativos predichos para la faceta *a*
+ ACCd = (TPd \$1 TNd)/(TPd \$1 TNd \$1 FPd \$1 FNd)
  + TPd son los verdaderos positivos predichos para la faceta *d*.
  + TNd son los verdaderos negativos predichos para la faceta *d*.
  + FPd son los falsos positivos predichos para la faceta *d*.
  + FNd son los falsos negativos predichos para la faceta *d*.

Por ejemplo, suponga que un modelo aprueba préstamos a 70 solicitantes de 100 de la faceta *a* y rechaza los otros 30. A 10 no se les debería haber ofrecido el préstamo (FPa) y a 60 se les aprobó correctamente (TPa). 20 de los rechazos deberían haber sido aprobados (FNa) y 10 se rechazaron correctamente (TNa). La precisión de la faceta *a* es la siguiente:

        ACCa = (60 \$1 10)/(60 \$1 10 \$1 20 \$1 10) = 0,7

Por ejemplo, suponga que un modelo aprueba préstamos a 50 solicitantes de 100 de la faceta *d* y rechaza los otros 50. A 10 no se les debería haber ofrecido el préstamo (FPa) y a 40 se les aprobó correctamente (TPa). 40 de los rechazos deberían haber sido aprobados (FNa) y 10 se rechazaron correctamente (TNa). La precisión de la faceta *a* se determina de la siguiente manera:

        ACCd= (40 \$1 10)/(40 \$1 10 \$1 40 \$1 10) = 0,5

Por lo tanto, la diferencia de precisión es AD = ACCa - ACCd = 0,7 - 0,5 = 0,2. Esto indica que hay un sesgo en contra de la faceta *d*, ya que la métrica es positiva.

El rango de valores AD para etiquetas de facetas binarias y multicategoría es [-1, \$11].
+ Los valores positivos se producen cuando la precisión de la predicción de la faceta *a* es mayor a la de la faceta *d* Esto significa que la faceta *d* sufre más a causa de alguna combinación de falsos positivos (errores de tipo I) o falsos negativos (errores de tipo II). Esto significa que existe un posible sesgo en contra de la faceta desfavorecida *d*.
+ Los valores cercanos a cero se producen cuando la precisión de la predicción de la faceta *a* es similar a la de la faceta *d*
+ Los valores negativos se producen cuando la precisión de la predicción de la faceta *d* es mayor a la de la faceta *a* Esto significa que la faceta *a* sufre más a causa de alguna combinación de falsos positivos (errores de tipo I) o falsos negativos (errores de tipo II). Esto significa que existe un posible sesgo en contra de la faceta favorecida *a*.

# Igualdad de tratamiento (TE)
<a name="clarify-post-training-bias-metric-te"></a>

La igualdad de tratamiento (TE) es la diferencia en la relación entre falsos negativos y falsos positivos entre las facetas *a* y *d*. La idea principal de esta métrica es evaluar si, aunque la precisión entre los grupos sea la misma, se da el caso de que los errores perjudiquen más a un grupo que a otro. La tasa de error proviene del total de falsos positivos y falsos negativos, pero el desglose de estos dos factores puede ser muy diferente en las facetas. La TE mide si los errores se compensan de manera similar o diferente en todas las facetas. 

La fórmula para la igualdad de tratamiento:

        TE = FNd/FPd - FNa/FPa

Donde:
+ FNd son los falsos negativos predichos para la faceta *d*.
+ FPd son los falsos positivos predichos para la faceta *d*.
+ FNa son los falsos negativos predichos para la faceta *a*.
+ FPa son los falsos positivos predichos para la faceta *a*.

Tenga en cuenta que la métrica se vuelve ilimitada si FPa o FPd es cero.

Por ejemplo, suponga que hay 100 solicitantes de préstamos de la faceta *a* y 50 de la faceta *d*. En el caso de la faceta *a*, a 8 se les denegó erróneamente un préstamo (FNa) y a otros 6 se les aprobó erróneamente (FPa). El resto de las predicciones eran ciertas, por lo que TPa \$1 TNa = 86. En el caso de la faceta *d*, 5 fueron rechazadas erróneamente (FNd) y 2 fueron aprobadas erróneamente (FPd). El resto de las predicciones eran ciertas, por lo que TPd \$1 TNd = 43. La relación entre falsos negativos y falsos positivos es igual a 8/6 = 1,33 para la faceta *a* y 5/2 = 2,5 para la faceta *d*. Por lo tanto, TE = 2,5 - 1,33 = 1,167, aunque ambas facetas tienen la misma precisión:

        ACCa = (86)/(86\$1 8 \$1 6) = 0,86

        ACCd = (43)/(43 \$1 5 \$1 2) = 0,86

El rango de valores para las diferencias en el rechazo condicional de etiquetas de facetas binarias y multicategoría es (-∞, \$1∞). La métrica TE no está definida para etiquetas continuas. La interpretación de esta métrica depende de la importancia relativa de los falsos positivos (error de tipo I) y los falsos negativos (error de tipo II). 
+ Los valores positivos se producen cuando la relación entre falsos negativos y falsos positivos de la faceta *d* es mayor que la de la faceta *a*. 
+ Los valores cercanos a cero se producen cuando la relación entre falsos negativos y falsos positivos de la faceta *a* es similar a la de la faceta *d*. 
+ Los valores negativos se producen cuando la relación entre falsos negativos y falsos positivos de la faceta *d* es menor que la de la faceta *a*.

**nota**  
En una versión anterior se indicaba que la métrica de igualdad de tratamiento se calculaba como FPa / FNa - FPd / FNd en lugar de FNd / FPd - FNa / FPa. No obstante, se puede utilizar cualquiera de las versiones. Para obtener más información, consulte [https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf](https://pages.awscloud.com/rs/112-TZM-766/images/Fairness.Measures.for.Machine.Learning.in.Finance.pdf).

# Disparidad demográfica condicional en las etiquetas predichas (CDDPL)
<a name="clarify-post-training-bias-metric-cddpl"></a>

La métrica de disparidad demográfica (DDPL) determina si la faceta *d* tiene una proporción mayor de etiquetas rechazadas predichas que de etiquetas aceptadas predichas. Permite comparar la diferencia entre la proporción de rechazo predicha y la proporción de aceptación predicha en todas las facetas. Esta métrica es exactamente la misma que la métrica CDD previa al entrenamiento, excepto que se calcula a partir de las etiquetas predichas en lugar de las observadas. Esta métrica se encuentra en el rango (-1,\$11).

La fórmula para las predicciones de disparidad demográfica para las etiquetas de la faceta *d* es la siguiente: 

        DDPLd = n'd(0)/n'(0) - n'd(1)/n'(1) = PdR(y'0) - PdA(y'1) 

Donde: 
+ n'(0) = n'a(0) \$1 n'd(0) es el número de etiquetas rechazadas predichas para las facetas *a* y *d*.
+ n'(1) = n'a(1) \$1 n'd(1) es el número de etiquetas aceptadas predichas para las facetas *a* y *d*.
+ PdR(y'0) es la proporción de etiquetas rechazadas predichas (valor 0) en la faceta *d*.
+ PdA(y'1) es la proporción de etiquetas aceptadas predichas (valor 1) en la faceta *d*.

Para descartar la paradoja de Simpson, se requiere una métrica (CDDPL) de etiquetas predichas que condicione la DDPL a los atributos que definen un estrato de subgrupos del conjunto de datos. La reagrupación puede proporcionar información sobre la causa de las aparentes disparidades demográficas en las facetas menos favorecidas. El caso clásico surgió en el caso de las admisiones en Berkeley, donde en general los hombres eran aceptados a una tasa más alta que las mujeres. Sin embargo, cuando se examinaron los subgrupos departamentales, se comprobó que las mujeres tenían tasas de admisión más altas que los hombres por departamento. La explicación es que las mujeres se habían presentado a departamentos con tasas de aceptación más bajas que las de los hombres. El examen de las tasas de aceptación del subgrupo reveló que, de hecho, las mujeres eran aceptadas en mayor medida que los hombres en los departamentos con tasas de aceptación más bajas.

La métrica CDDPL proporciona una medida única para todas las disparidades detectadas en los subgrupos definidos por un atributo de un conjunto de datos al promediarlas. Se define como el promedio ponderado de las disparidades demográficas en las etiquetas predichas (DDPLi) para cada uno de los subgrupos, y la disparidad de cada subgrupo se pondera en proporción al número de observaciones que contiene. La fórmula de la disparidad demográfica condicional en las etiquetas predichas es la siguiente:

        CDDPL = (1/n)\$1∑ini \$1DDPLi 

Donde: 
+ ∑ini = n es el número total de observaciones y n i es el número de observaciones de cada subgrupo.
+ DDPLi = n'i(0)/n(0) - n'i(1)/n(1) = PiR(y'0) - PiA(y'1) es la disparidad demográfica en las etiquetas predichas para el subgrupo.

La disparidad demográfica de un subgrupo en las etiquetas predichas (DDPLi) es la diferencia entre la proporción de etiquetas predichas rechazadas y la proporción de etiquetas predichas aceptadas en cada subgrupo. 

El rango de valores DDLP para los resultados binarios, multicategoría y continuos es [-1,\$11]. 
+ \$11: cuando no hay etiquetas de rechazo predichas para la faceta *a* o el subgrupo ni aceptaciones predichas para la faceta *d* o el subgrupo.
+ Los valores positivos indican que hay una disparidad demográfica en las etiquetas predichas, ya que la faceta *d* o el subgrupo tiene una proporción mayor de etiquetas predichas rechazadas que de etiquetas predichas aceptadas. Cuanto mayor sea el valor, mayor será la disparidad.
+ Los valores cercanos a cero indican que, en promedio, no hay disparidad demográfica.
+ Los valores negativos indican que hay una disparidad demográfica en las etiquetas predichas, ya que la faceta *a* o el subgrupo tiene una proporción mayor de etiquetas predichas rechazadas que de etiquetas predichas aceptadas. Cuanto menor sea el valor, mayor será la disparidad.
+ -1: cuando no hay etiquetas de rechazo predichas para la faceta *d* o el subgrupo ni aceptaciones predichas para la faceta *a* o el subgrupo.

# Prueba de contrafácticos (FT)
<a name="clarify-post-training-bias-metric-ft"></a>

La prueba inversa es un enfoque que analiza cada miembro de la faceta *d* y evalúa si los miembros similares de la faceta *a* tienen predicciones de modelo diferentes. Los miembros de la faceta *a* se eligen de modo que sean los k vecinos más cercanos a la observación de la faceta *d*. Se evalúan cuántos vecinos más cercanos del grupo contrario reciben una predicción diferente, donde la predicción inversa puede ir de positiva a negativa y viceversa. 

La fórmula para la prueba de contrafácticos es la diferencia en la cardinalidad de dos conjuntos dividida por el número de miembros de la faceta *d*:

        FT = (F\$1 - F-)/nd

Donde:
+ F\$1 = es el número de miembros de la faceta desfavorecida *d* con un resultado desfavorable cuyos vecinos más cercanos de la faceta favorecida *a* obtuvieron un resultado favorable. 
+ F- = es el número de miembros de la faceta desfavorecida *d* con un resultado favorable cuyos vecinos más cercanos de la faceta favorecida *a* obtuvieron un resultado desfavorable. 
+ nd es el tamaño de la muestra de la faceta *d*.

El rango de valores de la prueba de contrafácticos para etiquetas de facetas binarias y multicategoría es [-1, \$11]. En el caso de las etiquetas continuas, se establece un umbral para reducir las etiquetas a binarias.
+ Los valores positivos se producen cuando el número de decisiones contrafácticas desfavorables para la faceta desfavorecida *d* supera a las favorables. 
+ Los valores cercanos a cero se producen cuando se equilibra el número de decisiones contrafácticas desfavorables y favorables.
+ Los valores negativos se producen cuando el número de decisiones contrafácticas desfavorables para la faceta desfavorecida *d* es inferior a las favorables.

# Entropía generalizada (GE)
<a name="clarify-post-training-bias-metric-ge"></a>

El índice de entropía generalizada (GE) mide la desigualdad en el beneficio `b` de la etiqueta predicha en comparación con la etiqueta observada. Se produce un beneficio cuando se predice un falso positivo. Un falso positivo se produce cuando una observación negativa (y=0) tiene una predicción positiva (y'=1). También se produce un beneficio cuando las etiquetas observadas y predichas son las mismas, lo que también se conoce como verdadero positivo y verdadero negativo. No se obtiene ningún beneficio cuando se predice un falso negativo. Un falso negativo se produce cuando se predice que una observación positiva (y=1) tendrá un resultado negativo (y'=0). El beneficio `b` se define de la siguiente manera.

```
 b = y' - y + 1
```

Según esta definición, un falso positivo recibe un beneficio `b` de `2` y un falso negativo recibe un beneficio de `0`. Tanto un positivo verdadero como un negativo verdadero reciben un beneficio de `1`.

La métrica GE se calcula siguiendo el [índice de entropía generalizada](https://en.wikipedia.org/wiki/Generalized_entropy_index) (GE) con la ponderación `alpha` establecida en `2`. Esta ponderación controla la sensibilidad a diferentes valores de beneficio. Un `alpha` menor significa una mayor sensibilidad a valores más pequeños.

![\[Ecuación que define el índice de entropía generalizado con el parámetro alfa establecido en 2.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify-post-training-bias-metric-ge.png)


Las siguientes variables utilizadas para calcular la GE se definen de la siguiente manera:
+ bi es el beneficio que recibe el `ith` punto de datos.
+ b' es la media de todos los beneficios.

La GE puede oscilar entre 0 y 0,5, donde los valores de cero indican que no hay desigualdad en los beneficios en todos los puntos de datos. Esto ocurre cuando todas las entradas se predicen correctamente o cuando todas las predicciones son falsos positivos. La GE no está definida cuando todas las predicciones son falsos negativos.

**nota**  
La métrica GE no depende de que el valor de una faceta sea favorecido o desfavorecido.

# Explicabilidad del modelo
<a name="clarify-model-explainability"></a>

Amazon SageMaker Clarify proporciona herramientas que ayudan a explicar cómo los modelos de aprendizaje automático (ML) hacen predicciones. Estas herramientas pueden ayudar a los modeladores y desarrolladores de ML y a otras partes interesadas internas a comprender las características del modelo en su conjunto antes de la implementación y a depurar las predicciones proporcionadas por el modelo una vez implementado.
+ Para obtener explicaciones sobre sus conjuntos de datos y modelos, consulte [Imparcialidad, explicabilidad del modelo y detección de sesgos con Clarify SageMaker](clarify-configure-processing-jobs.md).
+ Para obtener explicaciones en tiempo real desde un punto final de SageMaker IA, consulte[Explicabilidad en línea con Clarify SageMaker](clarify-online-explainability.md).

La transparencia sobre la forma en que los modelos de ML llegan a sus predicciones también es fundamental para los consumidores y los reguladores. Deben confiar en las predicciones del modelo si van a aceptar las decisiones basadas en ellas. SageMaker Clarify utiliza un enfoque de atribución de características independiente del modelo. Sirve para entender por qué un modelo realizó una predicción después del entrenamiento y para proporcionar una explicación por instancia durante la inferencia. La implementación incluye una implementación escalable y eficiente de [SHAP](https://papers.nips.cc/paper/2017/file/8a20a8621978632d76c43dfd28b67767-Paper.pdf). Esto se basa en el concepto de un valor Shapley, del campo de la teoría de juegos cooperativos, que asigna a cada característica un valor de importancia para una predicción en particular.

Clarify produce gráficos de dependencia parcial (PDPs) que muestran el efecto marginal que tienen las características en el resultado previsto de un modelo de aprendizaje automático. La dependencia parcial ayuda a explicar la respuesta objetivo dado un conjunto de características de entrada. También admite la explicabilidad tanto de la visión artificial (CV) como del procesamiento de lenguaje natural (NLP) mediante el mismo algoritmo de valores de Shapley (SHAP) que se utiliza para las explicaciones de los datos tabulares.

¿Cuál es la función de una explicación en el contexto de machine learning? Se puede pensar que una explicación es la respuesta a una *pregunta de por qué* que ayuda a los humanos a entender la causa de una predicción. En el contexto de un modelo de ML, es posible que le interese responder a preguntas como: 
+ ¿Por qué predijo el modelo un resultado negativo, como el rechazo de un préstamo para un solicitante determinado? 
+ ¿Cómo hace predicciones el modelo?
+ ¿Por qué el modelo hizo una predicción incorrecta?
+ ¿Qué características tienen la mayor influencia en el comportamiento del modelo?

Puede utilizar estas explicaciones para auditar y cumplir los requisitos reglamentarios, generar confianza en el modelo, respaldar la toma de decisiones humana y depurar y mejorar el rendimiento del modelo.

La necesidad de satisfacer las exigencias de la comprensión humana sobre la naturaleza y los resultados de la inferencia de ML es clave para el tipo de explicación necesaria. Las investigaciones de las disciplinas de la filosofía y las ciencias cognitivas han demostrado que las personas se preocupan especialmente por las explicaciones contrastantes, es decir, por qué ocurrió un evento X en lugar de algún otro evento Y que no ocurrió. En este caso, X podría ser un evento inesperado o sorprendente que ocurrió e Y corresponde a una expectativa basada en su modelo mental existente, denominado *referencia*. Tenga en cuenta que para el mismo evento X, diferentes personas pueden buscar diferentes explicaciones según su punto de vista o modelo mental Y. En el contexto de la IA explicable, puede pensar en X como el ejemplo que se explica e Y como una referencia que normalmente se elige para representar un ejemplo poco informativo o promedio en el conjunto de datos. A veces, por ejemplo, en el caso del modelado de imágenes mediante ML, la referencia puede estar implícita, mientras que una imagen cuyos píxeles son todos del mismo color puede servir como referencia.

## Cuadernos de ejemplo
<a name="clarify-model-explainability-sample-notebooks"></a>

Amazon SageMaker Clarify proporciona el siguiente ejemplo de bloc de notas para explicar el modelo:
+ [Amazon SageMaker Clarify Processing](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/index.html#sagemaker-clarify-processing): utilice SageMaker Clarify para crear un trabajo de procesamiento que permita detectar sesgos y explicar las predicciones del modelo con atribuciones de características. Algunos ejemplos son el uso de los formatos de datos CSV y JSON Lines, la creación de su propio contenedor y la ejecución de trabajos de procesamiento con Spark.
+ [Explicación de la clasificación de imágenes SageMaker con SageMaker Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/computer_vision/image_classification/explainability_image_classification.ipynb): Clarify le proporciona información sobre cómo sus modelos de visión artificial clasifican las imágenes.
+ [Explicar los modelos de detección de objetos SageMaker con SageMaker Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/computer_vision/object_detection/object_detection_clarify.ipynb): Clarify le proporciona información sobre cómo sus modelos de visión artificial detectan los objetos.

Se ha verificado que este portátil solo funciona en Amazon SageMaker Studio. Si necesitas instrucciones sobre cómo abrir un bloc de notas en Amazon SageMaker Studio, consulta[Crear o abrir un bloc de notas Amazon SageMaker Studio Classic](notebooks-create-open.md). Si se le pide que elija un kernel, elija **Python 3 (ciencia de datos)**.

**Topics**
+ [Cuadernos de ejemplo](#clarify-model-explainability-sample-notebooks)
+ [Atribuciones de características que utilizan valores Shapley](clarify-shapley-values.md)
+ [Valores asimétricos de Shapley](clarify-feature-attribute-shap-asymm.md)
+ [Referencias SHAP para la explicabilidad](clarify-feature-attribute-shap-baselines.md)

# Atribuciones de características que utilizan valores Shapley
<a name="clarify-shapley-values"></a>

SageMaker Clarify proporciona atribuciones de características basadas en el concepto del valor de [Shapley](https://en.wikipedia.org/wiki/Shapley_value). Puede utilizar los valores Shapley para determinar la contribución de cada característica a las predicciones del modelo. Estas atribuciones se pueden proporcionar para predicciones específicas y a nivel global para el modelo en su conjunto. Por ejemplo, si utilizó un modelo de ML para la admisión a la universidad, las explicaciones podrían ayudar a determinar si la puntuación del GPA o del SAT fue la característica más responsable de las predicciones del modelo y, luego, puede determinar qué tan responsable fue cada característica a la hora de determinar la decisión de admisión de un estudiante en particular.

SageMaker Clarify ha tomado el concepto de valores de Shapley de la teoría de juegos y lo ha desplegado en un contexto de aprendizaje automático. El valor Shapley proporciona una forma de cuantificar la contribución de cada jugador a un juego y, por lo tanto, permite distribuir la ganancia total generada por un juego entre sus jugadores en función de sus contribuciones. *En este contexto de aprendizaje automático, SageMaker Clarify trata la predicción del modelo en una instancia determinada como el *juego* y las características incluidas en el modelo como jugadores.* Para hacer una primera aproximación, puede que se sienta tentado a determinar la contribución o el efecto marginal de cada característica cuantificando el resultado de *eliminar* esa característica del modelo o de *eliminar* todas las demás características del modelo. Sin embargo, este enfoque no tiene en cuenta que las características incluidas en un modelo no suelen ser independientes unas de otras. Por ejemplo, si dos entidades están altamente correlacionadas, es posible que la eliminación de cualquiera de las características no altere significativamente la predicción del modelo. 

Para abordar estas posibles dependencias, el valor Shapley requiere que se tenga en cuenta el resultado de cada posible combinación (o coalición) de características para determinar la importancia de cada característica. Dadas *d* características, hay 2d combinaciones de características posibles, cada una de las cuales corresponde a un modelo potencial. Para determinar la atribución de una característica *f* determinada, considere la contribución marginal de incluir *f* en todas las combinaciones de características (y los modelos asociados) que no contengan *f* y tome la media. Se puede demostrar que el valor Shapley es la forma única de asignar la contribución o importancia de cada característica que satisface determinadas propiedades deseables. En particular, la suma de los valores Shapley de cada característica corresponde a la diferencia entre las predicciones del modelo y las de un modelo ficticio sin características. Sin embargo, incluso para valores razonables de *d*, por ejemplo, 50 características, desde el punto de vista computacional resulta prohibitivo, además de poco práctico, entrenar 2d modelos posibles. Como resultado, SageMaker Clarify necesita utilizar varias técnicas de aproximación. Para ello, SageMaker Clarify utiliza Shapley Additive Explanations (SHAP), que incorpora dichas aproximaciones e ideó una implementación escalable y eficiente del algoritmo SHAP del núcleo mediante optimizaciones adicionales. 

Para obtener información adicional sobre los valores Shapley, consulte [A Unified Approach to Interpreting Model Predictions](https://papers.nips.cc/paper/2017/file/8a20a8621978632d76c43dfd28b67767-Paper.pdf).

# Valores asimétricos de Shapley
<a name="clarify-feature-attribute-shap-asymm"></a>

La solución de explicación del modelo de pronóstico de series temporales de SageMaker Clarify es un método de atribución de características basado en la teoría de juegos [cooperativos](https://en.wikipedia.org/wiki/Cooperative_game_theory), similar en espíritu al SHAP. En concreto, Clarify utiliza [valores de grupos de orden aleatorio](http://www.library.fa.ru/files/Roth2.pdf#page=121), también conocidos como [valores asimétricos de Shapley](https://proceedings.neurips.cc/paper/2020/file/0d770c496aa3da6d2c3f2bd19e7b9d6b-Paper.pdf) en el ámbito del machine learning y la explicabilidad.

## Introducción
<a name="clarify-feature-attribute-shap-asymm-setting"></a>

El objetivo es calcular las atribuciones de las características de entrada para un modelo de previsión *f* determinado. El modelo de previsión incluye las siguientes entradas:
+ Series temporales pasadas *(objetivo TS)*. Por ejemplo, podría tratarse de pasajeros de tren diarios pasados en la ruta París-Berlín, que se denotan con *x t*.
+ (Opcional) Una serie temporal covariable. Por ejemplo, podrían ser datos meteorológicos y de días festivos, que se denotan mediante *zt* ​∈ RS. Cuando se usa, la covariable TS podría estar disponible solo para los pasos temporales pasados o también para los futuros (incluidos en el calendario de festivos).
+ (Opcional) Covariables estáticas, como la calidad del servicio (por ejemplo, de primera o segunda clase), que se denotan mediante *u* ∈ RE.

Se pueden omitir las covariables estáticas, las covariables dinámicas o ambas, según el escenario de aplicación específico. Dado un horizonte de predicción K ≥ 0 (por ejemplo, K = 30 días), la predicción del modelo se puede caracterizar mediante la fórmula: *f(x[1:T], z[1:T\$1K], u) = x[T\$11:T \$1K\$11]*.

En el siguiente diagrama, se muestra una estructura de dependencia de un modelo de predicción típico. La predicción en el tiempo *t\$11* depende de los tres tipos de entradas mencionados anteriormente.

![\[Estructura de dependencias para un modelo de predicción típico.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/clarify/clarify-forecast-dependency.png)


## Método
<a name="clarify-feature-attribute-shap-asymm-explan"></a>

Las explicaciones se calculan consultando el modelo de series temporales *f* en una serie de puntos que se obtienen mediante la entrada original. Siguiendo las construcciones de la teoría de juegos, Clarify hace una media de las diferencias en las predicciones dirigidas ofuscando (es decir, fijando un valor de referencia) partes de las entradas de forma iterativa. Se puede navegar por la estructura temporal en orden cronológico, anticronológico o en ambos. Las explicaciones cronológicas se construyen añadiendo información de forma iterativa desde el primer paso temporal, mientras que las anticronológicas desde el último paso. Este último modo podría ser más apropiado en presencia de un sesgo de actualidad, por ejemplo, para pronosticar los precios de las acciones. Una propiedad importante de las explicaciones calculadas es que se suman al resultado del modelo original si el modelo proporciona resultados deterministas.

## Atribuciones resultantes
<a name="clarify-feature-attribute-shap-asymm-attr"></a>

Las atribuciones resultantes son puntuaciones que marcan las contribuciones individuales de determinados pasos de tiempo o características de entrada a la previsión final de cada paso de tiempo pronosticado. Clarify ofrece los dos niveles de detalle siguientes para las explicaciones:
+ Las explicaciones temporales son poco costosas y solo proporcionan información sobre pasos de tiempo concretos, como cuánto contribuyó la información del día 19 en el pasado a la previsión del día 1 en el futuro. Estas atribuciones no explican las covariables estáticas de forma individual ni las explicaciones agregadas de las series temporales objetivo y covariables. Las atribuciones son una matriz *A* en la que cada *Atk​* es la atribución del paso de tiempo *t* a la previsión del paso de tiempo temporal *T\$1k*. Tenga en cuenta que si el modelo acepta covariables futuras, *t* puede ser mayor que *T*.
+ Las explicaciones afinadas utilizan más capacidad computacional y proporcionan un desglose completo de todas las atribuciones de las variables de entrada.
**nota**  
Las explicaciones afinadas solo admiten el orden cronológico.

  Las atribuciones resultantes son un triplete compuesto por lo siguiente:
  + Matriz *Ax* ∈ RT×K relacionada con la serie temporal de entrada, donde *Atkx​* es la atribución de *xt* para el paso de previsión *T\$1k*
  + Tensor *Az* ∈ *RT\$1K×S×K* relacionado con la serie temporal covariable, donde *Atskz​* es la atribución de *zts​* (es decir, la TS covariable sth) para el paso de previsión *T\$1k*
  + Matriz *Au* ∈ RE×K relacionada con las covariables estáticas, donde *Aeku​* es la atribución de *ue* (la covariable estática eth) al paso de previsión *T\$1k*

Independientemente del nivel de detalle, la explicación también contiene un vector de desplazamiento *B* ∈ *RK* que representa el comportamiento básico del modelo cuando todos los datos están ofuscados.

# Referencias SHAP para la explicabilidad
<a name="clarify-feature-attribute-shap-baselines"></a>

Las explicaciones suelen ser de contraste, es decir, tienen en cuenta las desviaciones con respecto a una referencia. Como resultado, para la misma predicción del modelo, cabe esperar obtener diferentes explicaciones con respecto a distintas referencias. Por lo tanto, la elección de una referencia es crucial. En un contexto de ML, la referencia corresponde a un caso hipotético que puede ser *no informativo* o *informativo*. Durante el cálculo de los valores de Shapley, SageMaker Clarify genera varias instancias nuevas entre la línea base y la instancia dada, en las que se modela la ausencia de una entidad estableciendo el valor de la entidad como el de la línea base y la presencia de una entidad se modela estableciendo el valor de la entidad en cuestión en el de la instancia dada. Por lo tanto, la ausencia de todas las características corresponde a la referencia y la presencia de todas las características corresponde a la instancia dada. 

¿Cómo se pueden elegir buenas referencias? A menudo es conveniente seleccionar una referencia con un contenido de información muy bajo. Por ejemplo, puede construir una instancia promedio a partir del conjunto de datos de entrenamiento tomando la mediana o el promedio para las características numéricas y la moda para las características categóricas. Para el ejemplo de admisión a la universidad, tal vez le interese explicar por qué se aceptó a un candidato en particular en comparación con las aceptaciones iniciales basadas en un solicitante promedio. Si no se proporciona, SageMaker Clarify calcula automáticamente una línea base utilizando K-medias o prototipos K en el conjunto de datos de entrada.

Como alternativa, puede elegir generar explicaciones con respecto a las referencias informativas. En el caso de la admisión a la universidad, es posible que desees explicar por qué se rechazó a un candidato en particular en comparación con otros solicitantes de orígenes demográficos similares. En este caso, puede elegir una referencia que represente a los candidatos de interés, es decir, aquellos con antecedentes demográficos similares. Por lo tanto, puede utilizar referencias informativas para concentrar el análisis en los aspectos específicos de la predicción de un modelo concreto. Para aislar las características para la evaluación, configure los atributos demográficos y otras características sobre las que no puede actuar con el mismo valor que la instancia dada.