步骤 1:创建数据集组 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 1:创建数据集组

开始使用 Amazon Personalize 时,您可以创建一个数据集组。数据集组 是 Amazon Personalize 资源的容器,包括数据集、域推荐器和自定义资源。数据集组将资源组织到独立的集合中,在其中,一个数据集组中的资源不会影响任何其他数据集组中的资源。

您可以为每个业务域创建一个数据集组。例如,您可能有一个提供流视频的建议的应用程序,还有一个提供音频书籍的建议的应用程序。在 Amazon Personalize 中,您需要为每个应用程序创建一个数据集组。这样,来自一个应用程序的数据就不会影响 Amazon Personalize 为另一个应用程序生成的建议。

您可以创建域数据集组或自定义数据集组:

  • 使用域数据集组,您可以创建针对不同使用案例进行预配置和优化的资源。创建数据集组时,通过指定 VIDEO_ON_DEMAND 或 ECOMMERCE 域,将其设置为域数据集组。

    如果您有流视频或电子商务应用程序,我们建议您创建域数据集组。您仍然可以添加自定义资源,例如针对自定义使用案例训练的解决方案和解决方案版本。

  • 自定义数据集组 仅包含您根据使用案例配置的自定义资源。使用自定义资源,您可以根据业务需求,训练和部署可配置的解决方案与解决方案版本(经过训练的 Amazon Personalize 建议模型)。如果您没有 VIDEO_ON_DEMAND 或 ECOMMERCE 应用程序,我们建议您创建一个自定义数据集组。否则,我们建议从域数据集组开始,然后根据需要添加自定义资源。

您可以使用 Amazon Personalize 控制台、Amazon Command Line Interface (Amazon CLI) 或 Amazon SDK 创建数据集组。

创建数据集组(控制台)

通过在 Amazon Personalize 控制台中指定数据集组名称,创建数据集组。

创建数据集组
  1. 打开 Amazon Personalize 控制台(网址为 https://console.aws.amazon.com/personalize/home),并登录您的账户。

  2. 选择 Create dataset group (创建数据集组)

  3. 如果这是您第一次使用 Amazon Personalize,请在创建数据集组页面的新建数据集组中,选择开始使用

  4. Dataset group details (数据集组详细信息) 中,对于 Dataset group name (数据集组名称),为您的数据集组指定一个名称。

  5. 选择您的

    • 选择电子商务,创建 ECOMMERCE 域数据集组。

    • 选择点播视频,创建 VIDEO_ON_DEMAND 域数据集组。

    • 选择自定义,创建仅包含自定义资源(例如解决方案、市场活动和批量推理作业)的自定义数据集组。

  6. 对于标签,可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息,请参阅为 Amazon Personalize 资源添加标签

  7. 选择 Create dataset group (创建数据集组)。此时将显示概览页面。现在,您可以导入数据了。请参阅步骤 2:准备和导入数据

创建数据集组 (Amazon CLI)

要创建数据集组,请使用 create-dataset-group 操作。要创建域数据集组,请为域指定 ECOMMERCEVIDEO_ON_DEMAND。要创建自定义数据集组,请不要指定域。您可以使用标签参数,选择在 Amazon Personalize 中为资源添加标签。有关示例,请参阅添加标签 (Amazon CLI)

以下代码为 VIDEO_ON_DEMAND 域创建了域数据集组。

aws personalize create-dataset-group \ --name dataset-group-name \ --domain VIDEO_ON_DEMAND

如果成功,则数据集组 Amazon 资源名称 (ARN) 将显示,如下所示。

{ "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/DatasetGroupName" }

记录此值供将来使用。要显示您创建的数据集组,请使用 describe-dataset-group 命令,并指定返回的数据集组 ARN。

aws personalize describe-dataset-group \ --dataset-group-arn dataset group arn

数据集组及其属性显示如下。

{ "datasetGroup": { "name": "DatasetGroupName", "datasetGroupArn": "arn:aws:personalize:us-west-2:acct-id:dataset-group/DatasetGroupName", "status": "ACTIVE", "creationDateTime": 1542392161.262, "lastUpdatedDateTime": 1542396513.377 } }

当数据集组的 status 为活动时,您就可以导入数据了。有关更多信息,请参阅步骤 2:准备和导入数据

创建数据集组 (Amazon SDK)

使用以下代码创建域数据集组。为域数据集组命名,对于 domain,指定 ECOMMERCEVIDEO_ON_DEMAND。要创建自定义数据集组,请修改代码以删除域参数。

有关 API 操作的更多信息,请参阅 API 参考部分的 CreateDatasetGroup。您可以使用标签参数,选择在 Amazon Personalize 中为资源添加标签。有关示例,请参阅添加标签 (Amazon SDK)

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset_group( name = 'dataset group name', domain = 'business domain' ) 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'])
SDK for Java 2.x
public static String createDomainDatasetGroup(PersonalizeClient personalizeClient, String datasetGroupName, String domain) { try { CreateDatasetGroupRequest createDatasetGroupRequest = CreateDatasetGroupRequest.builder() .name(datasetGroupName) .domain(domain) .build(); return personalizeClient.createDatasetGroup(createDatasetGroupRequest).datasetGroupArn(); } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateDatasetGroupCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the domain dataset group parameters. export const domainDatasetGroupParams = { name: 'NAME', /* required */ domain: 'DOMAIN' /* required for a domain dsg, specify ECOMMERCE or VIDEO_ON_DEMAND */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateDatasetGroupCommand(domainDatasetGroupParams)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

DescribeDatasetGroup 操作会返回操作的 datasetGroupArn 和状态。当数据集组的 status 为活动时,您就可以导入数据了。有关更多信息,请参阅步骤 2:准备和导入数据