

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.

# Receta User-Personalization
<a name="native-recipe-new-item-USER_PERSONALIZATION"></a>

**importante**  
Recomendamos utilizar la receta [User-Personalization-v2](native-recipe-user-personalization-v2.md). Puede tener en cuenta hasta cinco millones de elementos con un entrenamiento más rápido y generar recomendaciones más relevantes con una latencia más baja.

La receta de personalización del usuario (aws-user-personalization) está optimizada para todos los escenarios de recomendaciones personalizadas. Predice los elementos con los que es más probable que interactúe un usuario. Puede usar User-Personalization para generar recomendaciones de películas personalizadas para una aplicación de streaming o recomendaciones de productos personalizadas para una aplicación de venta al por menor.

Con User-Personalization, Amazon Personalize genera recomendaciones basadas principalmente en los datos de interacciones de elemento de usuario de un conjunto de datos de interacciones de elemento. También puede usar metadatos de elemento y de usuario de los conjuntos de datos de elementos y usuarios. Para obtener más información sobre los datos que usa, consulte [Conjuntos de datos obligatorios y opcionales](#user-personalization-datasets). 

**Topics**
+ [Características de la receta](#user-personalization-features)
+ [Conjuntos de datos obligatorios y opcionales](#user-personalization-datasets)
+ [Propiedades e hiperparámetros](#bandit-hyperparameters)
+ [Entrenamiento con la receta User-Personalization (consola)](#training-user-personalization-recipe-console)
+ [Entrenamiento con la receta User-Personalization (SDK de Python)](#training-user-personalization-recipe)
+ [Obtención de recomendaciones y registro de impresiones (SDK para Python [Boto3])](#user-personalization-get-recommendations-recording-impressions)
+ [Cuaderno de Jupyter de ejemplo](#bandits-sample-notebooks)

## Características de la receta
<a name="user-personalization-features"></a>

User-Personalization utiliza las siguientes características de receta de Amazon Personalize al generar recomendaciones de elemento: 
+ Personalización en tiempo real: con este tipo de personalización, Amazon Personalize actualiza y adapta las recomendaciones de elemento en función de la evolución de los intereses del usuario. Para obtener más información, consulte [Personalización en tiempo real](use-case-recipe-features.md#about-real-time-personalization).
+ Exploración: con la exploración, las recomendaciones incluyen elementos nuevos o elementos con menos datos de interacciones. Esto mejora la visibilidad de los elementos y su fidelización cuando se trata de un catálogo que cambia rápidamente o cuando los elementos nuevos, como elementos de noticias o promociones, son más relevantes para los usuarios cuando acaban de salir. Para obtener más información acerca de la exploración, consulte [Exploration (Exploración)](use-case-recipe-features.md#about-exploration).
+ Actualizaciones automáticas: con las actualizaciones automáticas, Amazon Personalize actualiza de forma automática el último modelo (versión de solución) cada dos horas para tener en cuenta nuevos elementos en las recomendaciones. Para obtener más información, consulte [Actualizaciones automáticas](use-case-recipe-features.md#automatic-updates).

## Conjuntos de datos obligatorios y opcionales
<a name="user-personalization-datasets"></a>

Para usar User-Personalization, debe crear un [conjunto de datos de interacciones de elemento](interactions-datasets.md) e importar al menos 1000 interacciones de elemento. Amazon Personalize genera recomendaciones basadas principalmente basadas en los datos de interacciones de elemento.

Con User-Personalization, Amazon Personalize puede utilizar los datos de interacciones de elemento, entre los que se incluyen los siguientes:
+ Tipo de evento y datos de valor de evento: Amazon Personalize utiliza los datos de tipo de evento, como los tipos de evento de clic y de visualización, para identificar la intención y el interés de los usuarios a través de cualquier patrón de comportamiento. Además, puede usar los datos de tipo y de valor de evento para filtrar los registros antes del entrenamiento. Para obtener más información, consulte [Datos de valor de evento y tipo de evento](interactions-datasets.md#event-type-and-event-value-data). 
+ Metadatos contextuales: son datos de interacciones que se recopilan en el entorno del usuario en el momento de un evento, como la ubicación o el tipo de dispositivo. Para obtener más información, consulte [Metadatos contextuales](interactions-datasets.md#interactions-contextual-metadata). 
+ Datos de impresiones: las impresiones son listas de elementos que estaban visibles para un usuario cuando interactuaba con un elemento concreto (al hacer clic, verlo, comprarlo, etc.). Para obtener más información, consulte [Datos de impresiones](interactions-datasets.md#interactions-impressions-data).

 Los siguientes conjuntos de datos son opcionales y pueden mejorar las recomendaciones: 
+ Conjunto de datos de usuarios: Amazon Personalize puede utilizar datos del conjunto de datos de usuarios para comprender mejor a los usuarios y los intereses que tienen. También puede usar los datos de un conjunto de datos de usuarios para filtrar las recomendaciones. Para obtener información sobre los datos de usuario que puede importar, consulte [Metadatos de usuario](users-datasets.md).
+ Conjunto de datos de elementos: Amazon Personalize puede utilizar los datos del conjunto de datos de elementos para identificar conexiones y patrones en el comportamiento. Esto ayuda a Amazon Personalize a entender a los usuarios y sus intereses. También puede usar los datos de un conjunto de datos de elementos para filtrar las recomendaciones. Para obtener información sobre los datos de elementos que puede importar, consulte [Metadatos de elemento](items-datasets.md). 

## Propiedades e hiperparámetros
<a name="bandit-hyperparameters"></a>

La receta User-Personalization incluye las siguientes propiedades:
+  **Nombre**: `aws-user-personalization`
+  **Nombre de recurso de Amazon (ARN) de la receta**: `arn:aws:personalize:::recipe/aws-user-personalization`
+  **ARN del algoritmo**: `arn:aws:personalize:::algorithm/aws-user-personalization`

Para obtener más información, consulte [Elección de una receta](working-with-predefined-recipes.md).

En la siguiente tabla se describen los hiperparámetros de la receta User-Personalization. Un *hiperparámetro* es un parámetro de algoritmo que se puede ajustar para mejorar el rendimiento del modelo. Los hiperparámetros de algoritmos controlan el rendimiento del modelo. Los hiperparámetros de caracterización controlan cómo se filtran los datos que se van a utilizar en el entrenamiento. El proceso de elección del mejor valor para un hiperparámetro se denomina optimización de hiperparámetros (HPO). Para obtener más información, consulte [Hiperparámetros y HPO](customizing-solution-config-hpo.md). 

La tabla proporciona la siguiente información para cada hiperparámetro:
+ **Rango**: [límite inferior, límite superior]
+ **Tipo de valor**: número entero, continuo (flotante), categórico (booleano, lista, cadena)
+ **HPO ajustable**: ¿puede el parámetro participar en HPO?


| Name | Description (Descripción) | 
| --- | --- | 
| Hiperparámetros de algoritmos | 
| hidden\$1dimension |  El número de variables ocultas utilizadas en el modelo. Las *variables ocultas* recrean el historial de compras de los usuarios y las estadísticas de los elementos para generar puntuaciones de clasificación. Especifique un número mayor de dimensiones ocultas cuando el conjunto de datos de interacciones de elementos incluya patrones más complicados. El uso de más dimensiones ocultas requiere un conjunto de datos mayor y más tiempo de procesamiento. Para decidir el valor óptimo, utilice HPO. Para utilizar HPO, establezca `performHPO` en `true` cuando llame a las operaciones [CreateSolution](API_CreateSolution.md) y[CreateSolutionVersion](API_CreateSolutionVersion.md). Valor predeterminado: 149 Rango: [32, 256] Tipo de valor: entero HPO ajustable: sí  | 
| bptt |  Determina si se debe utilizar la propagación hacia atrás a través de la técnica de tiempo. La *propagación hacia atrás a través del tiempo* es una técnica que actualiza ponderaciones en algoritmos basados en redes neuronales recurrentes. Utilice `bptt` para créditos a largo plazo para conectar recompensas retrasadas a eventos tempranos. Por ejemplo, una recompensa retrasada puede ser una compra realizada después de varios clics. Un evento temprano puede ser un clic inicial. Incluso dentro de los mismos tipos de eventos, tales como un clic, es buena idea tener en cuenta los efectos a largo plazo y maximizar las recompensas totales. Para tener en cuenta los efectos a largo plazo, utilice valores mayores de `bptt`. El uso de un valor de `bptt` mayor requiere conjuntos de datos más grandes y más tiempo de procesamiento. Valor predeterminado: 32 Rango: [2, 32] Tipo de valor: entero HPO ajustable: sí  | 
| recency\$1mask |  Determina si el modelo debe tener en cuenta las últimas tendencias de popularidad en el conjunto de datos de interacciones de elementos. Las últimas tendencias de popularidad pueden incluir cambios bruscos en los patrones subyacentes de los eventos de interacción. Para entrenar un modelo que tenga más peso sobre los eventos recientes, establezca `recency_mask` en `true`. Para entrenar un modelo que pesa igualmente todas las interacciones anteriores, establezca `recency_mask` en `false`. Para obtener buenas recomendaciones con el mismo peso, es posible que necesite un conjunto de datos de entrenamiento mayor. Valor predeterminado: `True` Rango: `True` o `False` Tipo de valor: booleano HPO ajustable: sí  | 
| Hiperparámetros de caracterización | 
| min\$1user\$1history\$1length\$1percentile |  El percentil mínimo de longitudes de historial de usuario para incluir en el entrenamiento de modelos. La *longitud del historial* es la cantidad total de datos sobre un usuario. Utilice `min_user_history_length_percentile` para excluir un porcentaje de usuarios con longitudes de historial cortas. Los usuarios con un historial corto suelen mostrar patrones basados en la popularidad de los elementos en lugar de sus necesidades o deseos personales. Eliminarlos puede entrenar modelos que se centren más en los patrones subyacentes de los datos. Elija un valor adecuado después de revisar las longitudes del historial de usuarios, utilizando un histograma o una herramienta similar. Recomendamos establecer un valor que retenga a la mayoría de los usuarios, pero que elimine los casos de borde.  Por ejemplo, al establecer `min_user_history_length_percentile to 0.05` y `max_user_history_length_percentile to 0.95` se incluyen todos los usuarios, excepto los que tienen longitudes de historial en el 5 % inferior o superior. Valor predeterminado: 0,0 Rango: [0,0, 1,0] Tipo de valor: flotante HPO ajustable: no  | 
| max\$1user\$1history\$1length\$1percentile |  El percentil máximo de longitudes de historial de usuario para incluir en el entrenamiento de modelos. La *longitud del historial* es la cantidad total de datos sobre un usuario. Utilice `max_user_history_length_percentile` para excluir un porcentaje de usuarios con longitudes de historial largas, ya que los datos de estos usuarios tienden a contener ruido. Por ejemplo, un robot podría tener una larga lista de interacciones automatizadas. La eliminación de estos usuarios limita el ruido en el entrenamiento. Elija un valor adecuado después de revisar las longitudes del historial de usuarios mediante un histograma o una herramienta similar. Recomendamos establecer un valor que retenga la mayoría de los usuarios, pero que elimine los casos de borde. Por ejemplo, al establecer `min_user_history_length_percentile to 0.05` y `max_user_history_length_percentile to 0.95` se incluyen todos los usuarios, excepto los que tienen longitudes de historial en el 5 % inferior o superior. Valor predeterminado: 0,99 Rango: [0,0, 1,0] Tipo de valor: flotante HPO ajustable: no  | 
| Hiperparámetros de configuración de la campaña de exploración de elementos | 
| exploration\$1weight |  Determina la frecuencia con la que las recomendaciones incluyen elementos con menos datos de interacciones de elementos o relevancia. Cuanto más se acerque el valor a 1,0, mayor será la exploración. En cero, no se realiza ninguna exploración y las recomendaciones se basan en los datos actuales (relevancia). Para obtener más información, consulte [CampaignConfig](API_CampaignConfig.md). Valor predeterminado: 0,3 Rango: [0,0, 1,0] Tipo de valor: flotante HPO ajustable: no  | 
| exploration\$1item\$1age\$1cut\$1off |  Especifique la antigüedad máxima del elemento en días desde la última interacción en todos los elementos del conjunto de datos de interacciones de elementos. Esto define el alcance de la exploración del elemento en función de su antigüedad. Amazon Personalize determina la antigüedad de un elemento en función de su marca temporal de creación o, si faltan estos datos, de los datos de interacciones de elementos. Para obtener más información sobre cómo Amazon Personalize determina la antigüedad de un elemento, consulte [Datos de la marca de tiempo de creación](items-datasets.md#creation-timestamp-data).  Para aumentar el número de elementos que Amazon Personalize considera durante la exploración, indique un valor superior. El mínimo es de 1 día y el valor predeterminado es de 30 días. Las recomendaciones pueden incluir elementos con una antigüedad superior al límite de antigüedad que especifique. Esto se debe a que estos elementos son relevantes para el usuario y la exploración no los identificó. Valor predeterminado: 30,0 Rango: flotantes positivos Tipo de valor: flotante HPO ajustable: no  | 

## Entrenamiento con la receta User-Personalization (consola)
<a name="training-user-personalization-recipe-console"></a>

Para usar la receta User-Personalization para generar recomendaciones en la consola, primero entrene una nueva versión de la solución con la receta. A continuación, implemente una campaña con la versión de la solución y utilícela para obtener recomendaciones. 

**Entrenamiento de una versión de la solución con la receta User-Personalization (consola)**

1. Abre la consola Amazon Personalize en [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e inicia sesión en tu cuenta.

1. Cree un grupo de conjuntos de datos personalizado con un esquema nuevo y cargue su conjunto de datos con datos de impresiones. Si lo desea, incluya [CREATION\$1TIMESTAMP]() y datos [Metadatos de texto no estructurado](items-datasets.md#text-data) en su conjunto de datos de elementos para que Amazon Personalize pueda calcular con mayor precisión la antigüedad de un elemento e identificar los elementos fríos.

   Para obtener más información sobre la importación de datos, consulte [Importación de datos de entrenamiento directamente a conjuntos de datos de Amazon Personalize](import-data.md).

1. En la página **Grupos de conjuntos de datos**, elija el nuevo grupo de conjuntos de datos que contenga el conjunto de datos o los conjuntos de datos con datos de impresiones.

1. En el panel de navegación, seleccione **Soluciones y recetas** y elija **Crear solución**.

1. En la página **Crear solución**, en **Nombre de la solución**, introduzca el nombre de la nueva solución.

1. En **Tipo de solución**, elija **Recomendación de elementos** para obtener recomendaciones de elementos para sus usuarios. 

1. En **Receta**, elija **aws-user-personalization**. Aparece la sección **Configuración de la solución** con varias opciones de configuración. 

1. En **Configuración adicional**, si el conjunto de datos de interacciones con artículos tiene la columna EVENT\$1TYPE o tanto EVENT\$1TYPE como EVENT\$1VALUE, si lo desea, utilice los campos **Tipo de evento** y **Umbral del valor del evento** para elegir los datos de interacciones con artículos que Amazon Personalize usará al entrenar el modelo. Para obtener más información, consulte [Elección de los datos de interacciones de elementos utilizados para el entrenamiento](event-values-types.md). 

    Si tienes varios tipos de eventos y utilizas User-Personalization-v 2 o Personalized-Ranking-v 2 recetas, también puedes especificar distintos pesos para los distintos tipos. Por ejemplo, puede configurar una solución para dar más peso a los eventos de compra que a los de clic. Para obtener más información, consulte [Optimización de una solución con la configuración de eventos](optimizing-solution-events-config.md). 

1. Si lo desea, configure los hiperparámetros para su solución. Para obtener una lista de las propiedades e hiperparámetros de la receta User-Personalization, consulte [Propiedades e hiperparámetros](#bandit-hyperparameters). 

1. Elija **Crear y entrenar la solución** para empezar el entrenamiento. Aparece la página **Panel**.

   Puede acceder a la página de detalles de la solución para realizar un seguimiento del progreso del entrenamiento en la sección **Versiones de la solución**. Una vez finalizado el entrenamiento, el estado es **Activo**.

**Creación de una campaña y obtención de recomendaciones (consola)**

 Cuando el estado de la versión de la solución sea **Activo**, estará listo para crear su campaña y recibir recomendaciones del modo siguiente: 

1. En la página de detalles de la solución o en la página **Campañas**, seleccione **Crear nueva campaña**.

1.  En la página **Crear nueva campaña**, en los **Detalles de la campaña**, proporcione la siguiente información: 
   + **Nombre de la campaña**: escriba el nombre de la campaña. El texto que escriba aquí aparecerá en el panel Campaña y en la página de detalles.
   + **Solución**: elija la solución que acaba de crear.
   + **ID de versión de la solución:** elija el ID de la versión de la solución que acaba de crear.
   + **Transacciones aprovisionadas mínimas por segundo:** defina las transacciones aprovisionadas mínimas por segundo que admite Amazon Personalize. Para obtener más información, consulte la operación [CreateCampaign](API_CreateCampaign.md).

1. Para **Configuración de recursos**, proporcione la siguiente información:
   + **Ponderación de la exploración:** configure cuánto explorar, donde las recomendaciones incluyen elementos con menos datos de interacciones o relevancia con más frecuencia cuanta más exploración especifique. Cuanto más se acerque el valor a 1, mayor será la exploración. En cero, no se realiza ninguna exploración y las recomendaciones se basan en los datos actuales (relevancia).
   + **Límite de antigüedad del elemento de exploración**: especifique la antigüedad máxima del elementos, en días desde la última interacción, para definir el alcance de la exploración del elemento. Para aumentar el número de elementos que Amazon Personalize considera durante la exploración, indique un valor superior. 

      Por ejemplo, si especifica 10, durante la exploración solo se tendrán en cuenta los elementos con datos de interacciones de elementos de los 10 días transcurridos desde la última interacción del conjunto de datos. 
**nota**  
Las recomendaciones pueden incluir elementos sin datos de interacciones de elementos de fuera de este período de tiempo. El motivo es que estos elementos son relevantes para los intereses del usuario y no se requirió a la exploración que los identificara.

1. Elija **Crear una campaña**.

1. En la página de detalles de la campaña, cuando el estado de la campaña es **Activo**, puede utilizarla para obtener recomendaciones y registrar las impresiones. Para obtener más información, consulte [Paso 5: Obtener recomendaciones](getting-started-console.md#getting-started-console-get-recommendations) en “Introducción”. 

    Amazon Personalize actualiza automáticamente la última versión de la solución cada dos horas para incluir nuevos datos. La campaña utiliza automáticamente la versión actualizada de la solución. Para obtener más información, consulte [Actualizaciones automáticas](use-case-recipe-features.md#automatic-updates). 

   Para actualizar la campaña manualmente, primero debe crear y entrenar una nueva versión de la solución mediante la consola o la operación [CreateSolutionVersion](API_CreateSolutionVersion.md), con la configuración `trainingMode` establecida en `update`. A continuación, actualice la campaña manualmente en la página **Campaña** de la consola o mediante la operación [UpdateCampaign](API_UpdateCampaign.md). 
**nota**  
 Amazon Personalize no actualiza automáticamente las versiones de soluciones que haya creado antes del 17 de noviembre de 2020. 

## Entrenamiento con la receta User-Personalization (SDK de Python)
<a name="training-user-personalization-recipe"></a>

Cuando haya creado un grupo de conjuntos de datos y cargado sus conjuntos de datos con datos de impresiones, podrá entrenar una solución con la receta User-Personalization. Si lo desea, incluya [CREATION\$1TIMESTAMP]() y datos [Metadatos de texto no estructurado](items-datasets.md#text-data) en su conjunto de datos de elementos para que Amazon Personalize pueda calcular con mayor precisión la antigüedad de un elemento e identificar los elementos fríos. Para obtener más información sobre la creación de grupos de conjuntos de datos y la carga de datos de entrenamiento, consulte [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md).

**Para entrenar una solución con la receta de personalización del usuario mediante el SDK AWS**

1. Cree una nueva solución mediante el método `create_solution`.

   Sustituya `solution name` por el nombre de la solución y `dataset group arn` por el nombre de recurso de Amazon (ARN) del grupo de conjuntos de datos.

   ```
   import boto3
   
   personalize = boto3.client('personalize')
   
   print('Creating solution')
   create_solution_response = personalize.create_solution(name = 'solution name', 
                               recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', 
                               datasetGroupArn = 'dataset group arn',
                               )
   solution_arn = create_solution_response['solutionArn']
   print('solution_arn: ', solution_arn)
   ```

   Para obtener una lista de las propiedades e hiperparámetros de la aws-user-personalization receta, consulte. [Propiedades e hiperparámetros](#bandit-hyperparameters)

1. Cree una nueva *versión de la solución* con los datos de entrenamiento actualizados y configure `trainingMode` en `FULL` para usar el siguiente fragmento de código. Sustituya `solution arn` por el ARN de la solución.

   ```
   import boto3
           
   personalize = boto3.client('personalize')
           
   create_solution_version_response = personalize.create_solution_version(solutionArn = 'solution arn', 
                                                                  trainingMode='FULL')
   
   new_solution_version_arn = create_solution_version_response['solutionVersionArn']
   print('solution_version_arn:', new_solution_version_arn)
   ```

1. Cuando Amazon Personalize termine de crear la versión de la solución, cree la campaña con los siguientes parámetros:
   + Proporcione un nuevo `campaign name` y el `solution version arn` generado en el paso 2.
   + Modifique el hiperparámetro de configuración de exploración de elementos `explorationWeight` para configurar cuánto explorar. Los elementos con menos datos de interacciones de elementos o relevancia se recomiendan con más frecuencia cuanto más se acerca el valor a 1,0. El valor predeterminado es 0,3.
   + Modifique el parámetro de hiperparámetro de la configuración de exploración de elementos `explorationItemAgeCutOff` para proporcionar la duración máxima, en días en relación con la última interacción, durante la cual se deben explorar los elementos. Cuanto mayor sea el valor, más elementos se tendrán en cuenta durante la exploración.

   Use el siguiente fragmento de código de Python para crear una nueva campaña con énfasis en la exploración con un límite de exploración de 30 días. La creación de una campaña suele hacerse en unos minutos, pero puede tardar más de una hora.

   ```
   import boto3
           
   personalize = boto3.client('personalize')
   
   create_campaign_response = personalize.create_campaign(
       name = 'campaign name',
       solutionVersionArn = 'solution version arn',
       minProvisionedTPS = 1,
       campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3", "explorationItemAgeCutOff": "30"}}
   )
   
   campaign_arn = create_campaign_response['campaignArn']
   print('campaign_arn:', campaign_arn)
   ```

    Con User-Personalization, Amazon Personalize actualiza automáticamente la versión de la solución cada dos horas para incluir nuevos datos. La campaña utiliza automáticamente la versión actualizada de la solución. Para obtener más información, consulte [Actualizaciones automáticas](use-case-recipe-features.md#automatic-updates). 

   Para actualizar la campaña manualmente, primero debe crear y entrenar una nueva versión de la solución mediante la consola o la operación [CreateSolutionVersion](API_CreateSolutionVersion.md), con la configuración `trainingMode` establecida en `update`. A continuación, actualice la campaña manualmente en la página **Campaña** de la consola o mediante la operación [UpdateCampaign](API_UpdateCampaign.md).
**nota**  
 Amazon Personalize no actualiza automáticamente las versiones de soluciones que haya creado antes del 17 de noviembre de 2020. 

## Obtención de recomendaciones y registro de impresiones (SDK para Python [Boto3])
<a name="user-personalization-get-recommendations-recording-impressions"></a>

Una vez creada la campaña, puede usarla para obtener recomendaciones para un usuario y registrar las impresiones. Para obtener información sobre cómo obtener recomendaciones de lotes, AWS SDKs consulte[Creación de un trabajo de inferencia por lotes (AWS SDKs)](creating-batch-inference-job.md#batch-sdk).



**Para obtener recomendaciones y registrar las impresiones**

1. Llame al método `get_recommendations`. Cambie `campaign arn` al ARN de la nueva campaña y `user id` al identificador de usuario del usuario.

   ```
   import boto3
               
   rec_response = personalize_runtime.get_recommendations(campaignArn = 'campaign arn', userId = 'user id')
   print(rec_response['recommendationId'])
   ```

1. Cree un nuevo rastreador de eventos para enviar PutEvents solicitudes. Reemplace `event tracker name` por el nombre de su rastreador de eventos y `dataset group arn` por el ARN de su grupo de conjuntos de datos.

   ```
   import boto3
           
   personalize = boto3.client('personalize')
   
   event_tracker_response = personalize.create_event_tracker( 
       name = 'event tracker name',
       datasetGroupArn = 'dataset group arn'
   )
   event_tracker_arn = event_tracker_response['eventTrackerArn']
   event_tracking_id = event_tracker_response['trackingId']
   print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id))
   ```

1.  Use `recommendationId` del paso 1 y `event tracking id` del paso 2 para crear una nueva solicitud `PutEvents`. Esta solicitud registra los nuevos datos de impresión de la sesión del usuario. Cambie `user id` por el identificador del usuario. 

   ```
   import boto3
               
   personalize_events.put_events(
        trackingId = 'event tracking id',
        userId= 'user id',
        sessionId = '1',
        eventList = [{
        'sentAt': datetime.now().timestamp(),
        'eventType' : 'click',
        'itemId' : rec_response['itemList'][0]['itemId'],        
        'recommendationId': rec_response['recommendationId'],
        'impression': [item['itemId'] for item in rec_response['itemList']],
        }]
   )
   ```

## Cuaderno de Jupyter de ejemplo
<a name="bandits-sample-notebooks"></a>

Para ver una muestra de cuaderno de Jupyter que describe el uso de la receta User-Personalization, consulte [Personalización de usuario con la exploración](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/user_personalization/user-personalization-with-exploration.ipynb).