Erste Schritte mit einer Domain-Datensatzgruppe (SDKfür Python (Boto3)) - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit einer Domain-Datensatzgruppe (SDKfür Python (Boto3))

Dieses Tutorial zeigt Ihnen, wie Sie SDK for Python (Boto3) verwenden, um eine Domain-Datensatzgruppe für die Domäne VIDEO DEMAND _ON_ zu erstellen. In diesem Tutorial erstellen Sie eine Empfehlung für die Top-Picks für Ihren Anwendungsfall.

Wenn Sie die Übung Erste Schritte abgeschlossen haben, löschen Sie die Ressourcen, die Sie erstellt haben, um unnötige Kosten zu vermeiden. Weitere Informationen finden Sie unter Anforderungen für das Löschen von Amazon Personalize Personalize-Ressourcen.

Voraussetzungen

Im Folgenden werden die Voraussetzungen für die Verwendung der Python-Beispiele in diesem Handbuch erläutert:

  • Füllen Sie das ausVoraussetzungen für den Einstieg, um die erforderlichen Berechtigungen einzurichten und die Trainingsdaten zu erstellen. Wenn Sie Ihre eigenen Quelldaten verwenden, stellen Sie sicher, dass Ihre Daten wie in den Voraussetzungen beschrieben formatiert sind.

  • Richten Sie Ihre AWS SDK for Python (Boto3) Umgebung wie unter beschrieben ein. Einrichtung der AWS SDKs

Tutorial

In den folgenden Schritten verifizieren Sie Ihre Umgebung und erstellen Clients SDK für Python (Boto3) für Amazon Personalize. Anschließend importieren Sie Daten, erstellen eine Empfehlung für den für Sie am besten geeigneten Anwendungsfall und erhalten Empfehlungen.

Wenn Sie die Schritte für die Voraussetzungen abgeschlossen haben, führen Sie das folgende Python-Beispiel aus, um zu überprüfen, ob Ihre Umgebung korrekt konfiguriert ist. Dieser Code erstellt auch die Amazon Personalize Personalize-Boto3-Clients, die Sie in diesem Tutorial verwenden. Wenn Ihre Umgebung korrekt konfiguriert ist, wird eine Liste der verfügbaren Rezepte angezeigt, und Sie können die anderen Beispiele in diesem Tutorial ausführen.

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

Nachdem Sie Amazon Personalize Boto3-Clients erstellt und Ihre Umgebung verifiziert haben, importieren Sie die historischen Daten, die Sie beim Abschluss des erstellt haben. Voraussetzungen für den Einstieg Gehen Sie wie folgt vor, um historische Daten in Amazon Personalize zu importieren:

  1. Verwenden Sie den folgenden Code, um ein Schema in Amazon Personalize zu erstellen. gs-domain-interactions-schemaErsetzen Sie es durch einen Namen für das 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": "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))
  2. Erstellen Sie eine Dataset-Gruppe mit dem folgenden Code. dataset group nameDurch einen Namen für die Datensatzgruppe ersetzen.

    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'])
  3. Erstellen Sie einen Datensatz mit Artikelinteraktionen in Ihrer neuen Datensatzgruppe mit dem folgenden Code. Geben Sie dem Datensatz einen Namen und geben Sie die schema_arn Daten und dataset_group_arn aus den vorherigen Schritten an.

    response = personalize.create_dataset( name = 'interactions-dataset-name', schemaArn = interactions_schema_arn, datasetGroupArn = dsg_arn, datasetType = 'INTERACTIONS' ) dataset_arn = response['datasetArn']
  4. Importieren Sie Ihre Daten mit einem Datensatz-Importjob mit dem folgenden Code. Der Code verwendet die Methode describe_dataset_import_job, um den Status des Jobs zu verfolgen.

    Übergeben Sie Folgendes als Parameter: einen Namen für den Job, den Namen dataset_arn aus dem vorherigen Schritt, den Amazon S3 S3-Bucket-Pfad (s3://bucket name/folder name/ratings.csv), in dem Sie die Trainingsdaten gespeichert haben, und Ihre IAM ServicerollenARN. Sie haben diese Rolle als Teil von erstelltVoraussetzungen für den Einstieg. Amazon Personalize benötigt eine Genehmigung für den Zugriff auf den Bucket. Informationen zur Gewährung von Zugriff finden Sie unterAmazon Personalize Zugriff auf Amazon S3 S3-Ressourcen gewähren.

    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' ) 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)

Nachdem Ihr Datensatz-Importjob abgeschlossen ist, können Sie eine Empfehlung erstellen. Verwenden Sie den folgenden Code, um einen Empfehlungsgeber zu erstellen. Übergeben Sie Folgendes als Parameter: einen Namen für den Empfehlungsgeber, den Amazon-Ressourcennamen (ARN) Ihrer Datensatzgruppe und arn:aws:personalize:::recipe/aws-vod-top-picks für das RezeptARN. Der Code verwendet die Methode describe_recommender, um den Status des Empfehlungsgebers zu verfolgen.

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)

Nachdem Sie einen Empfehlungsgeber erstellt haben, verwenden Sie ihn, um Empfehlungen mit dem folgenden Code abzurufen. Übergeben Sie als Parameter den Amazon-Ressourcennamen (ARN) des Empfehlungsgebers, den Sie im vorherigen Schritt erstellt haben, und eine Benutzer-ID (z. B.123). Die Methode druckt die Liste der empfohlenen Artikel.

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'])

Erste Schritte mit Amazon Personalize APIs mit Jupyter () -Notebooks iPython

Um mit der Erstellung von Domain-Datensatzgruppen mit Jupyter-Notizbüchern zu beginnen, klonen oder laden Sie eine Reihe von Notizbüchern herunter, die sich im Ordner notebooks_managed_domains des Amazon Personalize Personalize-Beispiel-Repositorys befinden. Die Notizbücher führen Sie durch das Importieren von Trainingsdaten, das Erstellen einer Empfehlung und das Abrufen von Empfehlungen mit Amazon Personalize.