

截至 2025 年 11 月 7 日，亚马逊 Fraud Detector 不再向新客户开放。要获得与 Amazon Fraud Detector 类似的功能 SageMaker，请浏览亚马逊 AutoGluon、和 AWS WAF。

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

# 事件数据存储
<a name="event-data-storage"></a>

收集完数据集后，您可以使用 Amazon Fraud Detector 在内部存储数据集，或者使用亚马逊简单存储服务 (Amazon S3) 在外部存储数据集。我们建议您根据用于生成欺诈预测的模型来选择数据集的存储位置。以下是这两个存储选项的详细介绍。
+ **内部存储-** 您的数据集存储在 Amazon Fraud Detector 中。与事件关联的所有事件数据都存储在一起。您可以随时上传存储在 Amazon Fraud Detector 中的事件数据集。您可以一次将一个事件流式传输到 Amazon Fraud Detector API，也可以使用批量导入功能导入大型数据集（最大 1GB）。当您使用存储在 Amazon Fraud Detector 中的数据集训练模型时，您可以指定时间范围来限制数据集的大小。
+ **外部存储-** 您的数据集存储在 Amazon Fraud Detector 以外的外部数据源中。目前，Amazon Fraud Detector 支持为此目的使用亚马逊简单存储服务（Amazon S3）。如果您的模型位于上传到 Amazon S3 的文件上，则该文件的未压缩数据不能超过 5GB。如果不止于此，请确保缩短数据集的时间范围。

下表提供了有关模型类型及其支持的数据源的详细信息。


| 模型类型 | 兼容的训练数据源 | 
| --- | --- | 
|  在线欺诈洞察  |  外部存储，内部存储  | 
|  交易欺诈洞察  |  内部存储  | 
|  账户接管见解  |  内部存储  | 

有关使用 Amazon 简单存储服务在外部存储数据集的信息，请参阅[使用 Amazon S3 将您的事件数据存储在外部](uploading-event-data-to-an-s3-bucket.md)。有关使用 Amazon Fraud Detector 在内部存储数据集的信息，请参阅[使用 Amazon Fraud Detector 在内部存储您的事件数据](storing-event-data-afd.md)。

# 使用 Amazon S3 将您的事件数据存储在外部
<a name="uploading-event-data-to-an-s3-bucket"></a>

如果您正在训练在线欺诈洞察模型，则可以选择使用 Amazon S3 将事件数据存储在外部。要将您的事件数据存储在 Amazon S3 中，您必须先创建 CSV 格式的文本文件，添加您的事件数据，然后将 CSV 文件上传到 Amazon S3 存储桶。

**注意**  
**交易欺诈见解**和**账户接管见解**模型类型不支持通过 Amazon S3 在外部存储的数据集

# 创建 CSV 文件
<a name="creating-csv-file"></a>

Amazon Fraud Detector 要求您的 CSV 文件的第一行包含列标题。CSV 文件中的列标题必须映射到事件类型中定义的变量。有关示例数据集，请参见 [获取并上传示例数据集](step-1-get-s3-data.md) 

在线欺诈洞察模型需要一个包含至少 2 个变量和最多 100 个变量的训练数据集。除事件变量外，训练数据集还必须包含以下标题：
+ EVENT\$1TIMESTAMP-定义事件发生的时间
+ EVENT\$1LABEL-将事件归类为欺诈事件或合法事件。该列中的值必须与事件类型中定义的值相对应。

以下 CSV 数据示例，表示来自在线商家的历史注册事件：

```
EVENT_TIMESTAMP,EVENT_LABEL,ip_address,email_address
4/10/2019 11:05,fraud,209.146.137.48,fake_burtonlinda@example.net
12/20/2018 20:04,legit,203.0.112.189,fake_davidbutler@example.org
3/14/2019 10:56,legit,169.255.33.54,fake_shelby76@example.net
1/3/2019 8:38,legit,192.119.44.26,fake_curtis40@example.com
9/25/2019 3:12,legit,192.169.85.29,fake_rmiranda@example.org
```

**注意**  
CSV 数据文件可以包含双引号和逗号作为数据的一部分。

相应事件类型的简化版本如下所示。事件变量对应于 CSV 文件中的标题，中的值`EVENT_LABEL`对应于标签列表中的值。

```
(
name = 'sample_registration',
eventVariables = ['ip_address', 'email_address'],
labels = ['legit', 'fraud'],
entityTypes = ['sample_customer']
)
```

## 事件时间戳格式
<a name="timestamp-formats"></a>

确保您的事件时间戳采用所需的格式。作为模型构建过程的一部分，Online Fraud Insights 模型类型根据事件时间戳对数据进行排序，并出于训练和测试目的对数据进行拆分。为了获得对性能的合理估计，模型首先在训练数据集上训练，然后在测试数据集上测试该模型。

在模型训练`EVENT_TIMESTAMP`期间，Amazon Fraud Detector 中的值支持以下 date/timestamp 格式：
+ %yyyy-%mm-%ddt%HH：%mm：%ssZ（仅限世界标准时间 ISO 8601 标准，没有毫秒）

  示例：2019-11-30T13：01:01 Z 
+ %yyyy/%mm/%dd %hh: %mm: %ss (上午/下午)

  示例：2019/11/30 下午 1:01:01，或 2019/11/30 13:01:01 
+ %mm/%dd/%yyyy %hh: %mm: %ss

  示例：2019 年 11 月 30 日下午 1:01:01，2019 年 11 月 30 日 13:01:01 
+ %mm/%dd/%yy %hh: %mm: %ss

  示例：11/30/19 下午 1:01:01，11/30/19 13:01:01 

Amazon Fraud Detector 在解析事件时间戳的 date/timestamp 格式时会做出以下假设：
+ 如果您使用的是 ISO 8601 标准，则它必须与前面的规范完全匹配
+ 如果您使用的是其他格式之一，则还有额外的灵活性：
  + 对于月和天，您可以提供个位数或两位数。例如，2019 年 1 月 12 日是有效日期。
  + 如果你没有 hh: mm: ss，则无需包含（也就是说，你可以简单地提供一个日期）。您也可以仅提供小时和分钟的子集（例如，hh: mm）。不支持仅提供小时数。也不支持毫秒。
  + 如果您提供 AM/PM 标签，则假定时钟为 12 小时。如果没有 AM/PM 信息，则假定为 24 小时制。
  + 可以使用 “/” 或 “-” 作为日期元素的分隔符。时间戳元素假定为 “:”。

## 随时间对数据集进行采样
<a name="sample-your-dataset"></a>

我们建议您提供相同时间段的欺诈示例和合法样本。例如，如果您提供过去 6 个月的欺诈事件，则还应提供平均跨越同一时间段的合法事件。如果您的数据集包含欺诈和合法事件的分布非常不均匀，则可能会收到以下错误：*“欺诈分布在不同时间段的波动幅度令人无法接受。无法正确拆分数据集。”* 通常，解决此错误的最简单方法是确保在同一时间范围内均匀采样欺诈事件和合法事件。如果您在短时间内遇到欺诈行为激增，则可能还需要删除数据。

如果您无法生成足够的数据来创建均匀分布的数据集，则一种方法是随机化事件的 EVENT\$1TIMESTAMP，使其均匀分布。但是，这通常会导致绩效指标不切实际，因为 Amazon Fraud Detector 使用 EVENT\$1TIMESTAMP 来评估数据集中相应的事件子集的模型。

## 空值和缺失值
<a name="null-missing-values"></a>

Amazon Fraud Detector 处理空值和缺失值。但是，应限制变量的空值百分比。EVENT\$1TIMESTAMP 和 EVENT\$1LABEL 列不应包含任何缺失值。

## 文件验证
<a name="csv-file-validation"></a>

如果触发了以下任何一种情况，Amazon Fraud Detector 将无法训练模型：
+ 如果无法解析 CSV
+ 如果列的数据类型不正确

# 将您的事件数据上传到 Amazon S3 存储桶
<a name="uploading-to-an-s3-bucket"></a>

使用您的事件数据创建 CSV 文件后，请将该文件上传到您的 Amazon S3 存储桶。

**上传到 Amazon S3 存储桶**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 请选择 **Create bucket（创建桶）**。

   此时将打开 **Create bucket（创建桶）**向导。

1. 在 **Bucket name（桶名称）**中，输入符合 DNS 标准的桶名称。

   桶名称必须满足以下要求：
   + 在所有 Amazon S3 中是唯一的。
   + 长度必须介于 3 到 63 个字符之间。
   + 不包含大写字符。
   + 以小写字母或数字开头。

   创建存储桶后，便无法再更改其名称。有关命名存储桶的信息，请参阅《*Amazon 简单存储服务用户指南》中的存储*[桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)。
**重要**  
避免在存储桶名称中包含敏感信息，如账号。存储桶名称在指向存储桶 URLs 中对象的位置中可见。

1. 在**区域**中，选择您想要存储桶所在的 AWS 区域。您必须选择与使用 Amazon Fraud Detector 相同的区域，即美国东部（弗吉尼亚北部）、美国东部（俄亥俄州）、美国西部（俄勒冈）、欧洲（爱尔兰）、亚太地区（新加坡）或亚太地区（悉尼）。

1. 在 **Bucket settings for Block Public Access（阻止公有访问的桶设置）**中，请选择要应用于桶的 Block Public Access（阻止公有访问）设置。

   我们建议您启用所有设置。有关阻止公开访问的更多信息，请参阅《[亚马逊简单存储服务用户指南》中的阻止公众访问您的 Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) *3 存储*。

1. 选择 **创建存储桶 **。

1. 将训练数据文件上传到您的 Amazon S3 存储桶。记下您的训练文件的 Amazon S3 位置路径（例如 s3://bucketname/object.csv）。

# 使用 Amazon Fraud Detector 在内部存储您的事件数据
<a name="storing-event-data-afd"></a>

您可以选择将事件数据存储在 Amazon Fraud Detector 中，稍后再使用存储的数据来训练模型。通过将事件数据存储在 Amazon Fraud Detector 中，您可以训练使用自动计算变量的模型来提高性能、简化模型再训练，并更新欺诈标签以结束机器学习反馈循环。事件存储在事件类型资源级别，因此相同事件类型的所有事件一起存储在单个事件类型数据集中。在定义事件类型时，您可以选择通过在 Amazon Fraud Detector 控制台中切换*事件摄取*设置来指定是否存储该事件类型的事件。

您可以在 Amazon Fraud Detector 中存储单个事件或导入大量事件数据集。可以使用 [GetEventPrediction](https://docs.aws.amazon.com//frauddetector/latest/api/API_GetEventPrediction.html)API 或 API 对单个事件进行流式传输。[SendEvent](https://docs.aws.amazon.com//frauddetector/latest/api/API_SendEvent.html)使用 Amazon Fraud Detector 控制台中的批量导入功能或使用 [CreateBatchImportJob](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateBatchImportJob.html)API，可以快速轻松地将大型数据集导入到 Amazon Fraud Detector。

您可以随时使用 Amazon Fraud Detector 控制台查看每种事件类型已存储的事件数量。

# 准备要存储的事件数据
<a name="prepare-storage-event-data"></a>

在 Amazon Fraud Detector 内部存储的事件数据存储在`Event Type`资源级别。因此，来自同一事件的所有事件数据都存储在单个事件中`Event Type`。存储的事件稍后可用于训练新模型或重新训练现有模型。使用存储的事件数据训练模型时，您可以选择指定事件的时间范围以限制训练数据集的大小。

每次您使用亚马逊欺诈探测器控制台、API 或 `SendEvent` API 将数据存储在亚马逊欺诈探测器中时，Amazon Fraud Detector 都会在存储之前验证您的数据。`CreateBatchImportJob`如果您的数据未通过验证，则不会存储事件数据。

**使用 Amazon Fraud Detector 在内部存储数据的先决条件**
+ 为确保您的事件数据通过验证并成功存储数据集，请确保您已使用[数据模型资源管理器](https://docs.aws.amazon.com/frauddetector/latest/ug/create-event-dataset.html#prepare-event-dataset)提供的见解来准备数据集。
+ 为您要在 Amazon Fraud Detector 中存储的事件数据创建了事件类型。如果还没有，请按照说明[创建事件类型](https://docs.aws.amazon.com//frauddetector/latest/ug/create-event-type.html)。

## 智能数据验证
<a name="smart-data-validation"></a>

当您在 Amazon Fraud Detector 控制台中上传数据集进行批量导入时，Amazon Fraud Detector 会在导入数据之前使用智能数据验证 (SDV) 来验证您的数据集。SDV 会扫描上传的数据文件并识别数据缺失、格式或数据类型不正确等问题。除了验证您的数据集外，SDV 还提供验证报告，其中列出了所有已发现的问题，并建议采取哪些措施来修复影响最大的问题。SDV 发现的一些问题可能很严重，必须在 Amazon Fraud Detector 成功导入您的数据集之前解决这些问题。有关更多信息，请参阅 [智能数据验证报告](storing-events-batch-import.md#sdv-validation-report)。

SDV 会在文件级别和数据（行）级别验证您的数据集。在文件级别，SDV 会扫描您的数据文件并发现诸如文件访问权限不足、文件大小、文件格式和标题（事件元数据和事件变量）不正确等问题。在数据级别，SDV 会扫描每个事件数据（行），并识别数据格式、数据长度、时间戳格式和空值等问题。

智能数据验证目前仅在 Amazon Fraud Detector 控制台中可用，并且验证功能默认处于开启状态。如果您不希望 Amazon Fraud Detector 在导入数据集之前使用智能数据验证，请在上传数据集时在 Amazon Fraud Detector 控制台中关闭验证功能。

## 使用 APIs 或 AWS SDK 时验证存储的数据
<a name="validating-stored-data-api"></a>

通过、或 `CreateBatchImportJob ` API 操作上传事件时 `SendEvent``GetEventPrediction`，Amazon Fraud Detector 会验证以下内容：
+ 该事件类型的 EventIngestion 设置为 “启用”。
+ 无法更新事件时间戳。具有重复事件 ID 和不同的 EVENT\$1TIMESTAMP 的事件将被视为错误。
+ 变量名称和值与其预期格式相匹配。有关更多信息，请参阅 [创建变量](create-a-variable.md)。
+ 必需的变量用一个值填充。
+ 所有事件时间戳均不超过 18 个月，也不会在 future 中。

# 使用批量导入存储事件数据
<a name="storing-events-batch-import"></a>

借助批量导入功能，您可以使用控制台、API 或 AWS 软件开发工具包在 Amazon Fraud Detector 中快速轻松地上传大型历史事件数据集。要使用批量导入，请创建一个包含所有事件数据的 CSV 格式的输入文件，将 CSV 文件上传到 Amazon S3 存储桶，然后启动*导入*任务。Amazon Fraud Detector 首先根据事件类型验证数据，然后自动导入整个数据集。导入数据后，就可以用来训练新模型或重新训练现有模型了。

## 输入和输出文件
<a name="input-output-batch"></a>

输入 CSV 文件必须包含与关联事件类型中定义的变量匹配的标题以及四个必填变量。请参阅[准备要存储的事件数据](prepare-storage-event-data.md)了解更多信息。输入数据文件的最大大小为 20 千兆字节 (GB)，即大约 5000 万个事件。活动数量将因您的活动规模而异。如果导入任务成功，则输出文件为空。如果导入失败，则输出文件将包含错误日志。

## 创建一个 CSV 文件
<a name="create-csv-stored-data"></a>

Amazon Fraud Detector 仅从逗号分隔值 (CSV) 格式的文件中导入数据。CSV 文件的第一行必须包含与关联事件类型中定义的变量完全匹配的列标题以及四个必填变量：EVENT\$1ID、EVENT\$1TIMESTAMP、ENTITY\$1ID 和 ENTITY\$1TYPE。您也可以选择包含 EVENT\$1LABEL 和 LABEL\$1TIMESTAMP（如果包含 EVENT\$1LABEL，则必须包含 LABEL\$1TIMESTAMP）。

**定义必填变量**

必填变量被视为事件元数据，必须以大写形式指定。模型训练会自动包含事件元数据。下表列出了必填变量、每个变量的描述以及变量所需的格式。


| Name | 说明 | 要求 | 
| --- | --- | --- | 
|  事件\$1ID  |  事件的标识符。例如，如果您的活动是在线交易，则 EVENT\$1ID 可能是提供给客户的交易参考号。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/frauddetector/latest/ug/storing-events-batch-import.html)  | 
|  事件时间戳  |  事件发生的时间戳。时间戳必须采用 ISO 8601 标准（世界标准时间）。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/frauddetector/latest/ug/storing-events-batch-import.html)  | 
|  实体\$1ID  |  执行事件的实体的标识符。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/frauddetector/latest/ug/storing-events-batch-import.html)  | 
|  实体类型  |  执行活动的实体，例如商家或客户  |  批量导入任务需要使用 ENTITY\$1TYPE  | 
|  事件标签  |  将事件分类为或 `fraudulent` `legitimate`  |  如果包含 LABEL\$1TIMESTAMP，则需要使用 EVENT\$1LABEL  | 
|  LABEL\$1TIMESTAMP  |  上次填充或更新事件标签的时间戳  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/frauddetector/latest/ug/storing-events-batch-import.html)  | 

## 将 CSV 文件上传到亚马逊 S3 以进行批量导入
<a name="upload-csv-S3-for-batch-import"></a>

使用您的数据创建 CSV 文件后，将该文件上传到您的亚马逊简单存储服务 (Amazon S3) 存储桶。

**将事件数据上传到 Amazon S3 存储桶**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 请选择 **Create bucket（创建桶）**。

   此时将打开 **Create bucket（创建桶）**向导。

1. 在 **Bucket name（桶名称）**中，输入符合 DNS 标准的桶名称。

   桶名称必须满足以下要求：
   + 在所有 Amazon S3 中是唯一的。
   + 长度必须介于 3 到 63 个字符之间。
   + 不包含大写字符。
   + 以小写字母或数字开头。

   创建存储桶后，便无法再更改其名称。有关命名存储桶的信息，请参阅《*Amazon 简单存储服务用户指南》中的存储*[桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)。
**重要**  
避免在存储桶名称中包含敏感信息，如账号。存储桶名称在指向存储桶 URLs 中对象的位置中可见。

1. 在**区域**中，选择您想要存储桶所在的 AWS 区域。您必须选择与使用 Amazon Fraud Detector 相同的区域，即美国东部（弗吉尼亚北部）、美国东部（俄亥俄州）、美国西部（俄勒冈）、欧洲（爱尔兰）、亚太地区（新加坡）或亚太地区（悉尼）。

1. 在 **Bucket settings for Block Public Access（阻止公有访问的桶设置）**中，请选择要应用于桶的 Block Public Access（阻止公有访问）设置。

   我们建议您启用所有设置。有关阻止公开访问的更多信息，请参阅《[亚马逊简单存储服务用户指南》中的阻止公众访问您的 Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html) *3 存储*。

1. 选择 **创建存储桶 **。

1. 将训练数据文件上传到您的 Amazon S3 存储桶。记下您的训练文件的 Amazon S3 位置路径（例如 s3://bucketname/object.csv）。

## 在 Amazon Fraud Detector 控制台中批量导入事件数据
<a name="batch-import-event-data"></a>

您可以使用 `CreateBatchImportJob` API 或 AWS 软件开发工具包在 Amazon Fraud Detector 控制台中轻松导入大量事件数据集。在继续操作之前，请确保已按照说明将数据集准备为 CSV 文件。请确保您还将 CSV 文件上传到亚马逊 S3 存储桶。

**使用亚马逊 Fraud Detector 控制台**

**在控制台中批量导入事件数据**

1. 打开 AWS 控制台并登录您的账户，然后导航至 Amazon Fraud Detector。

1. 在左侧导航窗格中，选择**事件**。

1. 选择您的活动类型。

1. 选择 “**存储的事件**” 选项卡。

1. **在**存储的事件详细信息**窗格中，确保**事件提取已开启**。**

1. 在**导入事件数据**窗格中，选择**新建导入**。

1. **在新事件导入**页面中，提供以下信息：
   + [推荐] 保留**启用此数据集的智能数据验证-新**设置为默认设置。
   + **对于数据的 IAM 角色**，请选择您为存放计划导入的 CSV 文件的 Amazon S3 存储桶创建的 IAM 角色。
   + 在**输入数据位置**中，输入存放 CSV 文件的 S3 位置。
   + 如果您想指定一个单独的位置来存储导入结果，请单击 “将**输入和结果的数据位置分**开” 按钮，然后提供有效的 Amazon S3 存储桶位置。
**重要**  
确保您选择的 IAM 角色对您的输入 Amazon S3 存储桶具有读取权限以及对输出 Amazon S3 存储桶的写入权限。

1. 选择**启动**。

1. **导入事件数据**窗格中的**状态**列显示您的验证和导入任务的状态。当您的数据集首先经过验证然后导入时，顶部的横幅提供了对状态的高级描述。

1. 按照提供的指导进行操作[监控数据集验证和导入任务的进度](#monitor-progress-sdv)。

### 监控数据集验证和导入任务的进度
<a name="monitor-progress-sdv"></a>

如果您使用 Amazon Fraud Detector 控制台执行批量导入任务，则默认情况下，Amazon Fraud Detector 会在导入之前验证您的数据集。您可以在 Amazon Fraud Detector 控制台**的新事件导入**页面中监控验证和导入任务的进度和状态。页面顶部的横幅简要描述了验证结果和导入任务的状态。根据验证结果和导入任务的状态，您可能需要采取措施来确保成功验证和导入数据集。

下表详细介绍了根据验证和导入操作的结果必须采取的操作。


| 横幅消息 | Status | 含义 | 我该怎么办 | 
| --- | --- | --- | --- | 
| 数据验证已开始 | 验证正在进行中 | SDV 已开始验证您的数据集 | 等待状态改变 | 
| 由于数据集存在错误，无法继续进行数据验证。修复数据文件中的错误并开始新的导入任务。有关更多信息，请参阅验证报告 | 验证失败 | SDV 在您的数据文件中发现了问题。要成功导入数据集，必须解决这些问题。 | 在导入事件数据窗格中，选择 Job ID 并查看验证报告。按照报告中的建议解决列出的所有错误。有关更多信息，请参阅 [使用验证报告](#using-sdv-validation-report)。 | 
| 数据导入已开始。验证成功完成 | 正在导入 | 您的数据集已通过验证。AFD 已开始导入您的数据集 | 等待状态改变 | 
| 验证已完成，但出现警告。数据导入已开始 | 正在导入 | 您的数据集中的某些数据未通过验证。但是，通过验证的数据符合导入的最小数据大小要求。 | 监控横幅中的消息并等待状态改变 | 
| 您的数据已部分导入。有些数据未通过验证且未被导入。有关更多信息，请参阅验证报告。 | 已进口。状态显示警告图标。 | 您的数据文件中一些未通过验证的数据未被导入。通过验证的其余数据已导入。 | 在导入事件数据窗格中，选择 Job ID 并查看验证报告。按照数据级别警告表中的建议来解决列出的警告。您不必解决所有警告。但是，请确保您的数据集中有 50% 以上的数据通过验证才能成功导入。解决警告后，开始新的导入任务。有关更多信息，请参阅 [使用验证报告](#using-sdv-validation-report)。 | 
| 由于处理错误，数据导入失败。开始新的数据导入任务 | 导入失败 | 由于临时运行时错误，导入失败 | 开始新的导入任务 | 
| 数据已成功导入 | 已导入 | 验证和导入均成功完成 | 选择导入任务的 Job ID 以查看详细信息，然后继续进行模型训练 | 

**注意**  
我们建议在数据集成功导入 Amazon Fraud Detector 后等待 10 分钟，以确保系统完全摄取这些数据。

### 智能数据验证报告
<a name="sdv-validation-report"></a>

智能数据验证将在验证完成后创建验证报告。验证报告提供了 SDV 在您的数据集中发现的所有问题的详细信息，并提供了修复最具影响力的问题的建议措施。您可以使用验证报告来确定问题所在、问题在数据集中的位置、问题的严重性以及如何解决这些问题。即使验证成功完成，也会创建验证报告。在这种情况下，您可以查看报告以查看是否列出了任何问题，如果有，请决定是否要修复其中任何问题。

**注意**  
当前版本的 SDV 会扫描您的数据集，以查找可能导致批量导入失败的问题。如果验证和批量导入成功，您的数据集仍可能存在可能导致模型训练失败的问题。即使验证和导入成功，我们也建议您查看验证报告，并解决报告中列出的任何问题，以便成功训练模型。解决问题后，创建一个新的批量导入任务。

**访问验证报告**

验证完成后，您可以随时使用以下选项之一访问验证报告：

1. 验证完成后，导入任务正在进行中，在顶部横幅中选择 “**查看验证报告**”。

1. 导入任务完成后，在**导入事件数据**窗格中，选择刚刚完成的导入任务的 Job ID。

#### 使用验证报告
<a name="using-sdv-validation-report"></a>

导入任务的验证报告页面提供了此导入任务的详细信息、发现的严重错误列表（如果有）、有关数据集中特定事件（行）的警告列表（如果找到），以及数据集的简短摘要，其中包括无效值和每个变量的缺失值等信息。
+ **导入任务详情**

  提供导入任务的详细信息。如果您的导入任务失败或数据集已部分导入，请选择**转到结果文件**以查看导入失败的事件的错误日志。
+ **严重错误**

  提供 SDV 发现的数据集中最具影响力的问题的详细信息。此窗格中列出的所有问题都很严重，您必须在继续导入之前解决这些问题。如果您在未解决关键问题的情况下尝试导入数据集，则导入任务可能会失败。

  要解决关键问题，请按照为每个警告提供的建议进行操作。解决了 “严重错误” 窗格中列出的所有问题后，创建一个新的批量导入任务。
+ **数据级别警告**

  提供数据集中特定事件（行）警告的摘要。如果填充了数据级别警告窗格，则数据集中的某些事件未通过验证且未导入。

  对于每个警告，“**描述**” 列会显示出现问题的事件数量。而且 Sample **事件 IDs**提供了部分示例事件列表， IDs 您可以将其用作起点来查找存在问题的其余事件。使用为警告提供的**建议**来解决问题。也可以使用输出文件中的错误日志来获取有关该问题的其他信息。将为所有批量导入失败的事件生成错误日志。要访问错误日志，请在**导入作业详细信息**窗格中，选择**转到结果文件**。
**注意**  
如果数据集中超过 50% 的事件（行）未通过验证，则导入任务也会失败。在这种情况下，必须先修复数据，然后才能开始新的导入任务。
+ **数据集摘要** 

   提供数据集验证报告的摘要。如果 “警告数量” 列显示的警告超过 0 个，请决定是否需要修复这些警告。如果 “**警告数量**” 列显示为 0，请继续训练您的模型。

## 使用适用于 Python 的 AWS 开发工具包 (Boto3) 批量导入事件数据
<a name="batch-import-data-sdk"></a>

以下示例显示了 [CreateBatchImportJob](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateBatchImportJob.html)API 请求示例。**批量导入任务必须包含 **jobID**、**InputPath、OutputPath** 和。**eventTypeName**iamRoleArn******除非任务处于 CREATE\$1FAILED 状态，否则 jobID 不能包含与过去任务相同的 ID。InputPath 和 OutputPath 必须是有效的 S3 路径。您可以选择不在 OutputPath 中指定文件名，但是，您仍然需要提供有效的 S3 存储桶位置。 eventTypeName 和 iamRoleArn 必须存在。IAM 角色必须授予输入 Amazon S3 存储桶的读取权限和输出 Amazon S3 存储桶的写入权限。

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.create_batch_import_job (
jobId = 'sample_batch_import',
inputPath = 's3://bucket_name/input_file_name.csv',
outputPath = 's3://bucket_name/',
eventTypeName = 'sample_registration',
iamRoleArn: 'arn:aws:iam::************:role/service-role/AmazonFraudDetector-DataAccessRole-*************'
)
```

## 取消批量导入作业
<a name="cancel-batch-import"></a>

您可以随时在 Amazon Fraud Detector 控制台中使用 `CancelBatchImportJob` API 或 AWS 软件开发工具包取消正在进行的批量导入任务。

**要在控制台中取消批量导入任务，**

1. 打开 AWS 控制台并登录您的账户，然后导航至 Amazon Fraud Detector。

1. 在左侧导航窗格中，选择**事件**。

1. 选择您的活动类型。

1. 选择 “**存储的事件**” 选项卡。

1. 在**导入事件数据**窗格中，选择要取消的正在进行的导入任务的任务 ID。

1. 在事件作业页面中，单击 “**操作**”，然后选择 “**取消事件导入**”。

1. 选择 “**停止事件导入**” 以取消批量导入作业。

### 使用适用于 Python 的 AWS 开发工具包 (Boto3) 取消批量导入任务
<a name="cancel-batch-import-sdk"></a>

以下示例显示了对 `CancelBatchImportJob` API 的请求示例。取消导入任务必须包含正在进行的批量导入任务的任务 ID。

```
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.cancel_batch_import_job (
    jobId = 'sample_batch'
)
```

# 使用 GetEventPredictions API 操作存储事件数据
<a name="storing-events-geteventprediction-api"></a>

默认情况下，发送到 `GetEventPrediction` API 进行评估的所有事件都存储在 Amazon Fraud Detector 中。这意味着，Amazon Fraud Detector 将在您生成预测时自动存储事件数据，并使用该数据近乎实时地更新计算出的变量。您可以在 Amazon Fraud Detector 控制台中导航到事件类型，然后将**事件提取**设置为关闭，或者使用 API 操作将 EventIngestion 值更新为 “已禁用”，从而禁用数据存储。`PutEventType`有关 `GetEventPrediction` API 操作的更多信息，请参阅[欺诈预测](getting-fraud-predictions.md)。

**重要**  
我们强烈建议您在为某一*事件类型启用事件提取*后，将其保持启用状态。禁用相同事件类型的事件提取然后生成预测可能会导致行为不一致。

# 使用 SendEvent API 操作存储事件数据
<a name="storing-events-sendevent-api"></a>

您可以使用 `SendEvent` API 操作将事件存储在 Amazon Fraud Detector 中，而无需为这些事件生成欺诈预测。例如，您可以使用`SendEvent`操作上传历史数据集，以便稍后使用该数据集来训练模型。

**API 的事件时间戳格式 SendEvent **

使用 `SendEvent` API 存储事件数据时，必须确保您的事件时间戳采用所需的格式。Amazon Fraud Detector 支持以下 date/timestamp 格式：
+ %yyyy-%mm-%ddt%HH：%mm：%ssZ（仅限世界标准时间 ISO 8601 标准，没有毫秒）

  示例：2019-11-30T13：01:01 Z 
+ %yyyy/%mm/%dd %hh: %mm: %ss (上午/下午)

  示例：2019/11/30 下午 1:01:01，或 2019/11/30 13:01:01 
+ %mm/%dd/%yyyy %hh: %mm: %ss

  示例：2019 年 11 月 30 日下午 1:01:01，2019 年 11 月 30 日 13:01:01 
+ %mm/%dd/%yy %hh: %mm: %ss

  示例：11/30/19 下午 1:01:01，11/30/19 13:01:01 

Amazon Fraud Detector 在解析事件时间戳的 date/timestamp 格式时会做出以下假设：
+ 如果您使用的是 ISO 8601 标准，则它必须与前面的规范完全匹配
+ 如果您使用的是其他格式之一，则还有额外的灵活性：
  + 对于月和天，您可以提供个位数或两位数。例如，2019 年 1 月 12 日是有效日期。
  + 如果你没有 hh: mm: ss，则无需包含（也就是说，你可以简单地提供一个日期）。您也可以仅提供小时和分钟的子集（例如，hh: mm）。不支持仅提供小时数。也不支持毫秒。
  + 如果您提供 AM/PM 标签，则假定时钟为 12 小时。如果没有 AM/PM 信息，则假定为 24 小时制。
  + 可以使用 “/” 或 “-” 作为日期元素的分隔符。时间戳元素假定为 “:”。

以下是 `SendEvent` API 调用的示例。

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.send_event(
            eventId        = '802454d3-f7d8-482d-97e8-c4b6db9a0428',
            eventTypeName  = 'sample_registration',
            eventTimestamp = '2020-07-13T23:18:21Z',
            eventVariables =  {
    			'email_address' : 'johndoe@exampledomain.com',
    			'ip_address' : '1.2.3.4'},
            assignedLabel  = ‘legit’,
            labelTimestamp = '2020-07-13T23:18:21Z',
            entities       = [{'entityType':'sample_customer', 'entityId':'12345'}],        
)
```

# 获取存储的事件数据的详细信息
<a name="get-stored-event-details"></a>

将事件数据存储在 Amazon Fraud Detector 中后，您可以使用 [GetEvent](https://docs.aws.amazon.com//frauddetector/latest/api/API_GetEvent.html)API 查看为某个事件存储的最新数据。以下示例代码检查为该`sample_registration`事件存储的最新数据。

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.get_event(
            eventId        = '802454d3-f7d8-482d-97e8-c4b6db9a0428',
            eventTypeName  = 'sample_registration'
)
```

# 查看存储的事件数据集的指标
<a name="view-stored-event-metrics"></a>

对于每种事件类型，您可以在 Amazon Fraud Detector 控制台中查看诸如存储的事件数量、存储事件的总大小以及最早和最新存储的事件的时间戳等指标。

**要查看存储的事件类型的事件指标，**

1. 打开 AWS 控制台并登录您的账户。导航至 Amazon Fraud Detector。

1. 在左侧导航窗格中，选择**事件**。

1. 选择您的活动类型。

1. 选择 “**存储的事件**” 选项卡。

1. **存储的事件详细信息**窗格显示指标。这些指标每天自动更新一次。

1. （可选）单击 “**刷新事件指标**” 以手动更新您的指标。
**注意**  
如果您刚刚导入了数据，我们建议您在完成数据导入后等待 5-10 分钟以刷新和查看指标。