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 do grupo de conjuntos de dados de domínio (SDK para Python (Boto3))
Este tutorial mostra como usar o SDK para Python (Boto3) para criar um grupo de conjuntos de dados de domínio para o domínio VIDEO_ON_DEMAND. Neste tutorial, você cria um recomendador para o caso de uso Principais opções para você.
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 for 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, você vai importar dados, criar um recomendador para o caso de uso Principais opções para você 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 for 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
gs-domain-interactions-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": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema( name='
gs-domain-interactions-schema
', schema=json.dumps(schema), domain='VIDEO_ON_DEMAND' ) 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
', domain = 'VIDEO_ON_DEMAND' ) dsg_arn = response['datasetGroupArn'] description = personalize.describe_dataset_group(datasetGroupArn = dsg_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 = '
interactions-dataset-name
', schemaArn = interactions_schema_arn, datasetGroupArn = dsg_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. Para saber como conceder acesso, 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
' ) 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 que o trabalho de importação do conjunto de dados for concluído, você poderá criar um recomendador. Use o código a seguir para criar um recomendador. Envie as seguintes informações como parâmetros: um nome para o recomendador, o nome do recurso da Amazon (ARN) do seu grupo de conjuntos de dados e arn:aws:personalize:::recipe/aws-vod-top-picks
para o ARN da fórmula. O código usa o método describe_recomender para rastrear o status do recomendador.
import time create_recommender_response = personalize.create_recommender( name = 'gs-python-top-picks', recipeArn = 'arn:aws:personalize:::recipe/aws-vod-top-picks', datasetGroupArn = dsg_arn ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn) max_time = time.time() + 3*60*60 # 3 hours while time.time() < max_time: version_response = personalize.describe_recommender( recommenderArn = recommender_arn ) status = version_response["recommender"]["status"] if status == "ACTIVE": print("Creation succeeded for {}".format(recommender_arn)) elif status == "CREATE FAILED": print("Creation failed for {}".format(recommender_arn)) if status == "ACTIVE": break else: print("Recommender creation is still in progress") time.sleep(60)
Depois de criar um recomendador, você poderá usá-lo para receber recomendações com código a seguir. Envie como parâmetros o nome do recurso da Amazon (ARN) do recomendador que você criou na etapa anterior e um ID do usuário (por exemplo, 123
). O método imprime a lista de itens recomendados.
response = personalizeRt.get_recommendations( recommenderArn = "arn:aws:personalize:us-west-2:014025156336:recommender/gs-python-top-picks-89", userId = '123' ) print("Recommended items") for item in response['itemList']: print (item['itemId'])
Começando a usar o Amazon Personalize APIs com notebooks Jupyter (IPython)
Para criar grupos de conjuntos de dados de domínio com cadernos Jupyter, clone ou baixe uma série de cadernos encontrados na pasta notebooks_managed_domains
nota
Antes de começar a usar os cadernos, crie seu ambiente seguindo as etapas em README.md