

Amazon Fraud Detector는 2025년 11월 7일부터 신규 고객에게 더 이상 공개되지 않습니다. Amazon Fraud Detector와 유사한 기능을 알아보려면 Amazon SageMaker, AutoGluon 및를 살펴보세요 AWS WAF.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 자습서: 사용 시작하기 AWS SDK for Python (Boto3)
<a name="getting-started-python"></a>

이 자습서에서는 Amazon Fraud Detector 모델을 빌드 및 훈련한 다음이 모델을 사용하여를 사용하여 실시간 사기 예측을 생성하는 방법을 설명합니다 AWS SDK for Python (Boto3). 모델은 Amazon S3 버킷에 업로드하는 계정 등록 예제 데이터 파일을 사용하여 훈련됩니다.

이 자습서를 마치면 다음 작업을 완료합니다.
+ Amazon Fraud Detector 모델 구축 및 훈련
+ 실시간 사기 예측 생성

## 사전 조건
<a name="gs-sdk-prerequisites"></a>

다음은이 자습서의 사전 조건 단계입니다.
+ 완료됨[Amazon Fraud Detector 설정](set-up.md).

  이미가 있는 경우 Boto3 SDK 버전 1.14.29 이상을 사용하고 있는지 [AWS SDK 설정](set-up.md#set-up-sdk)확인합니다.
+ 이 자습서에 필요한 [예제 데이터 세트 가져오기 및 업로드](step-1-get-s3-data.md) 파일에 대한 지침을 따랐습니다.

## 시작하기
<a name="get-started-python"></a>

### 1단계: Python 환경 설정 및 확인
<a name="setup-and-verify-your-python-environment"></a>

Boto는 Python용 Amazon Web Services(AWS) SDK입니다. 이를 사용하여 생성, 구성 및 관리할 수 있습니다 AWS 서비스. Boto3를 설치하는 방법에 대한 지침은 [Python용 AWS SDK(Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)를 참조하세요.

설치 후 다음 Python 예제 명령을 AWS SDK for Python (Boto3)실행하여 환경이 올바르게 구성되었는지 확인합니다. 환경이 올바르게 구성된 경우 응답에는 감지기 목록이 포함됩니다. 감지기가 생성되지 않은 경우 목록이 비어 있습니다.

```
import boto3
fraudDetector = boto3.client('frauddetector')
            
response = fraudDetector.get_detectors()
print(response)
```

### 2단계: 변수, 개체 유형 및 레이블 생성
<a name="create-variables-entity-type-and-labels"></a>

이 단계에서는 모델, 이벤트 및 규칙을 정의하는 데 사용되는 리소스를 생성합니다.

#### 변수 생성
<a name="create-variable-gs-sdk"></a>

변수는 이벤트 유형, 모델 및 규칙을 생성하는 데 사용할 데이터 세트의 데이터 요소입니다.

다음 예제에서는 [CreateVariable](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateVariable.html) API를 사용하여 두 개의 변수를 생성합니다. 변수는 `email_address` 및 입니다`ip_address`. 해당 변수 유형인 `EMAIL_ADDRESS` 및에 할당합니다`IP_ADDRESS`. 이러한 변수는 업로드한 예제 데이터 세트의 일부입니다. 변수 유형을 지정하면 Amazon Fraud Detector는 모델 훈련 중과 예측을 가져올 때 변수를 해석합니다. 연결된 변수 유형이 있는 변수만 모델 훈련에 사용할 수 있습니다.

```
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>'
)
```

#### 개체 유형 생성
<a name="create-entity-gs-sdk"></a>

엔터티는 이벤트를 수행하는 사용자를 나타내며 엔터티 유형은 엔터티를 분류합니다. 분류 예에는 *고객*, *판매자* 또는 *계정이* 포함됩니다.

다음 예제에서는 [PutEntityType](https://docs.aws.amazon.com//frauddetector/latest/api/API_PutEntityType.html) API를 사용하여 `sample_customer` 엔터티 유형을 생성합니다.

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.put_entity_type(
   name = 'sample_customer',
   description = 'sample customer entity type'
)
```

#### 레이블 생성
<a name="create-label-gs-sdk"></a>

레이블은 이벤트를 사기성 또는 합법적인 것으로 분류하며 사기 탐지 모델을 훈련하는 데 사용됩니다. 모델은 이러한 레이블 값을 사용하여 이벤트를 분류하는 방법을 학습합니다.

다음 예제에서는 [Putlabel](https://docs.aws.amazon.com//frauddetector/latest/api/API_PutLabel.html) API를 사용하여 `fraud` 및 레이블 2개를 생성합니다`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'
)
```

### 3단계: 이벤트 유형 생성
<a name="python-create-event-type"></a>

Amazon Fraud Detector를 사용하면 위험을 평가하고 개별 이벤트에 대한 사기 예측을 생성하는 모델을 구축할 수 있습니다. 이벤트 유형은 개별 이벤트의 구조를 정의합니다.

다음 예제에서는 [PutEventType](https://docs.aws.amazon.com//frauddetector/latest/api/API_PutEventType.html) API를 사용하여 이벤트 유형을 생성합니다`sample_registration`. 이전 단계에서 생성한 변수(`email_address`,`ip_address`), 엔터티 유형(`sample_customer`), 레이블(`fraud`, `legit`)을 지정하여 이벤트 유형을 정의합니다.

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.put_event_type (
     name = 'sample_registration',
     eventVariables = ['ip_address', 'email_address'],
     labels = ['legit', 'fraud'],
     entityTypes = ['sample_customer'])
```

### 4단계: 모델 생성, 훈련 및 배포
<a name="python-create-and-train-a-model"></a>

Amazon Fraud Detector는 모델을 교육하여 특정 이벤트 유형에 대한 사기를 탐지하는 방법을 학습합니다. 이전 단계에서 이벤트 유형을 생성했습니다. 이 단계에서는 이벤트 유형에 대한 모델을 생성하고 훈련합니다. 모델은 모델 버전의 컨테이너 역할을 합니다. 모델을 훈련할 때마다 새 버전이 생성됩니다.

다음 예제 코드를 사용하여 온라인 사기 인사이트 모델을 생성하고 교육합니다. 이 모델을 라고 합니다`sample_fraud_detection_model`. 이는 Amazon S3에 업로드한 계정 등록 예제 데이터 세트를 `sample_registration` 사용하는 이벤트 유형에 대한 것입니다.

Amazon Fraud Detector가 지원하는 다양한 모델 유형에 대한 자세한 내용은 섹션을 참조하세요[모델 유형 선택](choosing-model-type.md).

**모델 생성**

다음 예제에서는 [CreateModel](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateModel.html) API를 사용하여 모델을 생성합니다.

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.create_model (
       modelId = 'sample_fraud_detection_model',
       eventTypeName = 'sample_registration',
       modelType = 'ONLINE_FRAUD_INSIGHTS')
```

**모델 훈련**

다음 예제에서는 [CreateModelVersion](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateModelVersion.html) API를 사용하여 모델을 훈련합니다. `trainingDataSource` 및 예제 데이터 세트를 저장한 Amazon S3 위치에 `'EXTERNAL_EVENTS'` 대해를 지정하고 용 Amazon S3 버킷의 *RoleArn*을 지정합니다`externalEventsDetail`. `trainingDataSchema` 파라미터에서 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']
        }
    }
}, 
         externalEventsDetail = {
              'dataLocation' : 's3://{{amzn-s3-demo-bucket}}/{{your-example-data-filename}}.csv',
              'dataAccessRoleArn' : '{{role_arn}}'
}
)
```

모델을 여러 번 훈련할 수 있습니다. 모델을 훈련할 때마다 새 버전이 생성됩니다. 모델 훈련이 완료되면 모델 버전 상태가 로 업데이트됩니다`TRAINING_COMPLETE`. 모델 성능 점수 및 기타 모델 성능 지표를 검토할 수 있습니다.

**모델 성능 검토**

Amazon Fraud Detector를 사용하는 중요한 단계는 모델 점수와 성능 지표를 사용하여 모델의 정확도를 평가하는 것입니다. 모델 훈련이 완료되면 Amazon Fraud Detector는 모델 훈련에 사용되지 않은 데이터의 15%를 사용하여 모델 성능을 검증합니다. 모델 성능 점수 및 기타 성능 지표를 생성합니다.

[DescribeModelVersions](https://docs.aws.amazon.com//frauddetector/latest/api/API_DescribeModelVersions.html) API를 사용하여 모델 성능을 검토합니다. 이 **모델의 모델 성능** 전체 점수와 Amazon Fraud Detector에서 생성한 기타 모든 지표를 살펴봅니다.

모델 성능 점수 및 성능 지표에 대한 자세한 내용은 [모델 점수](model-scores.md) 및 섹션을 참조하세요[모델 성능 지표](training-performance-metrics.md).

훈련된 모든 Amazon Fraud Detector 모델에는이 자습서의 지표와 유사한 실제 사기 탐지 성능 지표가 있을 것으로 예상할 수 있습니다.

**모델 배포**

훈련된 모델의 성능 지표를 검토한 후 모델을 배포하고 Amazon Fraud Detector에서 사기 예측을 생성할 수 있도록 합니다. 훈련된 모델을 배포하려면 [UpdateModelVersionStatus](https://docs.aws.amazon.com//frauddetector/latest/api/API_UpdateModelVersionStatus.html) 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'
)
```

### 5단계: 감지기, 결과, 규칙 및 감지기 버전 생성
<a name="python-create-a-detector-outcome-rules-and-detector-version"></a>

감지기에는 모델 및 규칙과 같은 감지 로직이 포함되어 있습니다. 이 로직은 사기를 평가하려는 특정 이벤트에 대한 것입니다. 규칙은 예측 중에 변수 값을 해석하는 방법을 Amazon Fraud Detector에 알리기 위해 지정하는 조건입니다. 결과는 사기 예측의 결과입니다. 감지기에는 *DRAFT*, *ACTIVE* 또는 *INACTIVE* 상태의 각 버전을 포함하는 여러 버전이 있을 수 있습니다. 감지기 버전에는 연결된 규칙이 하나 이상 있어야 합니다.

다음 예제 코드를 사용하여 감지기, 규칙, 결과를 생성하고 감지기를 게시합니다.

**감지기 생성**

다음 예제에서는 [PutDetector](https://docs.aws.amazon.com//frauddetector/latest/api/API_PutDetector.html) API를 사용하여 `sample_registration` 이벤트 유형에 대한 `sample_detector` 감지기를 생성합니다.

```
import boto3
fraudDetector = boto3.client('frauddetector')

fraudDetector.put_detector (
     detectorId = 'sample_detector',
     eventTypeName = 'sample_registration'
)
```

**결과 생성**

가능한 각 사기 예측 결과에 대한 결과가 생성됩니다. 다음 예제에서 [PutOutcome](https://docs.aws.amazon.com//frauddetector/latest/api/API_PutOutcome.html) API는 , 및 `verify_customer``review`의 세 가지 결과를 생성하는 데 사용됩니다`approve`. 이러한 결과는 나중에 규칙에 할당됩니다.

```
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'
)
```

**규칙 생성**

규칙은 데이터 세트의 하나 이상의 변수, 로직 표현식 및 하나 이상의 결과로 구성됩니다.

다음 예제에서 [CreateRule](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateRule.html) API는 , 및 `high_risk``medium_risk`의 세 가지 규칙을 생성하는 데 사용됩니다`low_risk`. 규칙 표현식을 생성하여 모델 성능 점수 `sample_fraud_detection_model_insightscore` 값을 다양한 임계값과 비교합니다. 이는 이벤트의 위험 수준을 결정하고 이전 단계에서 정의된 결과를 할당하기 위한 것입니다.

```
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']
     )
```

**감지기 버전 생성**

감지기 버전은 사기 예측을 가져오는 데 사용되는 모델과 규칙을 정의합니다.

다음 예제에서는 [CreateDetectorVersion](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateDetectorVersion.html) API를 사용하여 감지기 버전을 생성합니다. 모델 버전 세부 정보, 규칙 및 규칙 실행 모드 FIRST\_MATCHED를 제공하여 이를 수행합니다. 규칙 실행 모드는 규칙을 평가하기 위한 시퀀스를 지정합니다. 규칙 실행 모드 FIRST\_MATCHED는 규칙이 처음에는 마지막으로 순차적으로 평가되고 일치하는 규칙에서 중지되도록 지정합니다.

```
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'
)
```

### 6단계: 사기 예측 생성
<a name="python-generate-fraud-predictions"></a>

이 자습서의 마지막 단계에서는 이전 단계에서 `sample_detector` 생성된 탐지기를 사용하여 `sample_registration` 이벤트 유형에 대한 사기 예측을 실시간으로 생성합니다. 감지기는 Amazon S3에 업로드된 예제 데이터를 평가합니다. 응답에는 모델 성능 점수와 일치하는 규칙과 관련된 모든 결과가 포함됩니다.

다음 예제에서 [GetEventPrediction](https://docs.aws.amazon.com//frauddetector/latest/api/API_GetEventPrediction.html) API는 각 요청에 대해 단일 계정 등록의 데이터를 제공하는 데 사용됩니다. 이 자습서에서는 계정 등록 예제 데이터 파일에서 데이터(email\_address 및 ip\_address)를 가져옵니다. 상단 헤더 줄 뒤의 각 줄(행)은 단일 계정 등록 이벤트의 데이터를 나타냅니다.

```
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'
}
)
```

이 자습서를 완료한 후 다음을 수행했습니다.
+ 이벤트 데이터 세트 예제를 Amazon S3에 업로드했습니다.
+ 모델을 생성하고 훈련하는 데 사용되는 변수, 엔터티 및 레이블을 생성했습니다.
+ 예제 데이터 세트를 사용하여 모델을 생성하고 교육했습니다.
+ Amazon Fraud Detector가 생성한 모델 성능 점수 및 기타 성능 지표를 확인했습니다.
+ 사기 탐지 모델을 배포했습니다.
+ 감지기를 생성하고 배포된 모델을 추가했습니다.
+ 감지기에 규칙, 규칙 실행 순서 및 결과가 추가되었습니다.
+ 감지기 버전을 생성했습니다.
+ 다양한 입력을 제공하고 규칙 및 규칙 실행 순서가 예상대로 작동하는지 확인하여 감지기를 테스트했습니다.

## (선택 사항) Jupyter(iPython) 노트북을 사용하여 Amazon Fraud Detector APIs 탐색
<a name="gs-jupyter-notebook"></a>

Amazon Fraud Detector APIs를 사용하는 방법에 대한 자세한 예는 [aws-fraud-detector-samples GitHub 리포지토리](https://github.com/aws-samples/aws-fraud-detector-samples)를 참조하세요. 노트북에서 다루는 주제에는 Amazon Fraud Detector APIs를 사용하여 모델과 탐지기를 구축하고 `GetEventPrediction` API를 사용하여 배치 사기 예측 요청을 하는 것이 모두 포함됩니다.