构建模型 - Amazon Fraud Detector

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

构建模型

Amazon Fraud Detector 模型学习检测特定事件类型的欺诈行为。在 Amazon Fraud Detector 中,您首先创建一个模型,该模型充当模型版本的容器。每次训练模型时,都会创建一个新版本。有关如何使用AWS控制台创建和训练模型的详细信息,请参阅步骤 3:创建模型

每个模型都有相应的模型分数变量。当你创建模型时,Amazon Fraud Detector 会代表你创建这个变量。您可以在规则表达式中使用此变量来解释欺诈评估期间的模型分数。

使用训练和部署模型 AWS SDK for Python (Boto3)

模型版本是通过调用CreateModelCreateModelVersion操作创建的。 CreateModel启动模型,该模型充当模型版本的容器。 CreateModelVersion启动训练过程,从而生成模型的特定版本。每当您调用 CreateModelVersion 时,就会创建一个新版本的解决方案。

以下示例显示了对 CreateModel API 的请求示例。此示例创建了 Online Fraud Insights 模型类型,并假设您已经创建了事件类型sample_registration。有关创建事件类型的更多详细信息,请参阅创建事件类型

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model ( modelId = 'sample_fraud_detection_model', eventTypeName = 'sample_registration', modelType = 'ONLINE_FRAUD_INSIGHTS')

使用 CreateModelVersionAPI 训练你的第一个版本。对于TrainingDataSource和,ExternalEventsDetail请指定训练数据集的源和 Amazon S3 的位置。TrainingDataSchema请指定 Amazon Fraud Detector 应如何解释训练数据,特别是要包含哪些事件变量以及如何对事件标签进行分类。默认情况下,Amazon Fraud Detector 会忽略未标记的事件。此示例代码AUTO用于unlabeledEventsTreatment指定 Amazon Fraud Detector 决定如何使用未标记的事件。

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model_version ( modelId = 'sample_fraud_detection_model', modelType = 'ONLINE_FRAUD_INSIGHTS', trainingDataSource = 'EXTERNAL_EVENTS', trainingDataSchema = { 'modelVariables' : ['ip_address', 'email_address'], 'labelSchema' : { 'labelMapper' : { 'FRAUD' : ['fraud'], 'LEGIT' : ['legit'] } unlabeledEventsTreatment = 'AUTO' } }, externalEventsDetail = { 'dataLocation' : 's3://bucket/file.csv', 'dataAccessRoleArn' : 'role_arn' } )

成功请求将生成一个带有状态的新模型版本TRAINING_IN_PROGRESS。在训练期间的任何时候,您都可以通过调用UpdateModelVersionStatus并将状态更新为来取消训练TRAINING_CANCELLED。训练完成后,模型版本状态将更新为TRAINING_COMPLETE。您可以使用 Amazon Fraud Detector 控制台或致电来查看模型性能DescribeModelVersions。有关如何解释模型分数和性能的更多信息,请参阅模型分数对性能指标进行建模

查看模型性能后,激活该模型,使其可供探测器在实时欺诈预测中使用。Amazon Fraud Detector 将在多个可用区域部署模型以实现冗余,同时开启自动缩放功能,确保模型可根据您所做的欺诈预测数量进行扩展。要激活模型,请调用 UpdateModelVersionStatus API 并将状态更新为ACTIVE

import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.update_model_version_status ( modelId = 'sample_fraud_detection_model', modelType = 'ONLINE_FRAUD_INSIGHTS', modelVersionNumber = '1.00', status = 'ACTIVE' )