本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建模型
Amazon Fraud Detector 模型学习检测特定事件类型的欺诈行为。在 Amazon Fraud Detector 中,您首先创建一个模型,该模型充当模型版本的容器。每次训练模型时,都会创建一个新版本。有关如何使用AWS控制台创建和训练模型的详细信息,请参阅步骤 3:创建模型。
每个模型都有相应的模型分数变量。当你创建模型时,Amazon Fraud Detector 会代表你创建这个变量。您可以在规则表达式中使用此变量来解释欺诈评估期间的模型分数。
使用训练和部署模型 AWS SDK for Python (Boto3)
模型版本是通过调用CreateModel
和CreateModelVersion
操作创建的。 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' )