自2025年11月7日起,亚马逊欺诈探测器不再向新客户开放。要了解与亚马逊欺诈检测器类似的功能,请浏览亚马逊 SageMaker AutoGluon、和 AWS WAF。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
构建模型
亚马逊欺诈探测器模型学会检测特定事件类型的欺诈行为。在 Amazon Fraud Detector 中,您首先创建一个模型,该模型充当模型版本的容器。每次训练模型时,都会创建一个新版本。有关如何使用 AWS 控制台创建和训练模型的详细信息,请参阅步骤 3:创建模型。
每个模型都有相应的模型分数变量。当您创建模型时,Amazon Fraud Detector 会代表您创建此变量。您可以在规则表达式中使用此变量来解释欺诈评估期间的模型分数。
使用训练和部署模型 适用于 Python (Boto3) 的 AWS SDK
模型版本是通过调用CreateModel和CreateModelVersion操作来创建的。CreateModel启动模型,该模型充当模型版本的容器。CreateModelVersion启动训练过程,从而生成模型的特定版本。每当您调用 CreateModelVersion 时,就会创建一个新版本的解决方案。
以下示例显示了 CreateModel API 的示例请求。此示例创建了 “在线欺诈洞察” 模型类型,并假设您创建了事件类型sample_registration。有关创建事件类型的更多详细信息,请参阅创建事件类型。
import boto3 fraudDetector = boto3.client('frauddetector') fraudDetector.create_model ( modelId = 'sample_fraud_detection_model', eventTypeName = 'sample_registration', modelType = 'ONLINE_FRAUD_INSIGHTS')
使用 CreateModelVersion API 训练您的第一个版本。对于TrainingDataSource并ExternalEventsDetail指定训练数据集的源和 Amazon S3 的位置。为此,TrainingDataSchema请指定 Amazon Fraud Detector 应如何解释训练数据,特别是要包含哪些事件变量以及如何对事件标签进行分类。默认情况下,亚马逊欺诈检测器会忽略未贴标签的事件。此示例代码使用AUTOunlabeledEventsTreatment来指定 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' )