第 2 步:创建数据集和方案 - Amazon Personalize
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

第 2 步:创建数据集和方案

完成后第 1 步:创建数据集组,您随时可以创建数据集。数据集是 Amazon Personalize 数据容器。数据集在 Amazon Personalize 数据集组中进行组织。

您可以创建三种类型的历史数据集:用户、项目和交互。创建数据集时,您还可以为数据集创建架构。Aschema告诉 Amazon Personalize 您的数据结构,并允许 Amazon Personalize 解析数据。

您只能在数据集组中创建每种类型的数据集中创建一个,并且至少必须创建一个 “交互” 数据集。您可以使用 Amazon Personalize 控制台创建数据集,Amazon Command Line Interface(Amazon CLI) 或Amazon开发工具包。

有关更多信息(包括数据集和架构要求),请参阅数据集和架构

创建数据集和架构(控制台)

如果这是数据集组中的第一个数据集,则第一个数据集类型将是 International 数据集。要在控制台中创建交互式数据集,请指定数据集名称,然后在Avro Schema。如果它不是此数据集组中的第一个数据集,请选择数据集类型,然后指定名称和方案。

有关 Amazon Personalize 数据集和架构要求的信息,请参阅数据集和架构

注意

如果您刚完成第 1 步:创建数据集组,并且您已经在用户-项交互页面上,跳至此过程中的步骤 4。

创建数据集和方案

  1. 打开 Amazon Personalize 控制台https://console.aws.amazon.com/personalize/home并登录您的账户。

  2. 在存储库的数据集组页面上,选择您在第 1 步:创建数据集组。这将显示数据集组控制面板

  3. 上传数据集部分中,对于要导入的数据集类型(Amazon Personalize 数据集包括交互、用户或项目),请选择导入。这些区域有:配置 < dataset type >页面上随即显示。

  4. In数据集细节, 用于数据集名称中,为您的数据集指定名称。

  5. In架构详细信息, 用于架构选择,可以选择现有架构或选择创建新架构

  6. 如果要创建新架构,则对于架构定义中,粘贴到与您的数据匹配的架构 JSON 中。使用数据集和架构作为指南。

  7. 对于 New schema name (新架构名称),为新架构指定一个名称。

  8. 选择下一步并按照中的说明进行操作 第 3 步:导入数据以导入您的数据。

创建数据集和方案 (Amazon CLI)

要使用创建数据集和架构Amazon CLI,则首先在Avro Schema并将其添加到 Amazon Personalize 中使用CreateSchemaoperation. 然后使用CreateDatasetoperation. 有关 Amazon Personalize 数据集和架构要求的信息,请参阅数据集和架构

创建方案和数据集

  1. 以 Avro 格式创建架构文件并将其保存为 JSON 文件。此文件应基于要创建的数据集类型,例如 “交互”。

    架构必须与数据和架构中的列匹配name必须与 Amazon 个性化识别的三种类型的数据集之一匹配。以下是最小交互组件数据集架构的示例。有关更多示例,请参阅 数据集和架构

    { "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" }
  2. 通过运行以下命令在 Amazon Personalize 中创建架构。ReplaceschemaName将替换为架构的名称,并将file://SchemaName.json对应为您在上一步中创建的 JSON 文件的位置。此示例将该文件显示为属于当前文件夹。有关该 API 的更多信息,请参阅CreateSchema

    aws personalize create-schema \ --name SchemaName \ --schema file://SchemaName.json

    这将显示架构 Amazon 资源名称 (ARN),如下例所示:

    { "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/SchemaName" }
  3. 通过运行以下命令来创建一个空数据集。从提供数据集组 Amazon 资源名称 (ARN)创建数据集组 (Amazon CLI)和上一步中的架构 ARN。dataset-type 必须与上一个步骤中的架构 name 匹配。有关该 API 的更多信息,请参阅CreateDataset

    aws personalize create-dataset \ --name Dataset Name \ --dataset-group-arn Dataset Group ARN \ --dataset-type Dataset Type \ --schema-arn Schema Arn

    此时将显示数据集 ARN,如以下示例所示。

    { "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetName/INTERACTIONS" }
  4. 记下数据集 ARN 以供将来使用。创建数据集后,您可以随时导入训练数据。请参阅 第 3 步:导入数据

创建数据集和方案 (Amazon开发工具包)

要使用创建数据集和架构AmazonSDK 中,首先在Avro Schema并将其添加到 Amazon Personalize 中使用CreateSchemaoperation. 然后使用CreateDatasetoperation. 有关 Amazon Personalize 数据集和架构要求的信息,请参阅数据集和架构

创建方案和数据集

  1. 以 Avro 格式创建架构文件,并将其保存为 JSON 文件在您的工作目录中。

    架构必须与数据和架构中的列匹配name必须与 Amazon 个性化识别的三种类型的数据集之一匹配。以下是最小交互组件数据集架构的示例。有关更多示例,请参阅 数据集和架构

    { "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" }
  2. 使用创建架构CreateSchemaAPI。

    SDK for Python (Boto3)

    使用以下create_schema方法创建架构。Replaceschema name替换为架构的名称。

    import boto3 personalize = boto3.client('personalize') with open('schemaFile.json') as f: createSchemaResponse = personalize.create_schema( name = 'schema name', schema = f.read() ) schema_arn = createSchemaResponse['schemaArn'] print('Schema ARN:' + schema_arn )
    SDK for Java 2.x

    使用以下createSchema方法创建架构。将以下内容作为参数传递:个性化设置、架构的名称以及架构 JSON 文件的文件路径。

    public static String createSchema(PersonalizeClient personalizeClient, String schemaName, String filePath) { String schema = null; try { schema = new String(Files.readAllBytes(Paths.get(filePath))); } catch (IOException e) { System.out.println(e.getMessage()); } try { CreateSchemaRequest createSchemaRequest = CreateSchemaRequest.builder() .name(schemaName) .schema(schema) .build(); String schemaArn = personalizeClient.createSchema(createSchemaRequest).schemaArn(); System.out.println("Schema arn: " + schemaArn); return schemaArn; } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

    Amazon Personalize 返回新架构的 ARN。记下它,因为您在下一个步骤中需要用到它。

  3. 使用创建数据集CreateDatasetoperation. 有关数据集类型的信息,请参阅数据集和架构

    SDK for Python (Boto3)

    使用以下create_dataset方法创建 Amazon Personalize 数据集。指定datasetGroupArn返回创建数据集组 (Amazon开发工具包)。使用schemaArn创建在上一步中。Replacedataset type与您正在上传的数据集类型(交互、用户或项目)。

    import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset( name = 'datase_name', schemaArn = 'schema_arn', datasetGroupArn = 'dataset_group_arn', datasetType = 'dataset_type' ) print ('Dataset Arn: ' + response['datasetArn'])
    SDK for Java 2.x

    使用以下createDataset方法创建 Amazon Personalize 数据集。传递以下作为参数:个性化设置、数据集的名称、schemaArn、数据集组 ARN 和数据集类型(交互、用户或项目)。

    public static String createDataset(PersonalizeClient personalizeClient, String datasetName, String datasetGroupArn, String datasetType, String schemaArn) { try { CreateDatasetRequest request = CreateDatasetRequest.builder() .name(datasetName) .datasetGroupArn(datasetGroupArn) .datasetType(datasetType) .schemaArn(schemaArn).build(); String datasetArn = personalizeClient.createDataset(request).datasetArn(); System.out.println("Dataset " + datasetName + " created. Dataset ARN: " + datasetArn); return datasetArn; } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

    创建数据集后,您可以随时导入训练数据。请参阅 第 3 步:导入数据