Guida introduttiva (SDKper Python (Boto3)) - Amazon Personalize

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva (SDKper Python (Boto3))

Questo tutorial mostra come completare il flusso di lavoro di Amazon Personalize dall'inizio alla fine con SDK for Python (Boto3).

Al termine dell'esercizio introduttivo, per evitare di incorrere in addebiti inutili, elimina le risorse che hai creato. Per ulteriori informazioni, consulta Requisiti per l'eliminazione delle risorse Amazon Personalize.

Prerequisiti

Di seguito sono elencate alcune fasi preliminari per utilizzare gli esempi di Python in questa guida.

  • Completa il Prerequisiti per iniziare modulo per configurare le autorizzazioni richieste e creare i dati di allenamento. Se utilizzi i tuoi dati di origine, assicurati che i dati siano formattati come nei prerequisiti.

  • Configura il tuo AWS SDK for Python (Boto3) ambiente come specificato in. Configurare il AWS SDKs

Tutorial

Nei passaggi seguenti, verifichi il tuo ambiente e crei client SDK per Python (Boto3) per Amazon Personalize. Quindi importi dati, crei e distribuisci una versione della soluzione con una campagna e ricevi consigli.

Dopo aver completato i prerequisiti, esegui il seguente esempio Python per confermare che l'ambiente sia configurato correttamente. Questo codice crea anche i client Amazon Personalize boto3 che usi in questo tutorial. Se il tuo ambiente è configurato correttamente, viene visualizzato un elenco delle ricette disponibili e puoi eseguire gli altri esempi in questo tutorial.

import boto3 personalizeRt = boto3.client('personalize-runtime') personalize = boto3.client('personalize') response = personalize.list_recipes() for recipe in response['recipes']: print (recipe)

Dopo aver creato i client Amazon Personalize boto3 e verificato il tuo ambiente, importa i dati storici che hai creato quando hai completato il. Prerequisiti per iniziare Per importare dati storici in Amazon Personalize, procedi come segue:

  1. Utilizza il codice seguente per creare uno schema in Amazon Personalize. Sostituisci getting-started-schema con un nome per lo schema.

    import json schema = { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema( name='getting-started-schema', schema=json.dumps(schema) ) interactions_schema_arn = create_interactions_schema_response['schemaArn'] print(json.dumps(create_interactions_schema_response, indent=2))
  2. Creare un gruppo di set di dati con il seguente codice. Sostituire dataset group name con un nome per il gruppo di set di dati.

    response = personalize.create_dataset_group(name = 'dataset group name') dataset_group_arn = response['datasetGroupArn'] description = personalize.describe_dataset_group(datasetGroupArn = dataset_group_arn)['datasetGroup'] print('Name: ' + description['name']) print('ARN: ' + description['datasetGroupArn']) print('Status: ' + description['status'])
  3. Crea un set di dati sulle interazioni tra elementi nel tuo nuovo gruppo di set di dati con il codice seguente. Assegna un nome al set di dati e fornisci il risultato dei schema_arn passaggi dataset_group_arn precedenti.

    response = personalize.create_dataset( name = 'datase_name', schemaArn = 'schema_arn', datasetGroupArn = 'dataset_group_arn', datasetType = 'Interactions' ) dataset_arn = response['datasetArn']
  4. Importa i tuoi dati con un processo di importazione del set di dati con il codice seguente. Il codice utilizza il metodo describe_dataset_import_job per tenere traccia dello stato del lavoro.

    Passa quanto segue come parametri: un nome per il lavoro, il dataset_arn percorso del passaggio precedente, il percorso del bucket Amazon S3 (s3://bucket name/folder name/ratings.csv) in cui hai archiviato i dati di formazione e il tuo ruolo di IAM servizio. ARN Hai creato questo ruolo come parte di. Prerequisiti per iniziare Amazon Personalize necessita dell'autorizzazione per accedere al bucket. Per informazioni, consulta Offrire ad Amazon Personalize l'accesso alle risorse di Amazon S3.

    import time response = personalize.create_dataset_import_job( jobName = 'JobName', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://amzn-s3-demo-bucket/filename.csv'}, roleArn = 'role_arn', importMode = 'FULL' ) dataset_interactions_import_job_arn = response['datasetImportJobArn'] description = personalize.describe_dataset_import_job( datasetImportJobArn = dataset_interactions_import_job_arn)['datasetImportJob'] print('Name: ' + description['jobName']) print('ARN: ' + description['datasetImportJobArn']) print('Status: ' + description['status']) max_time = time.time() + 3*60*60 # 3 hours while time.time() < max_time: describe_dataset_import_job_response = personalize.describe_dataset_import_job( datasetImportJobArn = dataset_interactions_import_job_arn ) status = describe_dataset_import_job_response["datasetImportJob"]['status'] print("Interactions DatasetImportJob: {}".format(status)) if status == "ACTIVE" or status == "CREATE FAILED": break time.sleep(60)

Dopo aver importato i dati, create una soluzione e una versione della soluzione come segue. La soluzione contiene le configurazioni per addestrare un modello e una versione della soluzione è un modello addestrato.

  1. Crea una nuova soluzione con il codice seguente. Passa quanto segue come parametri: il dataset_group_arn precedente, un nome per la soluzione e il nome per la ricetta User-Personalization-v2 (). ARN arn:aws:personalize:::recipe/aws-user-personalization-v2 Archivia la nuova soluzione per ARN un uso successivo.

    create_solution_response = personalize.create_solution( name='solution name', recipeArn= 'arn:aws:personalize:::recipe/aws-user-personalization-v2', datasetGroupArn = 'dataset group arn' ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
  2. Crea una versione della soluzione con il codice seguente. Passa come parametro il solution_arn passaggio precedente. Il codice seguente crea una versione della soluzione. Durante l'addestramento, il codice utilizza l'DescribeSolutionVersionoperazione per recuperare lo stato della versione della soluzione. Al termine della formazione, il metodo restituisce la nuova versione ARN della soluzione. Va archiviato per essere utilizzato in un secondo momento.

    import time import json create_solution_version_response = personalize.create_solution_version( solutionArn = solution_arn ) solution_version_arn = create_solution_version_response['solutionVersionArn'] print(json.dumps(create_solution_version_response, indent=2)) max_time = time.time() + 3*60*60 # 3 hours while time.time() < max_time: describe_solution_version_response = personalize.describe_solution_version( solutionVersionArn = solution_version_arn ) status = describe_solution_version_response["solutionVersion"]["status"] print("SolutionVersion: {}".format(status)) if status == "ACTIVE" or status == "CREATE FAILED": break time.sleep(60)

Dopo aver creato la versione della soluzione, distribuiscila con una campagna Amazon Personalize. Usa il codice seguente per creare una campagna che distribuisca la versione della tua soluzione. Passa i seguenti parametri come parametri: ilsolution_version_arn, e un nome per la campagna. Il metodo restituisce l'Amazon Resource Name (ARN) della tua nuova campagna. Va archiviato per essere utilizzato in un secondo momento.

response = personalize.create_campaign( name = 'campaign name', solutionVersionArn = 'solution version arn' ) arn = response['campaignArn'] description = personalize.describe_campaign(campaignArn = arn)['campaign'] print('Name: ' + description['name']) print('ARN: ' + description['campaignArn']) print('Status: ' + description['status'])

Dopo aver creato una campagna, puoi utilizzarla per ottenere raccomandazioni. Il codice seguente mostra come ottenere consigli da una campagna e stampare l'ID di ogni articolo consigliato. Trasmetti la descrizione ARN della campagna che hai creato nel passaggio precedente. Per l'ID utente, si passa l'ID di un utente ricavato dai dati di allenamento, ad esempio123.

response = personalizeRt.get_recommendations( campaignArn = 'Campaign ARN', userId = '123', numResults = 10 ) print("Recommended items") for item in response['itemList']: print (item['itemId'])

Come iniziare a usare Amazon Personalize APIs with Jupyter () notebook iPython

Per iniziare a utilizzare Amazon Personalize utilizzando i notebook Jupyter, clona o scarica una serie di notebook che si trovano nella cartella getting_started dell'archivio di esempi di Amazon Personalize. I taccuini ti guidano attraverso l'importazione di dati di formazione, la creazione di una soluzione, la creazione di una campagna e l'ottenimento di consigli utilizzando Amazon Personalize.