

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)。

  をすでにお持ちの場合は[AWS SDK のセットアップ](set-up.md#set-up-sdk)、Boto3 SDK バージョン 1.14.29 以降を使用していることを確認してください。
+ このチュートリアルに必要な[サンプルデータセットを取得してアップロードする](step-1-get-s3-data.md)ファイルの手順に従いました。

## はじめに
<a name="get-started-python"></a>

### ステップ 1: Python 環境をセットアップして検証する
<a name="setup-and-verify-your-python-environment"></a>

Boto は、Amazon Web Services (AWS) SDK for Python です。これを使用して、作成、設定、管理を行うことができます AWS のサービス。Boto3 をインストールする方法については、[「AWS SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)」を参照してください。

インストール後 AWS SDK for Python (Boto3)、次の Python サンプルコマンドを実行して、環境が正しく設定されていることを確認します。環境が正しく設定されている場合、レスポンスにはディテクターのリストが含まれます。ディテクターが作成されていない場合、リストは空です。

```
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 を使用して 2 つの変数を作成します。変数は `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 を使用してモデルをトレーニングします。`'EXTERNAL_EVENTS'` `trainingDataSource` と、サンプルデータセットを保存した Amazon S3 の場所、および の 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* です。ディテクターバージョンには、少なくとも 1 つのルールが関連付けられている必要があります。

次のサンプルコードを使用して、ディテクター、ルール、結果を作成し、ディテクターを発行します。

**ディテクターを作成する**

次の例では、[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`の 3 つの結果を作成します`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'
)
```

**ルールの作成**

ルールは、データセットの 1 つ以上の変数、ロジック式、および 1 つ以上の結果で構成されます。

次の例では、[CreateRule](https://docs.aws.amazon.com//frauddetector/latest/api/API_CreateRule.html) API を使用して、`high_risk`、、 `medium_risk`の 3 つの異なるルールを作成します`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 を使用して、リクエストごとに 1 つのアカウント登録のデータを提供します。このチュートリアルでは、アカウント登録サンプルデータファイルからデータ (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 API について詳しく知る
<a name="gs-jupyter-notebook"></a>

Amazon Fraud Detector APIs[aws-fraud-detector-samples GitHub repository](https://github.com/aws-samples/aws-fraud-detector-samples)」を参照してください。ノートブックで取り上げるトピックには、Amazon Fraud Detector APIs を使用したモデルの構築とディテクターの両方、および `GetEventPrediction` API を使用したバッチ不正予測リクエストの作成が含まれます。