Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
In diesem Tutorial wird beschrieben, wie Sie ein Amazon Fraud Detector Detector-Modell erstellen und trainieren und dieses Modell dann verwenden, um mithilfe von Betrugsvorhersagen in Echtzeit zu generieren AWS SDK für Python (Boto3). Das Modell wird anhand der Beispieldatendatei für die Kontoregistrierung trainiert, die Sie in den Amazon S3 S3-Bucket hochladen.
Am Ende dieses Tutorials haben Sie die folgenden Aktionen abgeschlossen:
-
Erstellen und trainieren Sie ein Amazon Fraud Detector Detector-Modell
-
Generieren Sie Betrugsprognosen in Echtzeit
Voraussetzungen
Im Folgenden sind die erforderlichen Schritte für dieses Tutorial aufgeführt.
-
AbgeschlossenFür Amazon Fraud Detector einrichten.
Falls Sie dies bereits getan habenEinrichten AWS SDK, stellen Sie sicher, dass Sie das Boto3 SDK Version 1.14.29 oder höher verwenden.
-
Folgen Sie den Anweisungen zur Beispieldatensatz abrufen und hochladen Datei, die für dieses Tutorial erforderlich ist.
Erste Schritte
Boto ist das Amazon Web Services (AWS) SDK für Python. Sie können es zum Erstellen, Konfigurieren und Verwalten verwenden AWS-Services. Anweisungen zur Installation von Boto3 finden Sie unter AWS-SDK SDK for Python (Boto3
Führen Sie nach der Installation AWS SDK für Python (Boto3) den folgenden Python-Beispielbefehl aus, um zu überprüfen, ob Ihre Umgebung korrekt konfiguriert ist. Wenn Ihre Umgebung korrekt konfiguriert ist, enthält die Antwort eine Liste von Detektoren. Wenn keine Melder erstellt wurden, ist die Liste leer.
import boto3
fraudDetector = boto3.client('frauddetector')
response = fraudDetector.get_detectors()
print(response)
In diesem Schritt erstellen Sie Ressourcen, die zur Definition von Modell, Ereignis und Regeln verwendet werden.
Variable erstellen
Eine Variable ist ein Datenelement aus Ihrem Datensatz, das Sie zum Erstellen von Ereignistypen, Modellen und Regeln verwenden möchten.
Im folgenden Beispiel wird die CreateVariableAPI verwendet, um zwei Variablen zu erstellen. Die Variablen sind email_address
undip_address
. Weisen Sie sie den entsprechenden Variablentypen zu: EMAIL_ADDRESS
undIP_ADDRESS
. Diese Variablen sind Teil des Beispieldatensatzes, den Sie hochgeladen haben. Wenn Sie den Variablentyp angeben, interpretiert Amazon Fraud Detector die Variable beim Modelltraining und beim Abrufen von Prognosen. Nur Variablen mit einem zugehörigen Variablentyp können für das Modelltraining verwendet werden.
import boto3
fraudDetector = boto3.client('frauddetector')
#Create variable email_address
fraudDetector.create_variable(
name = 'email_address',
variableType = 'EMAIL_ADDRESS',
dataSource = 'EVENT',
dataType = 'STRING',
defaultValue = '<unknown>'
)
#Create variable ip_address
fraudDetector.create_variable(
name = 'ip_address',
variableType = 'IP_ADDRESS',
dataSource = 'EVENT',
dataType = 'STRING',
defaultValue = '<unknown>'
)
Entitätstyp erstellen
Eine Entität stellt dar, wer das Ereignis durchführt, und ein Entitätstyp klassifiziert die Entität. Zu den Klassifizierungen gehören beispielsweise Kunde, Händler oder Konto.
Im folgenden Beispiel wird PutEntityTypeAPI verwendet, um einen sample_customer
Entitätstyp zu erstellen.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.put_entity_type(
name = 'sample_customer',
description = 'sample customer entity type'
)
Label erstellen
Ein Label stuft ein Ereignis als betrügerisch oder legitim ein und dient dazu, das Modell zur Betrugserkennung zu trainieren. Das Modell lernt, Ereignisse anhand dieser Labelwerte zu klassifizieren.
Im folgenden Beispiel wird die Putlabel-API verwendet, um zwei Labels zu erstellen, undfraud
. legit
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.put_label(
name = 'fraud',
description = 'label for fraud events'
)
fraudDetector.put_label(
name = 'legit',
description = 'label for legitimate events'
)
Mit Amazon Fraud Detector erstellen Sie Modelle, die Risiken bewerten und Betrugsprognosen für einzelne Ereignisse generieren. Ein Ereignistyp definiert die Struktur eines einzelnen Ereignisses.
Im folgenden Beispiel wird die PutEventTypeAPI verwendet, um einen Ereignistyp zu erstellensample_registration
. Sie definieren den Ereignistyp, indem Sie die Variablen (email_address
,ip_address
), den Entitätstyp (sample_customer
) und die Labels (fraud
,legit
) angeben, die Sie im vorherigen Schritt erstellt haben.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.put_event_type (
name = 'sample_registration',
eventVariables = ['ip_address', 'email_address'],
labels = ['legit', 'fraud'],
entityTypes = ['sample_customer'])
Amazon Fraud Detector trainiert Modelle darin, Betrug für einen bestimmten Ereignistyp zu erkennen. Im vorherigen Schritt haben Sie den Ereignistyp erstellt. In diesem Schritt erstellen und trainieren Sie ein Modell für den Ereignistyp. Das Modell fungiert als Container für Ihre Modellversionen. Jedes Mal, wenn Sie ein Modell trainieren, wird eine neue Version erstellt.
Verwenden Sie die folgenden Beispielcodes, um ein Online Fraud Insights-Modell zu erstellen und zu trainieren. Dieses Modell heißtsample_fraud_detection_model
. Es gilt für den Ereignistyp, der den Beispieldatensatz für die Kontoregistrierung sample_registration
verwendet, den Sie auf Amazon S3 hochgeladen haben.
Weitere Informationen zu den verschiedenen Modelltypen, die Amazon Fraud Detector unterstützt, finden Sie unterWählen Sie einen Modelltyp.
Erstellen eines Modells
Im folgenden Beispiel wird die CreateModelAPI verwendet, um ein Modell zu erstellen.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.create_model (
modelId = 'sample_fraud_detection_model',
eventTypeName = 'sample_registration',
modelType = 'ONLINE_FRAUD_INSIGHTS')
Trainiere ein Modell
Im folgenden Beispiel wird die CreateModelVersionAPI verwendet, um das Modell zu trainieren. Geben Sie 'EXTERNAL_EVENTS'
für den trainingDataSource
und den Amazon S3 S3-Speicherort an, an dem Sie Ihren Beispieldatensatz und den RoleArndes Amazon S3 S3-Buckets gespeichert habenexternalEventsDetail
. Geben Sie als trainingDataSchema
Parameter an, wie Amazon Fraud Detector die Beispieldaten interpretiert. Geben Sie insbesondere an, welche Variablen aufgenommen werden sollen und wie die Ereignisbezeichnungen klassifiziert werden sollen.
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']
}
}
},
externalEventsDetail = {
'dataLocation' : 's3://amzn-s3-demo-bucket
/your-example-data-filename
.csv',
'dataAccessRoleArn' : 'role_arn
'
}
)
Sie können Ihr Modell mehrfach trainieren. Jedes Mal, wenn Sie ein Modell trainieren, wird eine neue Version erstellt. Nach Abschluss des Modelltrainings wird der Status der Modellversion auf aktualisiertTRAINING_COMPLETE
. Sie können den Modellleistungswert und andere Modellleistungskennzahlen überprüfen.
Überprüfen Sie die Leistung des Modells
Ein wichtiger Schritt bei der Verwendung von Amazon Fraud Detector besteht darin, die Genauigkeit Ihres Modells anhand von Modellwerten und Leistungskennzahlen zu bewerten. Nach Abschluss des Modelltrainings validiert Amazon Fraud Detector die Modellleistung anhand der 15% Ihrer Daten, die nicht zum Trainieren des Modells verwendet wurden. Es generiert einen Modellleistungswert und andere Leistungskennzahlen.
Verwenden Sie die DescribeModelVersionsAPI, um die Modellleistung zu überprüfen. Sehen Sie sich die Gesamtpunktzahl der Modellleistung und alle anderen von Amazon Fraud Detector für dieses Modell generierten Kennzahlen an.
Weitere Informationen zum Leistungswert des Modells und zu den Leistungskennzahlen finden Sie unter Das Modell bewertet undModellieren Sie Leistungskennzahlen.
Sie können davon ausgehen, dass alle Ihre trainierten Amazon Fraud Detector Detector-Modelle über reale Leistungskennzahlen zur Betrugserkennung verfügen, die den Kennzahlen in diesem Tutorial ähneln.
Stellen Sie ein Modell bereit
Nachdem Sie die Leistungskennzahlen Ihres trainierten Modells überprüft haben, stellen Sie das Modell bereit und stellen Sie es Amazon Fraud Detector zur Verfügung, um Betrugsprognosen zu erstellen. Verwenden Sie die UpdateModelVersionStatusAPI, um das trainierte Modell bereitzustellen. Im folgenden Beispiel wird es verwendet, um den Status der Modellversion auf AKTIV zu aktualisieren.
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'
)
Ein Detektor enthält die Erkennungslogik, z. B. die Modelle und Regeln. Diese Logik bezieht sich auf ein bestimmtes Ereignis, das Sie auf Betrug hin untersuchen möchten. Eine Regel ist eine Bedingung, die Sie angeben, um Amazon Fraud Detector mitzuteilen, wie Variablenwerte bei der Vorhersage zu interpretieren sind. Und das Ergebnis ist das Ergebnis einer Betrugsprognose. Ein Detektor kann mehrere Versionen haben, wobei jede Version den Status ENTWURF, AKTIV oder INAKTIV hat. Einer Detektorversion muss mindestens eine Regel zugeordnet sein.
Verwenden Sie die folgenden Beispielcodes, um einen Detektor, Regeln und Ergebnisse zu erstellen und den Detektor zu veröffentlichen.
Erstellen Sie einen Detektor
Im folgenden Beispiel wird die PutDetectorAPI verwendet, um einen sample_detector
Detektor für den sample_registration
Ereignistyp zu erstellen.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.put_detector (
detectorId = 'sample_detector',
eventTypeName = 'sample_registration'
)
Ergebnisse erstellen
Ergebnisse werden für jedes mögliche Ergebnis der Betrugsprognose erstellt. Im folgenden Beispiel wird die PutOutcomeAPI verwendet, um drei Ergebnisse zu erstellen: verify_customer
review
, undapprove
. Diese Ergebnisse werden später Regeln zugewiesen.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.put_outcome(
name = 'verify_customer',
description = 'this outcome initiates a verification workflow'
)
fraudDetector.put_outcome(
name = 'review',
description = 'this outcome sidelines event for review'
)
fraudDetector.put_outcome(
name = 'approve',
description = 'this outcome approves the event'
)
Regeln erstellen
Die Regel besteht aus einer oder mehreren Variablen aus Ihrem Datensatz, einem logischen Ausdruck und einem oder mehreren Ergebnissen.
Im folgenden Beispiel wird die CreateRuleAPI verwendet, um drei verschiedene Regeln zu erstellen: high_risk
medium_risk
, undlow_risk
. Erstellen Sie Regelausdrücke, um den sample_fraud_detection_model_insightscore
Wert der Modellleistungsbewertung mit verschiedenen Schwellenwerten zu vergleichen. Dies dient dazu, das Risikoniveau für ein Ereignis zu bestimmen und das Ergebnis zuzuweisen, das im vorherigen Schritt definiert wurde.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.create_rule(
ruleId = 'high_fraud_risk',
detectorId = 'sample_detector',
expression = '$sample_fraud_detection_model_insightscore > 900',
language = 'DETECTORPL',
outcomes = ['verify_customer']
)
fraudDetector.create_rule(
ruleId = 'medium_fraud_risk',
detectorId = 'sample_detector',
expression = '$sample_fraud_detection_model_insightscore <= 900 and $sample_fraud_detection_model_insightscore > 700',
language = 'DETECTORPL',
outcomes = ['review']
)
fraudDetector.create_rule(
ruleId = 'low_fraud_risk',
detectorId = 'sample_detector',
expression = '$sample_fraud_detection_model_insightscore <= 700',
language = 'DETECTORPL',
outcomes = ['approve']
)
Erstellen Sie eine Detektorversion
Eine Detector-Version definiert das Modell und die Regeln, die verwendet werden, um Betrugsvorhersagen zu erhalten.
Im folgenden Beispiel wird die CreateDetectorVersionAPI verwendet, um eine Detektorversion zu erstellen. Dazu werden Details zur Modellversion, Regeln und ein Regelausführungsmodus FIRST_MATCHED bereitgestellt. Ein Regelausführungsmodus gibt die Reihenfolge für die Auswertung von Regeln an. Der Regelausführungsmodus FIRST_MATCHED gibt an, dass die Regeln sequentiell ausgewertet werden, von der ersten bis zur letzten, wobei bei der ersten übereinstimmenden Regel angehalten wird.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.create_detector_version(
detectorId = 'sample_detector',
rules = [{
'detectorId' : 'sample_detector',
'ruleId' : 'high_fraud_risk',
'ruleVersion' : '1'
},
{
'detectorId' : 'sample_detector',
'ruleId' : 'medium_fraud_risk',
'ruleVersion' : '1'
},
{
'detectorId' : 'sample_detector',
'ruleId' : 'low_fraud_risk',
'ruleVersion' : '1'
}
],
modelVersions = [{
'modelId' : 'sample_fraud_detection_model',
'modelType': 'ONLINE_FRAUD_INSIGHTS',
'modelVersionNumber' : '1.00'
} ],
ruleExecutionMode = 'FIRST_MATCHED'
)
Im letzten Schritt dieses Tutorials wird der im vorherigen Schritt sample_detector
erstellte Detektor verwendet, um Betrugsvorhersagen für den sample_registration
Ereignistyp in Echtzeit zu generieren. Der Detektor wertet die Beispieldaten aus, die auf Amazon S3 hochgeladen wurden. Die Antwort umfasst die Leistungswerte des Modells sowie alle Ergebnisse, die mit den übereinstimmenden Regeln verknüpft sind.
Im folgenden Beispiel wird die GetEventPredictionAPI verwendet, um bei jeder Anfrage Daten aus einer einzelnen Kontoregistrierung bereitzustellen. Verwenden Sie für dieses Tutorial Daten (E-Mail-Adresse und IP-Adresse) aus der Beispieldatendatei für die Kontoregistrierung. Jede Zeile (Zeile) nach der obersten Kopfzeile steht für Daten aus einem einzelnen Kontoregistrierungsereignis.
import boto3
fraudDetector = boto3.client('frauddetector')
fraudDetector.get_event_prediction(
detectorId = 'sample_detector',
eventId = '802454d3-f7d8-482d-97e8-c4b6db9a0428',
eventTypeName = 'sample_registration',
eventTimestamp = '2020-07-13T23:18:21Z',
entities = [{'entityType':'sample_customer', 'entityId':'12345'}],
eventVariables = {
'email_address': 'johndoe@exampledomain.com',
'ip_address': '1.2.3.4'
}
)
Nachdem Sie dieses Tutorial abgeschlossen haben, haben Sie Folgendes getan:
-
Hat einen Beispiel-Ereignisdatensatz auf Amazon S3 hochgeladen.
-
Es wurden Variablen, Entitäten und Labels erstellt, die zum Erstellen und Trainieren eines Modells verwendet werden.
-
Mit dem Beispieldatensatz wurde ein Modell erstellt und trainiert.
-
Die Leistungsbewertung des Modells und andere von Amazon Fraud Detector generierte Leistungskennzahlen wurden angezeigt.
-
Das Modell zur Betrugserkennung wurde eingesetzt.
-
Es wurde ein Detektor erstellt und das bereitgestellte Modell hinzugefügt.
-
Dem Detektor wurden Regeln, die Reihenfolge der Regelausführung und die Ergebnisse hinzugefügt.
-
Die Detektorversion wurde erstellt.
-
Der Detektor wurde getestet, indem verschiedene Eingaben bereitgestellt und geprüft wurden, ob die Regeln und die Reihenfolge der Regelausführung wie erwartet funktionierten.
(Optional) Erkunden Sie den Amazon Fraud Detector APIs mit einem Jupyter (IPython) Notebook
Weitere Beispiele für die Verwendung von Amazon Fraud Detector APIs finden Sie im aws-fraud-detector-samples GitHub RepositoryGetEventPrediction
API.