

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

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

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

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

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

以下 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\_TIMESTAMP，使其均匀分布。但是，这通常会导致绩效指标不切实际，因为 Amazon Fraud Detector 使用 EVENT\_TIMESTAMP 来评估数据集中相应的事件子集的模型。

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

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

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

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