

自 2025 年 11 月 7 日起，Amazon Fraud Detector 不再向新客戶開放。對於類似 Amazon Fraud Detector 的功能，請探索 Amazon SageMaker、AutoGluon 和 AWS WAF。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 詐騙預測
<a name="getting-fraud-predictions"></a>

您可以使用 Amazon Fraud Detector 即時取得單一事件的詐騙預測，或離線取得一組事件的詐騙預測。若要產生單一事件或一組事件的詐騙預測，您需要提供下列資訊給 Amazon Fraud Detector：
+ 詐騙預測邏輯
+ 事件中繼資料

**詐騙偵測邏輯**

詐騙預測邏輯使用一或多個規則來評估與事件相關聯的資料，然後提供結果和詐騙預測分數。您可以使用下列元件建立詐騙預測邏輯：
+ 事件類型 - 定義事件的結構
+ 模型 - 定義預測詐騙的演算法和資料需求
+ 變數 - 代表與事件相關聯的資料元素
+ 規則 - 告知 Amazon Fraud Detector 如何在詐騙預測期間解譯變數值
+ 結果 - 詐騙預測所產生的結果
+ 偵測器版本 - 包含特定事件的詐騙預測邏輯

如需用於建立詐騙偵測邏輯之元件的詳細資訊，請參閱 [Amazon Fraud Detector 概念](https://docs.aws.amazon.com/frauddetector/latest/ug/frauddetector-ml-concepts.html)。開始產生詐騙預測之前，請確定您已建立並發佈包含詐騙預測邏輯的偵測器版本。您可以使用詐騙偵測器主控台或 API 來建立和發佈偵測器版本。如需使用 主控台的指示，請參閱[入門 （主控台）](https://docs.aws.amazon.com/frauddetector/latest/ug/get-started.html)。如需使用 API 的指示，請參閱[建立偵測器版本](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-detector-version.html)。

**事件中繼資料**

事件中繼資料提供正在評估之事件的詳細資訊。您要評估的每個事件都必須包含與偵測器版本相關聯的事件類型中每個變數的值。此外，您的事件中繼資料必須包含下列項目：
+ EVENT\$1ID – 事件的識別符。例如，如果您的事件是線上交易，EVENT\$1ID 可能是提供給客戶的交易參考號碼。

  **EVENT\$1ID 的重要備註**
  + 該事件必須是唯一的
  + 應該代表對您的業務有意義的資訊
  + 必須滿足規則表達式模式： `^[0-9a-z_-]+$.`
  + 必須儲存。EVENT\$1ID 是事件的參考，用於對事件執行操作，例如刪除事件。
  + 不建議將時間戳記附加到 EVENT\$1ID，因為它可能會在稍後您想要更新事件時發生問題，因為您需要提供完全相同的 EVENT\$1ID。
+ ENTITY\$1TYPE – 執行事件的實體，例如商家或客戶。
+ ENTITY\$1ID - 執行事件之實體的識別符。ENTITY\$1ID 必須滿足下列規則表達式模式：`^[0-9a-z_-]+$`。如果評估時無法使用 ENTITY\$1ID，請傳遞未知的字串。
+ EVENT\$1TIMESTAMP - 事件發生時的時間戳記。時間戳記必須在 UTC 中為 ISO 8601 標準。

# 即時預測
<a name="real-time-fraud-prediction"></a>

您可以透過呼叫 `GetEventPrediction` API 即時評估線上活動是否有詐騙。您可以提供每個請求中單一事件的相關資訊，並根據與指定偵測器相關聯的詐騙預測邏輯，同步接收模型分數和結果。

## 即時詐騙預測的運作方式
<a name="how-real-time-prediction-works"></a>

`GetEventPrediction` API 使用指定的偵測器版本來評估為事件提供的事件中繼資料。在評估期間，Amazon Fraud Detector 會先為新增至偵測器版本的模型產生模型分數，然後將結果傳遞至規則進行評估。規則會依規則執行模式指定執行 （請參閱[建立偵測器版本](https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-detector-version.html))。在回應中，Amazon Fraud Detector 會提供模型分數，以及與相符規則相關聯的任何結果。

## 取得即時詐騙預測
<a name="gettting-real-time-prediction"></a>

若要取得即時詐騙預測，請確定您已建立並發佈包含詐騙預測模型和規則的偵測器，或只是規則集。

您可以使用 AWS 命令列界面 (AWS CLI) 或其中一個 Amazon Fraud Detector SDKs 呼叫 [GetEventPrediction](https://docs.aws.amazon.com/frauddetector/latest/api/API_GetEventPrediction.html) API 操作，即時取得事件的詐騙預測。

若要使用 API，請在每個請求中提供單一事件的資訊。作為請求的一部分，您必須指定 `detectorId` Amazon Fraud Detector 將使用 來評估事件。您可以選擇性地指定 `detectorVersionId`。如果`detectorVersionId`未指定 ，Amazon Fraud Detector 將使用偵測器的 `ACTIVE `版本。

您可以選擇性地傳送資料，透過在 欄位中傳遞資料來叫用 SageMaker AI 模型`externalModelEndpointBlobs`。

### 使用 取得詐騙預測 適用於 Python (Boto3) 的 AWS SDK
<a name="get-a-fraud-prediction-using-the-aws-python-sdk"></a>

若要產生詐騙預測，請呼叫 `GetEventPrediction` API。以下範例假設您已完成 [B 部分：產生詐騙預測](part-b.md)。作為回應的一部分，您將收到模型分數，以及任何相符的規則和對應的結果。您可以在 [aws-fraud-detector-samples GitHub 儲存庫](https://github.com/aws-samples/aws-fraud-detector-samples)上找到`GetEventPrediction`請求的其他範例。

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

# 批次預測
<a name="batch-predictions"></a>

您可以使用 Amazon Fraud Detector 中的*批次預測*任務，取得一組不需要即時評分的事件預測。例如，您可以建立批次預測任務來執行離線proof-of-concept，或回溯性評估每小時、每日或每週的事件風險。

您可以使用 [Amazon Fraud Detector 主控台](https://console.aws.amazon.com/frauddetector)建立批次預測任務，或使用 AWS 命令列界面 (AWS CLI) 或其中一個 Amazon Fraud Detector SDKs 呼叫 [CreateBatchPredictionJob](https://docs.aws.amazon.com/frauddetector/latest/api/API_CreateBatchPredictionJob.html) API 操作。

**Topics**
+ [批次預測的運作方式](#how-batch-predictions-works)
+ [輸入和輸出檔案](#input-and-output-files)
+ [取得批次預測](#getting-batch-predictions)
+ [IAM 角色指引](#guidance-iam-roles)
+ [使用 取得批次詐騙預測 適用於 Python (Boto3) 的 AWS SDK](#get-a-batch-fraud-prediction-using-the-aws-python-sdk)

## 批次預測的運作方式
<a name="how-batch-predictions-works"></a>

`CreateBatchPredictionJob` API 操作使用指定的偵測器版本，根據位於 Amazon S3 儲存貯體的輸入 CSV 檔案中提供的資料進行預測。API 接著會將產生的 CSV 檔案傳回至 S3 儲存貯體。

批次預測任務會以與 `GetEventPrediction`操作相同的方式計算模型分數和預測結果。與 類似`GetEventPrediction`，若要建立批次預測任務，您必須先建立事件類型、選擇性地訓練模型，然後建立偵測器版本來評估批次任務中的事件。

批次預測任務評估的事件風險分數定價與 `GetEventPrediction` API 建立的分數定價相同。如需詳細資訊，請參閱 [Amazon Fraud Detector 定價](https://aws.amazon.com/fraud-detector/pricing/)。

您一次只能執行一個批次預測任務。

## 輸入和輸出檔案
<a name="input-and-output-files"></a>

 輸入 CSV 檔案應包含符合與所選偵測器版本相關聯之事件類型的標頭。輸入資料檔案的大小上限為 1GB。事件數量會根據您的事件大小而有所不同。

Amazon Fraud Detector 會在與輸入檔案相同的儲存貯體中建立輸出檔案，除非您為輸出資料指定不同的位置。輸出檔案包含來自輸入檔案的原始資料和下列附加資料欄：
+ `MODEL_SCORES` — 詳細說明與所選偵測器版本相關聯之每個模型的事件模型分數。
+ `OUTCOMES` — 詳細說明所選偵測器版本及其規則評估的事件結果。
+ `STATUS` — 指出事件是否已成功評估。如果事件未成功評估，此欄會顯示失敗的原因代碼。
+ ` RULE_RESULTS` — 根據規則執行模式比對的所有規則清單。

## 取得批次預測
<a name="getting-batch-predictions"></a>

下列步驟假設您已建立事件類型、使用該事件類型訓練模型 （選用），以及為該事件類型建立偵測器版本。

**取得批次預測**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/frauddetector](https://console.aws.amazon.com/frauddetector) 的 Amazon Fraud Detector 主控台。

1. 在 Amazon Fraud Detector 主控台的左側導覽窗格中，選擇**批次預測**，然後選擇**新批次預測**。

1. 在**任務名稱**中，指定批次預測任務的名稱。如果您未指定名稱，Amazon Fraud Detector 會隨機產生任務名稱。

1. 在**偵測器**中，選擇此批次預測的偵測器。

1. 在**偵測器版本**中，選擇此批次預測的偵測器版本。您可以選擇任何狀態的偵測器版本。如果您的偵測器具有處於 `Active` 狀態的偵測器版本，則會自動選取該版本，但您也可以視需要變更此選項。

1. 在 **IAM 角色**中，選擇或建立具有輸入和輸出 Amazon S3 儲存貯體讀取和寫入存取權的角色。如需詳細資訊，請參閱[IAM 角色指引](#guidance-iam-roles)。

   若要取得批次預測，呼叫 `CreateBatchPredictionJob`操作的 IAM 角色必須具有輸入 S3 儲存貯體的讀取許可，並將許可寫入輸出 S3 儲存貯體。如需儲存貯體許可的詳細資訊，請參閱《*Amazon S3 使用者指南*》中的[使用者政策範例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html)。

1. 在**輸入資料位置**中，指定輸入資料的 Amazon S3 位置。如果您希望輸出檔案位於不同的 S3 儲存貯體中，請選取**分開資料位置進行輸出**，並提供輸出資料的 Amazon S3 位置。

1. （選用） 為您的批次預測任務建立標籤。

1. 選擇 **開始使用**。

   Amazon Fraud Detector 會建立批次預測任務，且任務的狀態為 `In progress`。批次預測任務處理時間會根據事件數量和偵測器版本組態而有所不同。

若要停止進行中的批次預測任務，請前往批次預測任務詳細資訊頁面，選擇**動作**，然後選擇**停止批次預測**。如果您停止批次預測任務，您將不會收到任務的任何結果。

當批次預測任務的狀態變更為 時`Complete`，您可以從指定的輸出 Amazon S3 儲存貯體擷取任務的輸出。輸出檔案名稱的格式為 `batch prediction job name_file creation timestamp_output.csv`。例如，來自名為 之任務的輸出檔案`mybatchjob`為 `mybatchjob_ 1611170650_output.csv`。

若要搜尋批次預測任務評估的特定事件，請在 Amazon Fraud Detector 主控台的左側導覽窗格中，選擇**搜尋過去的預測**。

若要刪除已完成的批次預測任務，請前往批次預測任務詳細資訊頁面，選擇**動作**，然後選擇**刪除批次預測**。

## IAM 角色指引
<a name="guidance-iam-roles"></a>

若要取得批次預測，呼叫 [CreateBatchPredictionJob](https://docs.aws.amazon.com/frauddetector/latest/api/API_CreateBatchPredictionJob.html) 操作的 IAM 角色必須具有輸入 S3 儲存貯體的讀取許可，並將許可寫入輸出 S3 儲存貯體。如需儲存貯體許可的詳細資訊，請參閱《Amazon S3 使用者指南》中的使用者政策範例。在 Amazon Fraud Detector 主控台上，您有三個選項可選取批次預測的 IAM 角色：

1. 在建立新的批次預測任務時建立角色。

1. 選取您先前在 Amazon Fraud Detector 主控台中建立的現有 IAM 角色。在執行此步驟之前，請務必將 `S3:PutObject` 許可新增至角色。

1. 為先前建立的 IAM 角色輸入自訂 ARN。

如果您收到與 IAM 角色相關的錯誤，請確認下列事項：

1. 您的 Amazon S3 輸入和輸出儲存貯體與偵測器位於相同的區域。

1. 您使用的 IAM 角色具有輸入 S3 儲存貯體的 `s3:GetObject` 許可，以及輸出 S3 儲存貯體的 `s3:PutObject`許可。

1. 您使用的 IAM 角色具有服務主體 的信任政策`frauddetector.amazonaws.com`。

## 使用 取得批次詐騙預測 適用於 Python (Boto3) 的 AWS SDK
<a name="get-a-batch-fraud-prediction-using-the-aws-python-sdk"></a>

下列範例顯示 [CreateBatchPredictionJob](https://docs.aws.amazon.com/frauddetector/latest/api/API_CreateBatchPredictionJob.html) API 的範例請求。批次預測任務必須包含下列現有資源：偵測器、偵測器版本和事件類型名稱。下列範例假設您已建立事件類型 `sample_registration`、偵測器 `sample_detector`和偵測器版本 `1`。

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

fraudDetector.create_batch_prediction_job (
   jobId = 'sample_batch',
   inputPath = 's3://bucket_name/input_file_name.csv',
   outputPath = 's3://bucket_name/',
   eventTypeName = 'sample_registration',
   detectorName = 'sample_detector',
   detectorVersion = '1',
   iamRoleArn = 'arn:aws:iam::**:role/service-role/AmazonFraudDetector-DataAccessRole-**'
)
```

# 預測說明
<a name="prediction-explanation"></a>

預測說明可讓您深入了解每個事件變數如何影響模型的詐騙預測分數，並自動產生做為詐騙預測的一部分。每個詐騙預測的風險分數介於 1 到 1000 之間。預測說明提供每個事件變數在大小 (0-5，5 為最高） 和方向 （提高或降低分數） 方面對風險分數影響的詳細資訊。您也可以針對下列任務使用預測說明：
+ 在標記事件以供檢閱時，識別手動反轉期間的首要風險指標。
+ 縮小導致誤報預測的根本原因 （例如，合法事件的高風險分數）。
+ 分析事件資料中的詐騙模式，並偵測資料集中的任何偏差。

**重要**  
預測說明會自動產生，且僅適用於 *2021 年 6 月 30* 日當天或之後訓練的模型。若要接收 *2021 年 6 月 30 日之前所訓練模型的預測說明，*請重新訓練這些模型。

預測說明為用於訓練模型的每個事件變數提供下列一組值。

 **相對影響**

提供變數對詐騙預測分數之規模影響的視覺化參考。相對影響值由星星評分 (0-5，5 為最高） 和詐騙風險的方向 （增加/減少） 影響組成。
+ 會增加詐騙風險的變數會以紅色星星表示。紅色星星的數量越高，變數就越能提高詐騙分數，並增加詐騙的可能性。
+ 降低詐騙風險的變數會以綠色星星表示。綠色的啟動次數越高，變數越能降低詐騙風險分數，並降低詐騙的可能性。
+ 所有變數的零星表示沒有任何變數本身會大幅改變詐騙風險。

**原始說明值**

提供原始、未解譯的值，以詐騙的日誌目錄表示。這些值通常介於 -10 到 \$110 之間，但範圍從 - 無限到 \$1 無限。
+ 正值表示變數提高風險分數。
+ 負值表示變數將風險分數向下推。

在 Amazon Fraud Detector 主控台中，預測說明值會顯示如下。彩色星星評分和對應的原始數值，可讓您輕鬆查看變數之間的相對影響。

![\[預測說明圖表：增加風險的變數和降低詐騙風險的變數，具有相對影響和每個變數的原始說明值。\]](http://docs.aws.amazon.com/zh_tw/frauddetector/latest/ug/images/PredictionExplanationPane.png)


## 檢視預測說明
<a name="view-prediction-explanations"></a>

產生詐騙預測後，您可以在 Amazon Fraud Detector 主控台中檢視預測說明。若要使用 AWS SDK APIs 檢視預測說明，您必須先呼叫 `ListEventPrediction` API 以取得事件的預測時間戳記，然後呼叫 `GetEventPredictionMetadata` API 以取得預測說明。

### 使用 Amazon Fraud Detector 主控台檢視預測說明
<a name="view-prediction-explanations-console"></a>

**若要使用主控台檢視預測說明，**

1. 開啟 AWS 主控台並登入您的帳戶。導覽至 Amazon Fraud Detector。

1. 在左側導覽窗格中，選擇**搜尋過去的預測**。

1. 使用 **屬性**、**運算子**和**值**篩選條件來選取您要檢閱的預測。

1. 在頂部**篩選條件**窗格中，請務必選取您要檢閱的預測產生時間期間。

1. **結果**窗格會顯示指定期間內產生的所有預測清單。按一下預測的事件 ID 以檢視預測說明。

1. 向下捲動至**預測說明**窗格。

1. 在 **上**設定**顯示原始預測解釋值**按鈕，以檢視所有變數的原始預測解釋值。

### 使用適用於 Python 的 AWS 開發套件 (Boto3) 檢視預測說明
<a name="view-prediction-explanations-sdk"></a>

下列範例顯示使用 AWS SDK 的 `ListEventPredictions`和 `GetEventPredictionMetadata` API 檢視預測說明的範例請求。 APIs 

**範例 1：使用 `ListEventPredictions` API 取得最新預測的清單**

```
import boto3 
fraudDetector = boto3.client('frauddetector') 
fraudDetector.list_event_predictions(  
  maxResults = 10, 
  predictionTimeRange = {
     end_time: '2022-01-13T23:18:21Z',
     start_time: '2022-01-13T20:18:21Z'
    }
 )
```

**範例 2；使用 `ListEventPredictions` API 取得事件類型「註冊」的過去預測清單**

```
import boto3 
fraudDetector = boto3.client('frauddetector') 
fraudDetector.list_event_predictions(  
   eventType = {
      value = 'registration'
    } 
   maxResults = 70,
   nextToken = "10",
   predictionTimeRange = {
     end_time: '2021-07-13T23:18:21Z',
     start_time: '2021-07-13T20:18:21Z'
    }
 )
```

**範例 3：取得使用 `GetEventPredictionMetadata` API 在指定期間內產生之指定事件 ID、事件類型、偵測器 ID 和偵測器版本 ID 的過去預測詳細資訊。**

首先呼叫 `ListEventPredictions` API 來取得此請求`predictionTimestamp`指定的 。

```
import boto3 
fraudDetector = boto3.client('frauddetector') 
fraudDetector.get_event_prediction_metadata ( 
   detectorId = 'sample_detector',
   detectorVersionId = '1', 
   eventId = '802454d3-f7d8-482d-97e8-c4b6db9a0428', 
   eventTypeName = 'sample_registration', 
   predictionTimestamp = '2021-07-13T21:18:21Z' 
 )
```

## 了解預測解釋的計算方式
<a name="how-prediction-explanations-calculated"></a>

Amazon Fraud Detector 使用 [SHAP (SHapeley Additive exPlanations)](https://arxiv.org/abs/1705.07874)，透過計算用於模型訓練之每個事件變數的**原始解釋值**來解釋個別事件預測。產生預測時，原始解釋值由模型計算為分類演算法的一部分。這些原始解釋值代表每個輸入對詐騙機率對日誌的貢獻。原始解釋值 （從 -infinity 轉換為 \$1infinity) 會使用映射轉換為**相對影響值** (-5 至 \$15)。衍生自原始解釋值的相對影響值代表詐騙 （正面） 或合法 （負面） 機率增加的次數，讓您更容易了解預測解釋。