

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

# 配置训练时使用的列
<a name="custom-config-columns"></a>

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

如果您的配方生成了物品建议或用户细分，则可以修改 Amazon Personalize 在创建解决方案版本（训练模型）时考虑的列。

您可以更改训练时使用的列，以控制 Amazon Personalize 在训练模型（创建解决方案版本）时使用的数据。您可以这样做，以试验不同的训练数据组合；也可以排除无有意义数据的列。例如，可能有一列，您只想将其用来筛选建议。您可以将此列排除在训练之外，Amazon Personalize 只有在筛选时才会考虑该列。

您无法排除 EVENT\$1TYPE 列。默认情况下，Amazon Personalize 使用可在训练时采用的所有列。始终从训练中排除以下数据：
+ 具有布尔数据类型的列
+ [展示数据](interactions-datasets.md#interactions-impressions-data)
+ 既不是分类也不是文本的自定义字符串字段

 您不能在训练中包括展示数据，但如果您的应用场景或配方使用了这些数据，Amazon Personalize 会在您获取建议时使用展示数据来指导浏览。

 如果您已经创建了一个解决方案，并且想要修改它在训练时使用的列，则可以克隆该解决方案。克隆解决方案时，您可以使用现有解决方案的配置（例如食谱和超参数）作为起点，并根据需要进行任何更改。有关更多信息，请参阅 [克隆解决方案（控制台）](cloning-solution.md)。

您可以配置 Amazon Personalize 在通过 Amazon Personalize 控制台、AWS Command Line Interface (AWS CLI) 或 AWS SDK 进行训练时使用的列。有关使用 Amazon Personalize 控制台选择列的信息，请参阅[创建解决方案（控制台）](create-solution.md#configure-solution-console)中的高级配置步骤。创建解决方案后，您可以在 Amazon Personalize 控制台的解决方案详情页面或通过 [DescribeSolution](API_DescribeSolution.md) 操作，查看解决方案使用的列。

**Topics**
+ [配置训练时使用的列 (AWS CLI)](#custom-config-columns-cli)
+ [配置训练时使用的列 (AWS SDK)](#custom-configure-columns-sdk)

## 配置训练时使用的列 (AWS CLI)
<a name="custom-config-columns-cli"></a>

要将列排除在训练之外，请在解决方案配置期间，在 `trainingDataConfig` 中提供 `excludedDatasetColumns` 对象。对于每个键，提供数据集类型。对于每个值，提供要排除的列的列表。以下代码显示了如何在通过 AWS CLI 创建解决方案时将列排除在训练之外。

```
aws personalize create-solution \
--name solution name \
--dataset-group-arn dataset group ARN \
--recipe-arn recipe ARN \
--solution-config "{\"trainingDataConfig\": {\"excludedDatasetColumns\": { \"datasetType\" : [ \"column1Name\", \"column2Name\"]}}}"
```

## 配置训练时使用的列 (AWS SDK)
<a name="custom-configure-columns-sdk"></a>

要将列排除在训练之外，请在解决方案配置期间，在 `trainingDataConfig` 中提供 `excludedDatasetColumns` 对象。对于每个键，提供数据集类型。对于每个值，提供要排除的列的列表。以下代码显示了如何在通过 SDK for Python (Boto3) 创建解决方案时将列排除在训练之外。

```
import boto3

personalize = boto3.client('personalize')

create_solution_response = personalize.create_solution(
  name = 'solution name',
  recipeArn = 'recipe ARN',
  datasetGroupArn = 'dataset group ARN',
  solutionConfig = {
    "trainingDataConfig": {
      "excludedDatasetColumns": { 
          "datasetType": ["COLUMN_A", "COLUMN_B"]
      }
    }
  }
)
solution_arn = create_solution_response['solutionArn']
print('solution_arn: ', solution_arn)
```