

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

# 为 Amazon Personalize 准备训练数据
<a name="preparing-training-data"></a>

[选择域应用场景或配方](use-cases-and-recipes.md)并记下其数据要求后，就可以开始准备数据了。Amazon Personalize 可以使用以下数据类型：
+ [**物品交互**](interactions-datasets.md) - 在 Amazon Personalize 中，*物品交互*是用户与您目录中的物品之间的积极交互事件。例如，用户在看电影、查看商品列表或购买一双鞋。
+ [**物品**](items-datasets.md) - 物品元数据可能包括目录中每个物品的价格、SKU 类型、描述或库存等信息。
+ [**用户**](users-datasets.md) - 用户元数据可能包括每个用户的年龄、性别、会员资格和兴趣等信息。
+ [**操作**](actions-datasets.md) - *操作*是您可能需要向客户推荐的交互活动。操作可能包括安装您的移动应用、填写会员资料、加入忠诚度计划或注册促销电子邮件。对于 Next-Best-Action 配方，需要操作数据集。没有其它自定义配方或域使用案例使用操作数据。
+ [**操作交互**](action-interactions-datasets.md) - 操作交互是用户和操作之间的交互事件。Next-Best-Action 配方使用这些数据和操作数据集中的数据向用户建议操作。没有其他自定义配方或域应用场景使用操作交互数据。

Amazon Personalize 将数据存储在*数据集*中，每种数据类型对应一个数据集。每个数据集都有不同的要求。将数据导入 Amazon Personalize 数据集时，您可以选择批量、单独导入记录（或两者兼而有之）。批量导入涉及导入 Amazon S3 存储桶中的一个或多个 CSV 文件中存储的大量历史记录。
+ 如果您没有批量数据，则可以使用单独的导入操作来收集数据和直播事件，直到满足 Amazon Personalize 训练要求以及域应用场景或配方的数据要求。有关记录事件的信息，请参阅[记录实时事件以影响推荐](recording-events.md)。有关导入单个记录的信息，请参阅[将单个记录导入 Amazon Personalize 数据集](incremental-data-updates.md)。
+ 如果您不确定自己是否有足够的数据或对数据质量存有疑问，则可以将您的数据导入 Amazon Personalize 数据集，然后使用 Amazon Personalize 对其进行分析。有关更多信息，请参阅 [分析 Amazon Personalize 数据集中的数据质量和数量](analyzing-data.md)。

 以下各节介绍了每种 Amazon Personalize 数据集类型的数据要求和准备批量数据的准则。如果您没有批量数据，请查看各节以了解可以通过单个导入操作导入的必需数据和可选数据。如果您在设置数据格式方面需要其他帮助，可以使用 Amazon SageMaker AI Data Wrangler（Data Wrangler）来准备数据。有关更多信息，请参阅 [使用 Amazon A SageMaker I Data Wrangler 准备和导入批量数据](preparing-importing-with-data-wrangler.md)。

完成数据准备后，就可以创建架构 JSON 文件。此文件向 Amazon Personalize 提供关于数据结构的信息。有关更多信息，请参阅 [为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。

**Topics**
+ [适用于所有数据类型的批量数据格式准则](#general-formatting-guidelines)
+ [为训练准备物品作交互数据](interactions-datasets.md)
+ [为训练准备物品元数据](items-datasets.md)
+ [为训练准备用户元数据](users-datasets.md)
+ [为训练准备操作元数据](actions-datasets.md)
+ [为训练准备操作交互数据](action-interactions-datasets.md)

## 适用于所有数据类型的批量数据格式准则
<a name="general-formatting-guidelines"></a>

以下指南和要求有助于确保批量数据格式正确。
+ 您的输入数据必须在 CSV（逗号分隔值）文件中。
+ CSV 文件的第一行必须包含列标题。不要将标题括在引号 (") 中。
+  列必须具有唯一的字母数字名称。例如，您不能同时添加 `GENRES_FIELD_1` 字段和 `GENRESFIELD1` 字段。
+ 如果您要导入多个 CSV 文件，则所有文件的列标题必须完全一致。
+ 确保您的数据集类型有必填字段，并确保其名称符合 Amazon Personalize 要求。例如，您的物品数据可能有一个名为 `ITEM_IDENTIFICATION_NUMBER` 的列，其中包含每件物品的 ID。要将此列用作 ITEM\$1ID 字段，请将该列重命名为 `ITEM_ID`。如果您使用 Data Wrangler 来设置数据格式，则可以使用**为 Amazon Personalize 映射列** Data Wrangler 转换，来确保您的列命名正确。

   有关使用 Data Wrangler 准备数据的信息，请参阅[使用 Amazon A SageMaker I Data Wrangler 准备和导入批量数据](preparing-importing-with-data-wrangler.md)。
+  CSV 文件中的每条记录必须都在单行中。
+ Amazon Personalize 不支持复杂数据类型，例如数组和映射。
+ 要让 Amazon Personalize 在训练或筛选时使用布尔数据，请使用字符串值 `"True"` 或数字值 `1` 代表 true，使用字符串值 `"False"` 或数字值 `0` 代表 false。
+ 如果您使用 Data Wrangler 设置数据格式，则可以使用 Data Wrangler 转换[将值解析为类型](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-transform.html#data-wrangler-transform-cast-type)来转换数据类型。
+ `TIMESTAMP` 和 `CREATION_TIMESTAMP` 数据必须采用 *UNIX 纪元* 时间格式。有关更多信息，请参阅 [时间戳数据](interactions-datasets.md#timestamp-data)。
+ 避免在物品 ID、用户 ID 和操作 ID 数据中包含任何 `"` 字符或特殊字符。
+ 如果您的数据包含任何非 ASCII 编码字符，则必须采用 UTF-8 格式编码 CSV 文件。
+ 确保按照[非结构化文本元数据](items-datasets.md#text-data)中所述设置所有文本数据的格式。