欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云-从海量数据集中训练并部署模型:以欺诈检测为例,揭示数据背后的真相

2024-03-05 原创文章

随着您的企业经历数字化转型并日益接受在线支付,有效的信用卡欺诈检测和预防方法对于避免损失至关重要。由于预期欺诈只会占所有交易的一小部分,通常需要大量数据来构建一个强大且准确的模型,以最小化误报的情况下提醒欺诈行为。


架构

此架构突出展示了您如何利用Oracle云基础设施服务来探索数据集、构建模型,并在从TB到PB级别的数据上训练该模型。您可以使用训练好的模型进行批量推理作为一个作业,或部署为实时推理的REST端点。该架构有三个主要阶段:收集(Collect)、分析(Analyze)和行动(Act)。以下图表展示了此参考架构。

该架构包含以下组件:

收集

  • 收集阶段包括以下组件:产生数据的设备、传感器和输入。在欺诈检测的用例中,数据来源于销售点(POS)系统。实时摄入在数据生成时接收数据点,可以使用流媒体服务排队在流中,该服务连接到模型部署,或应用程序可以通过API直接调用推理服务器。实时和历史数据在数据存储(云存储或数据库)中进行对账。通过上述方式获取的历史数据通常存储在数据库或对象存储中。云存储可用于为探索和模型训练阶段准备数据集。摄入服务,如Oracle云基础设施数据集成服务或Oracle GoldenGate,也可以链接和传输外部数据,例如位于本地或第三方数据存储中的数据集。

分析

  • 探索、分析和设计模型
  • 在探索阶段,数据科学家提取可以放入内存中的数据集的代表性子集,并从中学习,以设计对手头任务有意义的特征。或者,数据科学家可以运行Oracle云基础设施数据流应用程序,从Oracle云基础设施数据科学提取代表性数据集。对于欺诈检测,数据通常包括关于客户的信息(例如,账号、地址、性别、出生日期)和交易的信息(日期、时间、商家、商家位置),从中可以派生出其他特征,如一天中的时间、年龄、到商家的距离、客户所在城市人口等。
  • 一旦设计出有意义的特征,您可以测试各种模型,以找到最准确的候选模型。这意味着使用样本数据集在小规模、内存中训练和评估模型。如果不可能,数据科学家可以创建和运行数据流应用程序,从Oracle云基础设施数据科学训练大规模模型。


模型训练

  • 您可以使用支持Oracle云基础设施数据流服务的Apache Spark分布式处理引擎,对无法放入内存的数据集(TB级甚至PB级)进行规模化训练选定模型。
  • 数据流负责配置驱动器和执行器节点
  • 以选定的形状来处理训练数据量,并根据需要自动扩展。


存储模型构件

  • 训练好的模型被序列化并导出到对象存储中。您可以加载构件进行批量推理,或使用它部署模型进行实时推理。


模型目录

  • Oracle云基础设施模型目录存储模型代码和构件,并可以添加与来源和分类相关的元数据,提供内省能力并定义输入输出架构。模型目录是模型部署的来源。


行动

  • 批量推理

您可以使用批量推理根据计划评估过去的事件,或定期审计模型性能和偏移。批量推理在Oracle云基础设施数据流服务中进行规模化执行。您可以直接从Oracle云基础设施数据科学笔记本使用对象存储中存储的代码和模型构件创建评分或推理数据流应用程序。

  • 实时推理

使用模型部署对可放入内存的单个或小批量事件进行推理。像数据流应用程序一样,您可以直接从数据科学笔记本创建模型,并将其存储在模型目录中。然后可以在实时数据流上或通过应用程序的直接API调用同步进行推理。

  • 编排和调度

在处理批次时,经常需要按计划或触发器运行作业。您可以使用Oracle云基础设施数据集成服务进行此类编排。该服务可以触发和控制摄取任务、转换并触发训练、评分或推理作业。


您可以使用类似的模式处理其他需要大量数据集的用例,例如:

预测性维护

  • 预测性维护的目的是避免成本和最小化增加费用的运营中断,例如安排额外班次、支付加班费、紧急运输和其他成本。


能源产出预测

  • 预测风能或太阳能等替代能源农场的产出需要大量数据,包括当地天气模式和过去的产出记录。


智能制造和物联网(IoT)

  • 智能制造涉及寻找提高运营效率以增加收入和利润的方法。这通常需要从数百到数百万个传感器摄取数据,以预测产量、瓶颈或追踪产品分析影响,从而提高吞吐量和产出。


健康保险理赔处理

  • 欺诈在健康保险理赔中也是一个普遍问题。自动确定提交的完整性是使流程高效的关键部分。


处方药分析和物流

  • 预测某个地点所需的处方药类型是一个复杂的问题,只有大量数据才能帮助解决。


健康诊断

  • 健康诊断通常采用X光或MRI等成像技术。机器学习在预测疾病方面已被证明非常有帮助,有时甚至优于人类。这类应用需要非常大的数据集,包括因其多维性质而体量庞大的图像。


推荐事项

以下推荐可作为起点。您的需求可能与这里描述的架构有所不同。


网关

  • 网关可以是为特定数据收集设计的定制中心。它也可能是数据库,如Oracle自治数据仓库、Oracle NoSQL数据库云服务,或其他数据库。

传输

  • 使用Oracle云基础设施数据集成服务将所有历史数据离线迁移到Oracle云基础设施对象存储。数据传输到对象存储后,所有Oracle云基础设施(OCI)服务都可以访问数据。您还可以使用Oracle GoldenGate从本地数据库移动数据。

流媒体

  • 使用Oracle云基础设施流媒体服务实时摄入事件和数据,并消费或存储在Oracle云基础设施对象存储中。


数据存储

对象存储

  • Oracle云基础设施对象存储是此架构中的默认存储。在对象存储中存储所有结构化、半结构化和非结构化数据是最具成本效益的解决方案。 数据库
  • 使用Oracle自治数据仓库、Oracle MySQL数据库服务或其他SQL和NoSQL数据库存储需要用于分析和报告的数据。通常,只有经过策划和处理的数据驻留在数据库中,而原始的、不常访问的数据则更有效地存储在对象存储中。

HDFS数据存储

  • Oracle大数据云服务提供了一种在HDFS(Hadoop分布式文件系统)上存储大量数据的方式。如果您的组织已经利用或正在迁移其他基于Hadoop的应用程序,此选项非常有用。Oracle提供了一个连接Oracle云基础设施对象存储的HDFS连接器,这是推荐的存储平台。

数据科学

  • Oracle云基础设施数据科学提供了一个熟悉的开发环境给数据科学家,以托管的Jupyter Lab形式和多个基于conda的环境可供选择。
  • 数据科学服务支持Oracle高级数据科学(ADS)库,使创建和存储机器学习模型到模型目录变得容易,并通过模型部署部署模型。
  • Jupyter Lab界面结合提供的预打包的Apache Spark conda环境,使得在内存数据集上探索和设计基于Spark的模型变得简单,并可以将它们作为Oracle云基础设施数据流应用程序部署,以运行训练或批量推理,或作为模型部署用于实时或内存推理。

分布式数据处理

  • Oracle云基础设施数据流作为一项服务提供Apache Spark分布式处理引擎,能够运行在TB级甚至PB级数据的处理作业。
  • 在数据科学服务中开发的Spark应用程序可以通过Oracle ADS库工具轻松转移到数据流应用程序中,并且可以配置在任何形状、任何规模上运行。



部署考虑事项

在处理大规模数据集构建和训练模型时,考虑以下几点。其中一些是针对欺诈检测用例的特定问题,但大多数可以推广到任何模型设计过程。


数据收集

  • 在构建任何机器学习模型时,数据的重要性至关重要:足够数量的高质量数据是至关重要的。在欺诈检测示例代码中,我们使用了使用最佳猜测生成的用户配置文件生成的带标签的合成交易数据。在现实世界的场景中,交易往往没有标签,欺诈案例可能没有被检测到或甚至未知,更不用说被标记了,因此构建适当的数据集是首先需要解决的挑战。

数据量

  • 需要多少数据总是一个难以回答的问题。通常,存在的特征越多,需要的数据就越多。在某些情况下,减少特征的数量有助于提高模型性能并避免过拟合;然而,在许多情况下,需要更多的数据来提高模型性能。
  • 如果数据可以放入内存中,则通常使用具有足够内存的计算形状在单个节点上进行训练比使用分布式处理框架(如Apache Spark或其托管等效物Oracle云基础设施数据流)更有效。


数据存储

  • 原始数据通常体量庞大且不直接适用于分析。保留原始数据很重要,但它很少用于训练或重新训练模型,因此最好存储在如Oracle云基础设施对象存储这样的成本效益解决方案中。
  • 聚合数据、预测或更一般地用于分析和报告的数据必须是活跃的,最好存储在数据库中。既体量庞大又需要用于分析的数据可能会从分布式存储解决方案(如HDFS和Oracle大数据云服务)中受益。


特征工程和数据增强

  • 摄取的原始数据通常信息不足或格式不正确,因此需要从中工程化特征。例如,我们可能想使用客户的年龄而不是出生日期。大多数机器学习模型不容易理解的分类文本可能会以数字编码,使用StringIndexer或更常见的1-hot编码。当分类数据不太可能改变时,例如用于编码性别,这种方法效果很好。然而,如果随时间变化,使用这些技术将需要在出现新值时重新训练模型,这远非理想。在这种情况下,可能需要找到更好的编码方法。
  • 在欺诈检测代码示例中,我们使用合成数据集中已生成的经纬度作为
  • 客户地址的代理。这些信息在设备源中可能并不容易获得,因此需要数据增强。在数据摄入过程中或作为预处理步骤调用外部地理编码服务,将地址转换为地理坐标,将提供所需信息。


数据探索

  • 数据探索通常在能够放入内存的代表性样本数据集上进行。如果没有简单的方法确定样本数据集真正代表了整个数据集,并且整个数据集太大而无法放入内存,则使用Oracle云基础设施数据流构建关于数据集的聚合统计,并提取一个有意义的子样本数据集,该子样本数据集代表了整个数据集。在不具代表性的样本数据集上进行特征工程,然后在整个数据集上进行训练,将导致模型性能不佳。


模型训练

  • 调整Spark以获得最佳效率是具有挑战性的。参见调整您的数据流应用程序,并遵循推荐,以估计运行特定作业所需的执行器和计算形状数量。


部署

此参考架构的示例可作为Jupyter笔记本在GitHub上查看。

  1. 访问GitHub查看示例笔记本。
  2. 按照README文档中的指示操作。



开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。


Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。


利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。


Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。