Erste Schritte (SDK for 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 (SDK for Python (Boto3))

Dieses Tutorial zeigt Ihnen, wie Sie den Amazon Personalize Personalize-Workflow mit dem SDK for Python (Boto3) von Anfang bis Ende abschließen.

Um unnötige Kosten zu vermeiden, löschen Sie nach Abschluss dieser Übung „Erste Schritte“ die Ressourcen, die Sie in diesem Tutorial erstellt haben. Weitere Informationen finden Sie unter Bereinigen von 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 entsprechend den Voraussetzungen formatiert sind.

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

Tutorial

In den folgenden Schritten verifizieren Sie Ihre Umgebung und erstellen SDK für Python-Clients (Boto3) für Amazon Personalize. Anschließend importieren Sie Daten, erstellen und implementieren eine Lösungsversion mit einer Kampagne 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. getting-started-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": "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. 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') 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. 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 = 'datase_name', schemaArn = 'schema_arn', datasetGroupArn = 'dataset_group_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 den ARN Ihrer IAM-Servicerolle. Sie haben diese Rolle als Teil von erstellt. Voraussetzungen für den Einstieg Amazon Personalize benötigt eine Genehmigung für den Zugriff auf den Bucket. Siehe Amazon Personalize Zugriff auf Amazon S3-Ressourcen gewähren.

    import time response = personalize.create_dataset_import_job( jobName = 'JobName', datasetArn = 'dataset_arn', dataSource = {'dataLocation':'s3://bucket/file.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)

Nach dem Import Ihrer Daten erstellen Sie wie folgt eine Lösung und eine Lösungsversion. Die Lösung enthält die Konfigurationen zum Trainieren eines Modells, und eine Lösungsversion ist ein trainiertes Modell.

  1. Erstellen Sie eine neue Lösung mit dem folgenden Code. Übergeben Sie Folgendes als Parameter: das dataset_group_arn von früher, einen Namen für die Lösung und den ARN für das Benutzerpersonalisierungsrezept ()arn:aws:personalize:::recipe/aws-user-personalization. Speichern Sie den ARN Ihrer neuen Lösung für die spätere Verwendung.

    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)
  2. Erstellen Sie eine Lösungsversion mit dem folgenden Code. Übergeben Sie als Parameter den solution_arn aus dem vorherigen Schritt. Der folgende Code erstellt eine Lösungsversion. Während des Trainings verwendet der Code den DescribeSolutionVersion Vorgang, um den Status der Lösungsversion abzurufen. Wenn das Training abgeschlossen ist, gibt die Methode den ARN Ihrer neuen Lösungsversion zurück. Speichern Sie es für eine spätere Verwendung.

    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)

Nachdem Sie Ihre Lösungsversion erstellt haben, stellen Sie sie mit einer Amazon Personalize Personalize-Kampagne bereit. Verwenden Sie den folgenden Code, um eine Kampagne zu erstellen, die Ihre Lösungsversion bereitstellt. Übergeben Sie Folgendes als Parameter: thesolution_version_arn, und einen Namen für die Kampagne. Die Methode gibt den Amazon-Ressourcennamen (ARN) Ihrer neuen Kampagne zurück. Speichern Sie es für eine spätere Verwendung.

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

Nachdem Sie eine Kampagne erstellt haben, können Sie sie verwenden, um Empfehlungen zu erhalten. Der folgende Code zeigt, wie Sie Empfehlungen aus einer Kampagne erhalten und die ID jedes empfohlenen Artikels ausdrucken können. Übergeben Sie den ARN der Kampagne, die Sie im vorherigen Schritt erstellt haben. Als Benutzer-ID übergeben Sie die ID eines Benutzers, der aus den Trainingsdaten stammt, z. 123 B.

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

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

Um mit der Verwendung von Amazon Personalize mithilfe von Jupyter-Notizbüchern zu beginnen, klonen oder laden Sie eine Reihe von Notizbüchern herunter, die sich im Ordner getting_started des Amazon Personalize Personalize-Beispiel-Repositorys befinden. Die Notizbücher führen Sie durch den Import von Trainingsdaten, die Erstellung einer Lösung, die Erstellung einer Kampagne und das Einholen von Empfehlungen mithilfe von Amazon Personalize.