创建 CSV 文件 - Amazon Fraud Detector

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

创建 CSV 文件

亚马逊Fraud Detector 要求您的 CSV 文件的第一行包含列标题。CSV 文件中的列标题必须映射到事件类型中定义的变量。有关示例数据集,请参见获取并上传示例数据集

Online Fraud Insights 模型要求训练数据集至少包含 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'] )

事件时间戳格式

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

Amazon Fraud Detector 支持模型训练EVENT_TIMESTAMP期间的值采用以下日期/时间戳格式:

  • %yyyy-%mm-%ddt%HH: %mm: %ssz(仅限世界标准时间的 ISO 8601 标准,没有毫秒)

    示例:2019-11-30T13:01:01 Z

  • %yyyy/%mm/%dd %hh: %mm: %ss (AM/PM)

    示例: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 在解析事件时间戳的日期/时间戳格式时会做出以下假设:

  • 如果您使用的是 ISO 8601 标准,则它必须与前面的规范完全匹配

  • 如果您使用的是其他格式之一,则还有额外的灵活性:

    • 对于几个月和几天,您可以提供个位数或两位数。例如,2019 年 12 月 1 日是一个有效日期。

    • 如果您没有 hh: mm: ss,则无需包含 hh: mm: ss(也就是说,您可以简单地提供日期)。您也可以只提供小时和分钟的子集(例如,hh: mm)。不支持仅提供小时数。也不支持毫秒。

    • 如果您提供 AM/PM 标签,则假定时钟为 12 小时。如果没有 AM/PM 信息,则假定为 24 小时制。

    • 您可以使用 “/” 或 “-” 作为日期元素的分隔符。假定时间戳元素为 “:”。

跨时间对数据集进行采样

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

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

空值和缺失值

亚马逊Fraud Detector 处理空值和缺失值。但是,应限制变量的空值百分比。EVENT_TIMESTAMP 和 EVENT_LABEL 列不应包含任何缺失值。

文件验证

如果触发以下任一条件,Amazon Frauud Detector 将无法训练模型:

  • 如果 CSV 无法解析

  • 如果列的数据类型不正确