

# 機械学習変換の使用
<a name="console-machine-learning-transforms"></a>

AWS Glue に使用して、データの最適化に使用できるカスタム機械学習変換を作成できます。これらの変換は、AWS Glue コンソールでのジョブの作成時に使用できます。

機械学習変換の作成方法の詳細については、「[AWS Lake Formation FindMatches によるレコードのマッチング](machine-learning.md)」を参照してください。

**Topics**
+ [変換のプロパティ](#console-machine-learning-properties)
+ [機械学習変換の追加と編集](#console-machine-learning-transforms-actions)
+ [変換の詳細の確認](#console-machine-learning-transforms-details)
+ [ラベルを使って変換を教える](#console-machine-learning-transforms-teaching-transforms)

## 変換のプロパティ
<a name="console-machine-learning-properties"></a>

既存の機械学習変換を表示するには、AWS マネジメントコンソール にサインインして、AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) を開きます。**[データ統合と ETL]** のナビゲーションペインで、**[データ分類ツール] > [レコードのマッチング]** の順に選択します。

各変換のプロパティ:

**変換名**  
変換の作成時に付けた一意の変換名。

**ID**  
変換の一意の識別子。

**[Label count] (ラベル数)**  
変換のトレーニングに役立てるために指定されたラベリングファイル内のラベルの数。

**ステータス**  
変換が [**Ready**] (使用可能) であるか、[**Needs training**] (トレーニングが必要) であるかを示します。ジョブで機械学習変換を正常に実行するには、ジョブのステータスが [**Ready**] (使用可能) であることが必要です。

**作成**  
変換の作成日。

**変更済み**  
変換が最後に更新された日付。

**説明**  
変換の説明 (説明が入力された場合)。

**AWS Glue バージョン**  
使用する AWS Glue のバージョン。

**実行 ID**  
変換の作成時に付けた一意の変換名。

**タスクタイプ**  
機械学習変換のタイプ (**一致するレコードの検索**など)。

**ステータス**  
タスク実行のステータスを示します。次のようなステータスがあります。  
+ スタート
+ 実行中
+ 停止中
+ 停止
+ 成功
+ 失敗
+ タイムアウト

**エラー**  
ステータスが [失敗] の場合、失敗の理由を説明するエラーメッセージが表示されます。

## 機械学習変換の追加と編集
<a name="console-machine-learning-transforms-actions"></a>

 AWS Glue コンソールで変換の表示、削除、セットアップ、トレーニング、および調整を行うことができます。リストの変換の横にあるチェックボックスをオンにし、 [**アクション**] を選択して、実行するアクションを選択します。

### 新しい ML 変換の作成
<a name="w2aac37c11c24c23c11b5"></a>

 新しい機械学習変換を追加するには、**[変換の作成]** を選択します。次に、**[ジョブの追加]** ウィザードの手順に従います。詳細については、「[AWS Lake Formation FindMatches によるレコードのマッチング](machine-learning.md)」を参照してください。

#### ステップ 1. 変換のプロパティを設定する。
<a name="w2aac37c11c24c23c11b5b7"></a>

1. 名前と説明 (オプション) を入力します。

1. オプションで、セキュリティ設定を設定します。「[機械学習変換でのデータ暗号化の使用](#ml_transform_sec_config)」を参照してください。

1. オプションで、タスク実行の設定を設定します。タスク実行の設定では、タスクの実行方法をカスタマイズできます。ワーカータイプ、ワーカーの数、タスクのタイムアウト (分単位)、再試行回数、AWS Glue バージョンを選択します。

1. 必要に応じて、タグを設定します。タグとは、AWS リソースに割り当てることができるラベルです。各タグは、キーおよび値 (オプション) で構成されます。タグを使用して、リソースを検索およびフィルタリングしたり、AWS のコストを追跡できます。

#### ステップ 2. テーブルとプライマリキーを選択する。
<a name="w2aac37c11c24c23c11b5b9"></a>

1. AWS Glue カタログデータベースおよびテーブルを選択します。

1. 選択したテーブルからプライマリキーを選択します。プライマリキー列には通常、データソース内のすべてのレコードの固有の識別子が含まれます。

#### ステップ 3. 調整オプションを選択する。
<a name="w2aac37c11c24c23c11b5c11"></a>

1.  **[再現率と適合率]** では、再現率または適合率を優先するように変換を調整する調整値を選択します。デフォルトでは **[バランス]** が選択されていますが、再現率または適合率を優先するように選択するか、**[カスタム]** を選択して 0.0～1.0 (両端を含む) の値を入力できます。

1.  **[コスト削減と正確度]** では、コスト削減または正確度を優先するように調整値を選択するか、**[カスタム]** を選択して 0.0～1.0 (両端を含む) の値を入力できます。

1.  使用するラベルと出力を一致させることで ML 変換を教える場合は、**[一致のエンフォースメント]** で、**[出力をラベルに一致させる]** を選択します。

#### ステップ 4. 確認して作成します。
<a name="w2aac37c11c24c23c11b5c13"></a>

1.  ステップ 1～3 のオプションを確認します。

1.  変更が必要な手順については、**[編集]** を選択します。**[変換の作成]** を選択して、変換の作成ウィザードを完了します。

### 機械学習変換でのデータ暗号化の使用
<a name="ml_transform_sec_config"></a>

機械学習変換を AWS Glue に追加する際に、データソースまたはデータターゲットに関連付けられたセキュリティ設定をオプションで指定できます。データの格納に使用される Amazon S3 バケットがセキュリティ設定で暗号化されている場合は、変換の作成時に同じセキュリティ設定を指定します。

AWS KMS (SSE-KMS) でサーバー側の暗号化を使用して、モデルとラベルを暗号化し、許可されていない人に閲覧されるのを防ぐという選択もできます。このオプションを選択した場合は、AWS KMS key の名前を選択するように求められます。[**Enter a key ARN**] (キーの ARN を入力) を選択することもできます。KMS キーの ARN を入力することを選択した場合、KMS キー ARN を入力できる 2 番目のフィールドが表示されます。

**注記**  
現在、次のリージョンではカスタム暗号化キーを使用する ML 変換がサポートされていません。  
アジアパシフィック (大阪) - `ap-northeast-3`

## 変換の詳細の確認
<a name="console-machine-learning-transforms-details"></a>

### 変換のプロパティを確認する
<a name="console-machine-learning-transforms-details"></a>

**[変換プロパティ]** ページには、変換の属性が含まれます。変換定義に関する詳細として、以下の内容が表示されます。
+ [**変換名**] は変換の名前を示します。
+ [**タイプ**] は変換のタイプを一覧表示します。
+ [**ステータス**] は、変換がスクリプトまたはジョブで使用可能かどうかを示します。
+ [**Force output to match labels (出力をラベルに一致させる)**] は、ユーザーから提供されたラベルに出力を一致させるかどうかを示します。
+ [**Spark version**] (Spark バージョン) は、変換を追加したときに [**Task run properties**] (タスク実行のプロパティ) で選択した AWS Glue のバージョンに関連しています。ほとんどのお客様に AWS Glue 1.0 および Spark 2.4 が推奨されます。詳細については、「[AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions)」を参照してください。

### [履歴]、[品質を推定する]、[タグ] タブ
<a name="w2aac37c11c24c23c13b5"></a>

 変換の詳細には、変換の作成時に定義した情報が含まれます。変換の詳細を確認するには、**機械学習変換**のリストで変換を選択し、以下のタブの情報を確認します。
+ 履歴
+ 品質の推定
+ タグ

#### 履歴
<a name="console-machine-learning-transforms-history"></a>

[**履歴**] タブには、変換のタスク実行の履歴が表示されます。変換をトレーニングするには、複数のタイプのタスクを実行します。タスクごとに、実行メトリクスとして以下が含まれます。
+ [**実行 ID**] は、このタスクの実行ごとに AWS Glue によって作成される識別子です。
+ [**Task type (タスクタイプ)**] は、タスク実行のタイプを示します。
+ [**実行ステータス**] は、各タスクの成功した実行を一覧表示します。最新の実行が一番上に表示されます。
+ [**Error (エラー)**] には、実行が正常に行われなかった場合のエラーメッセージの詳細が表示されます。
+ [**開始時刻**] は、タスクの開始日時 (現地時間) を示します。
+ **[終了時刻]** には、タスクの終了日時 (現地時間) が表示されます。
+ [**ログ**] は、このジョブ実行の `stdout` に書き込まれたログにリンクされています。

  [**Logs**] (ログ) のリンク先は Amazon CloudWatch Logs です。このリンク先では、AWS Glue Data Catalog で作成されたテーブルと、発生したエラーに関する詳細を確認できます。ログの保持期間は、CloudWatch コンソールで管理できます。デフォルトのログ保持期間は `Never Expire` です。保持期間を変更する方法の詳細については、*Amazon CloudWatch Logs ユーザーガイド*の「[CloudWatch Logs でログデータ保管期間を変更する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention)」を参照してください。
+ **[ラベルファイル]** には、生成されたラベリングファイル用の Amazon S3 へのリンクが示されます。

#### 品質の推定
<a name="console-machine-learning-transforms-metrics"></a>

 [**Estimate Quality (品質の推定)**] タブは、変換の品質を測定するために使用するメトリクスを示します。推定値は、ラベル付きデータのサブセットを使用して、指定したラベルに変換一致予測を比較することによって計算されます。これらの推定値はおおよその値です。このタブから [**Estimate quality (品質の推定)**] タスク実行を呼び出すことができます。

**Estimate quality** タブには、次のプロパティを含む最後の **Estimate quality** の実行のメトリクスが表示されます。
+ **Precision-Recall 曲線の下にある領域**は、変換の全体的な品質の上限を推定する単一の数値です。これは適合率-再現率パラメータ用に行った選択とは関係ありません。値が高いほど、適合率と再現率のトレードオフが適切であることを示します。
+ **適合率**は、変換が一致を推定して、その推定が正確である度合いを見積もります。
+ **再現率の上限**は、実際の一致件数に対して、変換が推定した一致件数の割合の見積もりです。
+ **[F1]** は、変換の正確性 (1～0) を示します。1 は正確性が最適であることを表します。詳細については、Wikipedia の「[F1 スコア](https://en.wikipedia.org/wiki/F1_score)」を参照してください。
+ [**Column importance**] (列の重要度) テーブルには、各列の列名と重要度スコアが表示されます。列の重要度は、レコード内のどの列がマッチングを行うために最も使用されているかを識別することで、列がモデルにどの程度寄与しているかを理解するのに役立ちます。列の重要度を上げたり下げたりするために、このデータをラベルセットに追加したりラベルセットを変更したりするように促されることがあります。

  [Importance] (重要度) 列には、各列の数値スコアが 1.0 以下の 10 進数で示されます。

品質の推定と真の品質の比較については、「 [品質の推定とエンドツーエンド (真の) 品質の比較](#console-machine-learning-quality-estimates-true-quality)」を参照してください。

変換の調整の詳細については、「[AWS Glue での機械学変換の調整](add-job-machine-learning-transform-tuning.md)」を参照してください。

#### 品質の推定とエンドツーエンド (真の) 品質の比較
<a name="console-machine-learning-quality-estimates-true-quality"></a>

AWS Glue は、変換の品質を推定するために、内部の機械学習モデルに対してレコードのペアをいくつか提示します。これらのレコードのペアは、一致のラベルを指定したレコードですが、モデルは初見のものです。これらの品質の推定は、機械学習モデルの品質の関数です (モデルは、ユーザーが変換を「トレーニング」するためにラベル付けするレコードの数から影響を受けます)。エンドツーエンド、または真の再現率 (`ML transform` 変換によって自動的に計算されません) は、機械学習モデルに対してさまざまな一致を提案する `ML transform` フィルタリングメカニズムの影響を受けます。

このフィルタリング方法を調整するには、主に **[低コスト - 正確性]** の調整値を指定します。**[正確性]** を優先するようにこの調整値を近づけるほど、システムは一致する可能性のあるレコードのペアをより深く、広く検索します。機械学習モデルに取り込まれるレコードのペアが増えると、`ML transform` のエンドツーエンド、または真の再現率がより推定の再現率メトリクスに近づきます。その結果、マッチングのコスト/精度のトレードオフの変更によるマッチングのエンドツーエンドの品質の変更は、通常、品質の見積りには反映されません。

#### タグ
<a name="w2aac37c11c24c23c13b5c13"></a>

 タグとは、AWS リソースに割り当てることができるラベルです。各タグは、キーおよび値 (オプション) で構成されます。タグを使用して、リソースを検索およびフィルタリングしたり、AWS のコストを追跡できます。

## ラベルを使って変換を教える
<a name="console-machine-learning-transforms-teaching-transforms"></a>

 ML 変換の詳細ページから **[変換を教える]** を選択すると、ラベル (例) を使用して ML 変換を教えることができます。例 (ラベルと呼ばれます) を提供して機械学習のアルゴリズムを教える場合、使用する既存のラベルを選択したり、ラベリングファイルを作成できます。

![\[このスクリーンショットは、[ラベルを使って変換を教える] のウィザードの画面を示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/machine-learning-teach-transform.png)

+  **[ラベリング]** — ラベルがある場合は、**[ラベルがあります]** を選択します。ラベルがない場合でも、ラベリングファイルを生成する次の手順に進むことができます。
+  **[ラベリングファイルを生成する]** — AWS Glue により、ソースデータからレコードが抽出され、一致する可能性のあるレコードが提案されます。生成されたラベルファイルを保存する Amazon S3 バケットを選択します。**[ラベルリングファイルを生成する]** を選択してプロセスを開始します。完了したら、**[ラベリングファイルをダウンロードする]** を選択します。ダウンロードしたファイルには、ラベルを入力できるラベル用の列があります。
+  **[Amazon S3 からラベルをアップロードする]** — ラベルファイルが保存されている Amazon S3 バケットから、完成したラベリングファイルを選択します。その後、既存のラベルにラベルを追加するか、既存のラベルを上書きするかを選択します。**[Amazon S3 からラベルリングファイルをアップロードする]** を選択します。