

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

# 自定义数据集和架构
<a name="custom-datasets-and-schemas"></a>

创建自定义数据集组时，您可以从头开始创建自己的架构。自定义数据集组数据集和架构的必填字段更少，灵活性更高。以下主题说明了自定义数据集组的数据集的架构与数据要求。每个数据集部分都列出了数据集类型所需的数据，并提供了架构的 JSON 示例。

有关您可以导入 Amazon Personalize 的数据类型的信息，请参阅 [Amazon Personalize 可以使用的数据类型](datasets.md)。有关 Amazon Personalize 架构的一般要求（例如格式设置要求和可用的字段数据类型）的信息，请参阅[为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。这些要求适用于所有 Amazon Personalize 架构。

**Topics**
+ [自定义数据集和架构要求](#dataset-requirements)
+ [物品交互数据集架构要求（自定义）](interactions-dataset-requirements.md)
+ [用户数据集架构要求（自定义）](user-dataset-requirements.md)
+ [物品数据集架构要求（自定义）](item-dataset-requirements.md)
+ [操作数据集架构要求（自定义）](action-dataset-requirements.md)
+ [操作交互数据集架构要求（自定义）](action-interactions-dataset-requirements.md)

## 自定义数据集和架构要求
<a name="dataset-requirements"></a>

在为自定义数据集组创建数据集时，每种数据集类型都具有以下必填字段和带有所需数据类型的保留关键字。


| 数据集类型 | 必填字段 | 保留关键字 | 
| --- | --- | --- | 
| 物品交互（[架构示例](interactions-dataset-requirements.md#schema-examples-interactions)） | USER\_ID (`string`)<br />ITEM\_ID (`string`)<br />TIMESTAMP (`long`) | EVENT\_TYPE (`string`)<br />EVENT\_VALUE（`float`、`null`）<br />IMPRESSION（`string`、`null`）<br />RECOMMENDATION\_ID（`string`、`null`）<br />EVENT\_ATTRIBUTION\_SOURCE（`string`、`null`） | 
| 用户（[架构示例](user-dataset-requirements.md#schema-examples-users)） | USER\_ID (`string`)<br />1 个元数据字段（分类 `string` 或数字） |  | 
| 物品（[架构示例](item-dataset-requirements.md#schema-examples-items)） | ITEM\_ID (`string`)<br />1 个元数据字段（分类或文本 `string` 字段或数字字段） | CREATION\_TIMESTAMP (`long`) | 
| 操作（[架构示例](action-dataset-requirements.md#schema-examples-actions)） | ACTION\_ID (`string`)<br />1 个元数据字段（分类 `string` 或数字） | CREATION\_TIMESTAMP (`long`)<br />VALUE（`long`、`null`）<br />TYPE（`string`、`null`）<br />EXPIRATION\_TIMESTAMP（`long`、`null`）<br />REPEAT\_FREQUENCY（`long`、`null`） | 
| 操作交互（[架构示例](action-interactions-dataset-requirements.md#schema-examples-action-interactions)） | USER\_ID (`string`)<br />ACTION\_ID (`string`)<br />EVENT\_TYPE (`string`)<br />TIMESTAMP (`long`) | IMPRESSION（`string`、`null`）<br />RECOMMENDATION\_ID（`string`、`null`） | 

### 元数据字段
<a name="metadata-fields"></a>

元数据包括不需要或不使用保留关键字的字符串或非字符串字段。元数据架构具有以下限制：
+ 用户、物品和操作架构至少需要一个元数据字段。
+ 您最多可以为用户架构添加 25 个元数据字段，为物品架构最多添加 100 个元数据字段，并为操作架构最多添加 10 个元数据字段。
+ 如果您添加自己的类型为 `string` 的元数据字段，则该字段必须包含 `categorical` 属性或 `textual` 属性（只有物品架构支持带有文本属性的字段）。否则，Amazon Personalize 在训练模型时不会使用该字段。

### 保留关键字
<a name="reserved-keywords"></a>

保留关键字是可选的非元数据字段。这些字段被视为保留字段，因为您在使用这些字段时必须将其定义为所需的数据类型，而且关键字不能用作数据中的值。保留的分类字符串字段的 `categorical` 必须设置为 `true`，而保留的字符串字段不能是分类字段。以下是保留关键字：
+ EVENT\_TYPE：对于具有一种或多种事件类型（例如*单击* 和*下载*）的物品交互数据集，使用 `EVENT_TYPE` 字段。您必须将 EVENT\_TYPE 字段定义为 `string`，且不能将其设置为分类。
+ EVENT\_VALUE：对于包含事件值数据（例如用户观看视频的百分比）的物品交互数据集，使用类型为 `float` 和可选类型为 `null` 的 `EVENT_VALUE` 字段。
+  CREATION\_TIMESTAMP：对于具有每个物品创建日期时间戳的物品或操作数据集，使用类型为 `long` 的 `CREATION_TIMESTAMP` 字段。Amazon Personalize 使用 `CREATION_TIMESTAMP` 数据，计算物品的使用年限并相应地调整建议。请参阅[创建时间戳数据](items-datasets.md#creation-timestamp-data)。
+  IMPRESSION：对于包含显式展示数据的物品交互数据集，使用类型为 `String` 和可选类型为 `null` 的 `IMPRESSION` 字段。展示是用户与特定物品交互（例如，单击或观看）时可见的物品列表。有关更多信息，请参阅 [展示数据](interactions-datasets.md#interactions-impressions-data)。
+  RECOMMENDATION\_ID：对于使用先前建议作为隐式展示数据的物品交互数据集，可以选择使用类型为 `String` 和可选类型为 `null` 的 `RECOMMENDATION_ID` 字段。

  在生成建议时，您无需为 Amazon Personalize 添加 `RECOMMENDATION_ID` 字段，即可使用隐式展示。您可以在没有它的情况下，在 [PutEvents](API_UBS_PutEvents.md) 操作中传递 `recommendationId`。有关更多信息，请参阅 [展示数据](interactions-datasets.md#interactions-impressions-data)。
+ VALUE：对于操作数据集，如果您对于部分或全部操作具有数据值，请在架构中添加一个 `VALUE` 字段。对于其类型，请使用 `long` 和可选类型 `null`。有关操作及其值的更多信息，请参阅[Value data](actions-datasets.md#action-value-data)。
+ ACTION\_EXPIRATION\_TIMESTAMP：对于操作数据集，如果您的部分或全部操作有过期时间戳，请在架构中添加一个 `ACTION_EXPIRATION_TIMESTAMP` 字段。对于其类型，请使用 `long` 和可选类型 `null`。有关过期时间戳的更多信息，请参阅[操作过期时间戳数据](actions-datasets.md#action-expiration-timestamp-data)。
+ REPEAT\_FREQUENCY：对于操作数据集，如果您对于部分或全部操作具有重复频率数据，请在架构中添加一个 `REPEAT_FREQUENCY` 字段。对于其类型，请使用 `long` 和可选类型 `null`。有关重复频率数据的更多信息，请参阅[重复频率数据](actions-datasets.md#action-repeat-frequency)。