

我们不再更新 Amazon Machine Learning 服务，也不再接受新用户使用该服务。本文档可供现有用户使用，但我们不会再对其进行更新。有关更多信息，请参阅[什么是 Amazon Machine Learning](https://docs.aws.amazon.com/machine-learning/latest/dg/what-is-amazon-machine-learning.html)。

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

# 读取批量预测输出文件
<a name="reading-the-batchprediction-output-files"></a>

请执行以下步骤检索批量预测输出文件：

1. 找到批量预测清单文件。

1. 读取清单文件以确定输出文件的位置。

1. 检索包含预测结果的输出文件。

1. 解释输出文件的内容。所含内容因用于生成预测的 ML 模型的类型而异。

以下各部分详细介绍了这些步骤。

## 找到批量预测清单文件
<a name="locating-the-batch-prediction-manifest-file"></a>

批量预测的清单文件包含将输入文件映射到预测输出文件的信息。

要查找清单文件，请先从您在创建批量预测对象时指定的输出位置开始查找。您可以使用 Amazon [ML API](https://docs.aws.amazon.com/machine-learning/latest/APIReference/) 或，查询已完成的批量预测对象，以检索此文件的 S3 位置[https://console.aws.amazon.com/machinelearning/](https://console.aws.amazon.com/machinelearning/)。

清单文件所在的输出位置的路径中包含附加到输出位置的静态字符串 `/batch-prediction/` 和清单文件的名称，即附加了扩展名 `.manifest` 的批量预测的 ID。

例如，如果创建包含 ID `bp-example` 的批量预测对象，并将 S3 位置 `s3://examplebucket/output/` 指定为输出位置，则将在此处找到您的清单文件：

`s3://examplebucket/output/batch-prediction/bp-example.manifest`

## 读取清单文件
<a name="reading-the-manifest-file"></a>

.manifest 文件的内容以 JSON 映射的格式进行编码，其中的键是表示 S3 输入数据文件名称的字符串，值是表示与其关联的批量预测结果文件的字符串。每个 input/output 文件对都有一个映射行。继续使用我们的示例，如果创建 `BatchPrediction` 对象时使用的输入包含一个名为 data.csv 的文件，该文件位于 `s3://examplebucket/input/` 中，您可能会看到如下所示的映射字符串：

```
{"s3://examplebucket/input/data.csv":"
s3://examplebucket/output/batch-prediction/result/bp-example-data.csv.gz"}
```

如果创建 `BatchPrediction` 对象时使用的输入包含三个分别名为 data1.csv、data2.csv 和 data3.csv 的文件，这些文件都存储在 S3 位置 `s3://examplebucket/input/` 中，您可能会看到如下所示的映射字符串：

```
{"s3://examplebucket/input/data1.csv":"s3://examplebucket/output/batch-prediction/result/bp-example-data1.csv.gz",

"s3://examplebucket/input/data2.csv":"
s3://examplebucket/output/batch-prediction/result/bp-example-data2.csv.gz",

"s3://examplebucket/input/data3.csv":"
s3://examplebucket/output/batch-prediction/result/bp-example-data3.csv.gz"}
```

## 检索批量预测输出文件
<a name="retrieving-the-batch-prediction-output-files"></a>

您可以下载通过清单映射获取的每个批量预测文件，然后在本地处理映射该文件。文件格式为 CSV，使用 gzip 算法进行压缩。相应输入文件中的每个输入观察在该文件中对应一行。

要将预测与批量预测的输入文件合并，可以对两个文件进行简单 record-by-record合并。批量预测的输出文件包含的记录数量始终与预测输入文件的记录数量相同，并且采用相同的顺序。如果输入观察处理失败，无法生成任何预测，批量预测的输出文件将在相应的位置包含一个空白行。

## 解释二进制分类 ML 模型的批量预测文件的内容
<a name="interpreting-the-contents-of-batch-prediction-files-for-a-binary-classification-ml-model"></a>

二进制分类模型的批量预测文件的列命名为 **bestAnswer** 和 **score**。

**bestAnswer** 列包含的预测标签（“1”或“0”）是通过对截断值分数评估预测分数得到的。有关截断值分数的更多信息，请参阅[调整分数截断值](https://docs.aws.amazon.com/machine-learning/latest/dg/evaluating_models.html)。您可以使用 Amazon ML API 或 Amazon ML 控制台上的模型评估功能为 ML 模型设置截断值分数。如果未设置截断值分数，Amazon ML 会使用默认值 0.5。

**score** 列包含 ML 模型为此预测分配的原始预测分数。Amazon ML 使用逻辑回归模型，因此该分数尝试为观察的概率建模，该概率对应于 true（“1”）值。请注意，**score** 采用科学计数法报告，因此在以下示例的第一行中，值 8.7642E-3 等于 0.0087642。

例如，如果 ML 模型的截断值分数是 0.75，二进制分类模型的批量预测输出文件的内容可能如下所示：

```
bestAnswer,score

0,8.7642E-3

1,7.899012E-1


0,6.323061E-3

0,2.143189E-2


1,8.944209E-1
```

输入文件中第二个和第五个观察收到的预测分数高于 0.75，因此这些观察的 bestAnswer 列显示值“1”，而其他观察的值为“0”。

## 解释多类别分类 ML 模型的批量预测文件的内容
<a name="interpreting-the-contents-of-batch-prediction-files-for-a-multiclass-classification-ml-model"></a>

多类别模型的批量预测文件包含在训练数据中找到的每个类对应的列。列名显示在批量预测文件的标头行中。

当您请求多类别模型进行预测时，Amazon ML 会为输入文件中每个观察计算几个预测分数，每个分数对应于在输入数据集定义的每个类。这等同于询问“此观察属于此类而不是任何其他类的概率（测量值位于 0 和 1 之间）是多少？” 每个分数可以解释为“观察属于此类的概率”。由于预测分数为观察属于一个类或另一个类的潜在概率建模，因此每行所有预测分数的总和为 1。您需要先选择一个类作为模型的预测类。通常，您应选择概率最高的类作为最佳答案。

例如，请考虑尝试在 1 星至 5 星的范围内预测客户的产品评级。如果类命名为 `1_star`、`2_stars`、`3_stars`、`4_stars` 和 `5_stars`，多类别预测输出文件可能如下所示：

```
1_star, 2_stars, 3_stars, 4_stars, 5_stars

8.7642E-3, 2.7195E-1, 4.77781E-1, 1.75411E-1, 6.6094E-2

5.59931E-1, 3.10E-4, 2.48E-4, 1.99871E-1, 2.39640E-1

7.19022E-1, 7.366E-3, 1.95411E-1, 8.78E-4, 7.7323E-2

1.89813E-1, 2.18956E-1, 2.48910E-1, 2.26103E-1, 1.16218E-1

3.129E-3, 8.944209E-1, 3.902E-3, 7.2191E-2, 2.6357E-2
```

在本示例中，第一个观察具有 `3_stars` 类的最高预测分数（预测分数 = 4.77781E-1），因此您可以理解为此结果表示 `3_stars` 类是此项观察的最佳答案。请注意，预测分数采用科学计数法报告，因此预测分数 4.77781E-1 等于 0.477781。

在某些情况下，您可能不想选择概率最高的类。例如，您可能想创建低于您不考虑作为最佳答案的类的最小阈值，即使它包含最高预测分数。假设您要按流派为电影分类，并且要让预测分数至少为 5E-1，才声明该流派将为您的最佳答案。获得的预测分数为 3E-1 是喜剧片，2.5E 是戏剧，2.5E-1 是纪录片，2E-1 是动作片。在这种情况下，ML 模型会预测喜剧是您最有可能的选择，但您决定不选择它作为最佳答案。由于没有任何预测分数超出您的基准预测分数 5E-1，因此您确定此项预测不足以自信地预测流派，从而决定选择其他预测。您的应用程序可能会将此电影的流派字段视为“未知”。

## 解释回归 ML 模型的批量预测文件的内容
<a name="interpreting-the-contents-of-batch-prediction-files-for-a-regression-ml-model"></a>

回归模型的批量预测文件包含名为**分数**的单个列。此列包含输入数据中每个观察的原始数字预测。这些值采用科学计数法报告，因此以下示例的第一行中**分数**的值 -1.526385E1 等于 -15.26835。

此示例显示了在回归模型上执行的批量预测的输出文件：

```
score

-1.526385E1

-6.188034E0

-1.271108E1

-2.200578E1

8.359159E0
```