使用 Amazon SageMaker PlatoBlockchain 数据智能中的合成数据增强欺诈交易。 垂直搜索。 人工智能。

在 Amazon SageMaker 中使用合成数据增强欺诈交易

开发和训练成功的机器学习 (ML) 欺诈模型需要访问大量高质量数据。 获取这些数据具有挑战性,因为可用的数据集有时不够大或不够公正,无法有效地训练 ML 模型,并且可能需要大量的成本和时间。 监管和隐私要求进一步阻止了数据的使用或共享,即使是在企业组织内部也是如此。 授权使用和访问敏感数据的过程通常会延迟或破坏 ML 项目。 或者,我们可以通过生成和使用合成数据来应对这些挑战。

合成数据描述了人工创建的数据集,这些数据集模仿原始数据集中的内容和模式,以解决监管风险和合规性、时间和采购成本。 合成数据生成器使用真实数据来学习相关特征、相关性和模式,以便生成所需数量的合成数据,这些合成数据与最初摄取的数据集的统计质量相匹配。

合成数据已在实验室环境中用于 超过二十年; 市场上有证据表明实用程序正在加速商业和公共部门的采用。 高德纳 预测 到 2024 年,60% 用于开发 ML 和分析解决方案的数据将由合成生成,合成数据的使用将继续大幅增加。

英国监管机构金融行为监管局, 承认 “访问数据是创新的催化剂,综合金融数据可以在支持创新和使新进入者能够开发、测试和展示新解决方案的价值方面发挥作用。”

亚马逊 SageMaker GroundTruth 目前支持 合成数据生成 标记的合成图像数据。 这篇博文探讨了表格合成数据的生成。 结构化数据(例如单个表和关系表)以及时间序列数据是企业分析中最常遇到的类型。

这是一篇分为两部分的博文; 我们在第一部分创建合成数据并评估其质量 第二部分.

在这篇博文中,您将学习如何使用开源库 数据综合AWS SageMaker 笔记本 为欺诈用例合成表格数据,我们没有足够的欺诈交易来训练高精度欺诈模型。 本文档涵盖了训练欺诈模型的一般过程 发表.

解决方案概述

本教程的目的是使用优化的方法合成高度不平衡的信用卡欺诈数据集的少数类 生成对抗网络(GAN) 被称为 WGAN-GP 学习原始数据的模式和统计特性,然后创建无穷无尽的类似于原始数据的合成数据样本。 此过程还可用于通过对欺诈等罕见事件进行上采样来增强原始数据,或生成原始数据中不存在的边缘案例。

我们使用由 超低负载, 可以从 Kaggle. 为少数类生成合成数据有助于解决与不平衡数据集相关的问题,这有助于开发更准确的模型。

我们使用 AWS 服务,包括 Amazon SageMaker 和 Amazon S3,这些服务会产生使用云资源的费用。

设置开发环境

SageMaker 为模型构建、训练和部署提供了一个托管的 Jupyter notebook 实例。

前提课程:

您必须拥有 AWS 账户才能运行 SageMaker。 你可以得到 开始 使用 SageMaker 并尝试 动手教程.

有关设置 Jupyter Notebook 工作环境的说明,请参阅 开始使用 Amazon SageMaker 笔记本实例.

第 1 步:设置您的 Amazon SageMaker 实例

  1. 登录 AWS 控制台并搜索“SageMaker”。
  2. 选择 GOHAT STUDIO.
  3. 选择 笔记本实例 在左侧栏上,然后选择 创建笔记本实例.
  4. 在下一页(如下图所示)中,根据需要选择虚拟机 (VM) 的配置,然后选择 创建笔记本实例. 请注意,我们使用了没有 GPU 和 5 GB 数据的 ML 优化 VM,运行 Amazon Linux 3 和 Jupyter Lab 2 内核的 ml.t3.medium。
    创建笔记本实例
  5. 笔记本实例将在几分钟内准备好供您使用。
  6. 选择 打开JupyterLab 推出。
    使用 Amazon SageMaker PlatoBlockchain 数据智能中的合成数据增强欺诈交易。 垂直搜索。 人工智能。
  7. 现在我们有了一个符合我们所需规范的 JupyterLab,我们将安装合成库。
pip install ydata-synthetic

第 2 步:下载或提取真实数据集以创建合成数据

下载参考资料 从 Kaggle 手动获取,就像我们在这里所做的那样,或者如果您有 Kaggle 帐户,则通过 Kaggle API 以编程方式获取。 如果您探索此数据集,您会注意到“欺诈”类包含的数据比“非欺诈”类包含的数据少得多。

如果您直接使用这些数据进行机器学习预测,模型可能总是学会预测“非欺诈”。 由于欺诈案例很少见,因此模型在非欺诈案例中很容易具有更高的准确性。 然而,由于检测欺诈案例是我们在本练习中的目标,我们将使用基于真实数据建模的合成数据来提高欺诈类别的数量。

在 JupyterLab 中创建一个数据文件夹,并将 Kaggle 数据文件上传到其中。 这将允许您使用自 SageMaker 以来笔记本中的数据 附带存储 你在实例化笔记本时会指定的。

使用 Amazon SageMaker PlatoBlockchain 数据智能中的合成数据增强欺诈交易。 垂直搜索。 人工智能。

这个数据集是 144 MB

使用 Amazon SageMaker PlatoBlockchain 数据智能中的合成数据增强欺诈交易。 垂直搜索。 人工智能。

然后,您可以通过 pandas 库使用标准代码读取数据:

import pandas as pd
data = pd.read_csv('./data/creditcard.csv')

欺诈检测数据具有某些特征,即:

  • 大类不平衡(通常针对非欺诈数据点)。
  • 与隐私相关的问题(由于存在敏感数据)。
  • 一定程度的动态性,因为恶意用户总是试图避免被监控欺诈交易的系统检测到。
  • 可用的数据集非常大,而且通常没有标签。

现在您已经检查了数据集,让我们过滤少数类(信用卡数据集中的“欺诈”类)并根据需要执行转换。 您可以从中查看数据转换 笔记本.

当这个少数类数据集被合成并添加回原始数据集时,它允许生成更大的合成数据集来解决数据不平衡问题。 我们可以通过以下方式获得更高的预测精度 训练欺诈检测模型 使用新的数据集。

让我们合成新的欺诈数据集。

第 3 步:训练合成器并创建模型

由于您在 SageMaker 中拥有随时可用的数据,是时候让我们的合成 GAN 模型发挥作用了。

生成对抗网络 (GAN) 有两个部分:

发电机 学习生成合理的数据。 生成的实例成为判别器的负面训练示例。

判别器 学习区分生成器的假数据和真实数据。 判别器惩罚生成器产生不可信的结果。

当训练开始时,生成器会产生明显的假数据,而鉴别器很快就会学会分辨它是假的。 随着训练的进行,生成器越来越接近于产生可以欺骗鉴别器的输出。 最后,如果生成器训练进展顺利,鉴别器在分辨真假之间的区别时会变得更差。 它开始将假数据归类为真实数据,其准确性会下降。

生成器和鉴别器都是神经网络。 生成器输出直接连接到鉴别器输入。 通过 反向传播,鉴别器的分类提供了生成器用来更新其权重的信号。

第 4 步:从合成器中采样合成数据

现在您已经构建并训练了模型,是时候通过向模型提供噪声来对所需数据进行采样了。 这使您能够根据需要生成尽可能多的合成数据。

在这种情况下,您生成的合成数据数量与实际数据数量相等,因为这样可以更轻松地在步骤 5 中比较相似的样本量。

我们可以选择对包含欺诈交易的行进行采样——当与非合成欺诈数据结合时,将导致“欺诈”和“非欺诈”类别的平均分布。 原本的 Kaggle数据集 包含 492 笔交易中的 284,807 笔欺诈,因此我们从合成器中创建了相同的样本。

# use the same shape as the real data
synthetic_fraud = synthesizer.sample(492)

我们可以选择在称为数据增强的过程中对包含欺诈交易的行进行上采样——当与非合成欺诈数据结合时,将导致“欺诈”和“非欺诈”类别的平均分布。

第 5 步:将合成数据与真实数据进行比较和评估

虽然此步骤是可选的,但您可以使用散点图根据实际数据定性地可视化和评估生成的合成数据。

这有助于我们通过调整参数、更改样本大小和进行其他转换来迭代我们的模型,以生成最准确的合成数据。 准确性的这种性质始终取决于合成的目的

下图描述了实际欺诈和合成欺诈数据点在训练步骤中的相似程度。 这对合成数据和实际数据之间的相似性进行了很好的定性检查,以及当我们运行它经过更多时期(通过算法传输整个训练数据集)时这种相似性如何改进。 请注意,随着我们运行更多的 epoch,合成数据模式集会更接近原始数据。

使用 Amazon SageMaker PlatoBlockchain 数据智能中的合成数据增强欺诈交易。 垂直搜索。 人工智能。

步骤6:清理

最后,在完成综合后停止笔记本实例以避免意外成本。

结论

作为机器学习算法和编码框架 迅速发展,大规模的高质量数据是 ML 中最稀缺的资源。 高质量的合成数据集可用于各种任务。

在这篇博文中,您了解了使用开源库合成数据集的重要性,该库使用 WGAN-GP. 这是一个活跃的研究领域,已发表数千篇关于 GAN 的论文,还有数百个命名的 GAN 可供您试验。 有些变体针对特定用例进行了优化,例如关系表和时间序列数据。

您可以在本文中找到本文使用的所有代码 笔记本,当然,SageMaker 提供了更多此类教程 官方文档页面。

第二部分 在这个由两部分组成的博文系列中,我们将深入探讨如何从保真度、效用和隐私的角度评估合成数据的质量。


关于作者

使用 Amazon SageMaker PlatoBlockchain 数据智能中的合成数据增强欺诈交易。 垂直搜索。 人工智能。法里斯·哈达德 是 AABG 战略追求团队的数据和洞察力负责人。 他帮助企业成功实现数据驱动。

时间戳记:

更多来自 AWS机器学习