

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

# 选择用于训练的物品交互数据
<a name="event-values-types"></a>

**重要**  
默认情况下，所有新解决方案都使用自动训练。如果使用自动训练，则在解决方案处于活动状态时，就会产生训练费用。为避免产生不必要的费用，在完成后，可以[更新解决方案](updating-solution.md)以关闭自动训练。有关训练费用的信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

您可以在物品交互数据集中选择 Amazon Personalize 在创建解决方案版本（训练模型）时使用的事件。通过在训练之前选择物品交互数据，您可以只使用数据的相关子集进行训练，或者去除噪声来训练更优化的模型。有关物品交互数据集的更多信息，请参阅[物品交互数据](interactions-datasets.md)。

**注意**  
如果您使用 User-Personalization-v2 或 Personalized-Ranking-v2，则在按事件类型或值进行筛选之前，训练费用将基于物品交互数据。有关定价的更多信息，请参阅 [Amazon Personalize 定价](https://aws.amazon.com/personalize/pricing/)。

您可以按如下方式选择物品交互数据：
+ **根据类型选择记录** - 配置解决方案时，如果您的物品交互数据集在 EVENT\$1TYPE 列中包含事件类型，则您可以选择指定要在训练中使用的事件类型。例如，如果您的项目交互数据集包含*购买*、*点击*和*观看*事件类型，并且您希望 Amazon Personalize 仅使用*观看*事件来训练模型，则在配置解决方案时，您需要提供*观看*作为 Amazon Personalize 在训练中使用的 `event type`。

  如果您有多个事件类型，并且使用了 User-Personalization-v2 配方或 Personalized-Ranking-v2 配方，则在配置自定义解决方案时，您可以为不同的类型指定不同的权重。例如，您可以配置一个解决方案，为购买事件赋予高于点击事件的权重。有关更多信息，请参阅 [使用事件配置优化解决方案](optimizing-solution-events-config.md)。

   如果您的物品交互数据集在 EVENT\$1TYPE 列中有多个事件类型，并且您在配置解决方案时未提供某个事件类型，则 Amazon Personalize 会使用所有物品交互数据进行训练，无论其类型如何，权重均相同。
+ **根据类型和值选择记录** - 配置解决方案时，如果物品交互数据集包含 EVENT\$1TYPE 和 EVENT\$1VALUE 字段，则您可以将特定值设置为阈值，以从训练中排除记录。例如，如果 EVENT\$1TYPE 为*观看* 的事件的 EVENT\$1VALUE 数据是用户观看的视频的百分比，如果您将事件值阈值设置为 0.5，将事件类型设置为*观看*，则 Amazon Personalize 将仅使用 EVENT\$1VALUE 大于或等于 0.5 的*观看* 交互事件来训练模型。

以下代码演示了如何使用适用于 Python（Boto3）的 SDK 创建仅使用 `watch` 事件（用户观看了一半以上视频）的解决方案。

```
import boto3

personalize = boto3.client('personalize')

create_solution_response = personalize.create_solution(
    name = 'solution name',
    datasetGroupArn = 'arn:aws:personalize:region:accountId:dataset-group/datasetGroupName',
    recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization-v2',
    eventType = 'watch',
    solutionConfig = {
        "eventValueThreshold": "0.5"
    }
)

# Store the solution ARN
solution_arn = create_solution_response['solutionArn']

# Use the solution ARN to get the solution status
solution_description = personalize.describe_solution(solutionArn = solution_arn)['solution']
print('Solution status: ' + solution_description['status'])
```