As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conceitos básicos (SDK para Python (Boto3))
Este tutorial mostra como concluir o fluxo de trabalho completo do Amazon Personalize com o SDK para Python (Boto3).
Depois de concluir este exercício, exclua os recursos que você criou para evitar cobranças desnecessárias. Para obter mais informações, consulte Requisitos para excluir recursos do Amazon Personalize.
Tópicos
Pré-requisitos
Veja a seguir as etapas obrigatórias para usar os exemplos do Python neste guia:
-
Conclua Pré-requisitos de conceitos básicos para configurar as permissões necessárias e criar os dados de treinamento. Se estiver usando seus próprios dados de origem, verifique se eles estão formatados de acordo com os requisitos.
-
Configure seu AWS SDK para Python (Boto3) ambiente conforme especificado emConfigurando o AWS SDKs.
Tutorial
Nas etapas a seguir, você vai verificar seu ambiente e criar clientes do SDK para Python (Boto3) para o Amazon Personalize. Em seguida, importará dados, criará e implantará uma versão da solução com uma campanha e receberá recomendações.
Depois de concluir as etapas obrigatórias, execute o seguinte exemplo de Python para confirmar que seu ambiente está configurado corretamente. Esse código também cria os clientes do boto3 do Amazon Personalize que serão usados neste tutorial. Se o seu ambiente estiver configurado corretamente, uma lista das fórmulas disponíveis será exibida e você poderá executar outros exemplos neste tutorial.
import boto3 personalizeRt = boto3.client('personalize-runtime') personalize = boto3.client('personalize') response = personalize.list_recipes() for recipe in response['recipes']: print (recipe)
Depois de criar seus clientes do boto3 do Amazon Personalize e verificar seu ambiente, importe os dados históricos que você gerou ao concluir Pré-requisitos de conceitos básicos. Para importar os dados históricos para o Amazon Personalize, faça o seguinte:
-
Use o código a seguir para criar um esquema no Amazon Personalize. Substitua
getting-started-schema
por um nome para o esquema.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)) -
Crie um grupo de conjuntos de dados com o seguinte código. Substitua
dataset group name
por um nome para o grupo de conjuntos de dados.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']) -
Crie um conjunto de dados de interações com itens no novo grupo de conjuntos de dados com o código a seguir. Nomeie o conjunto de dados e informe
schema_arn
edataset_group_arn
das etapas anteriores.response = personalize.create_dataset( name = '
datase_name
', schemaArn = 'schema_arn
', datasetGroupArn = 'dataset_group_arn
', datasetType = 'Interactions' ) dataset_arn = response['datasetArn'] -
Importe seus dados com um trabalho de importação do conjunto de dados com o código a seguir. O código usa o método describe_dataset_import_job para rastrear o status do trabalho.
Envie as seguintes informações como parâmetros: um nome para o trabalho, o
dataset_arn
da etapa anterior, o caminho do bucket do Amazon S3 (s3://
) onde você salvou os dados de treinamento e o ARN do seu perfil de serviço de IAM. Você criou esse perfil como parte de Pré-requisitos de conceitos básicos. O Amazon Personalize precisa de permissão para acessar o bucket. Consulte Como conceder permissão ao Amazon Personalize para acessar recursos do Amazon S3.bucket name
/folder name
/ratings.csvimport 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)
Depois de importar os dados, crie uma solução e uma versão da solução conforme mostrado a seguir. A solução inclui as configurações para treinar um modelo, e uma versão da solução é um modelo treinado.
-
Crie uma nova solução com o código a seguir. Passe o seguinte como parâmetros: o
dataset_group_arn
anterior, um nome para a solução e o ARN para a receita User-Personalization-v 2 ()arn:aws:personalize:::recipe/aws-user-personalization-v2
. Armazene o ARN da sua nova solução para uso posterior.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) -
Crie uma versão da solução com o código a seguir. Passe como parâmetro o
solution_arn
da etapa anterior. Crie uma versão da solução com o código a seguir. Durante o treinamento, o código usa a operação DescribeSolutionVersion para recuperar o status da versão da solução. Quando o treinamento for concluído, o método retornará o ARN da sua nova versão da solução. Armazene-o para uso posterior.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)
Depois de criar sua versão da solução, você poderá implantá-la com uma campanha do Amazon Personalize. Use o código a seguir para criar uma campanha que implanta sua versão da solução. Envie as seguintes informações como parâmetros: solution_version_arn
e um nome para a campanha. O método retorna o nome do recurso da Amazon (ARN) do novo esquema. Armazene-o para uso posterior.
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'])
Depois de criar uma campanha, você pode usá-la para obter recomendações. O código a seguir mostra como obter recomendações a partir de uma campanha e exibir o ID de cada item recomendado. Envie o ARN da campanha que você criou na etapa anterior. Para ID de usuário, envie o ID de um usuário a partir dos dados de treinamento, como 123
.
response = personalizeRt.get_recommendations( campaignArn = '
Campaign ARN
', userId = '123', numResults = 10 ) print("Recommended items") for item in response['itemList']: print (item['itemId'])
Introdução ao uso do Amazon Personalize APIs com notebooks Jupyter (IPython)
Para começar a usar o Amazon Personalize com cadernos Jupyter, clone ou baixe uma série de cadernos encontrados na pasta getting_started
nota
Antes de começar a usar os cadernos, crie seu ambiente seguindo as etapas em README.md