

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AutoML API を使用して表形式データのリグレッションジョブまたは分類ジョブを作成する
<a name="autopilot-automate-model-development-create-experiment"></a>

Autopilot または AWS CLIがサポートする任意の言語で [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API アクションを呼び出すことで、表形式データの Autopilot リグレッションジョブまたは分類ジョブをプログラムで作成できます。`CreateAutoMLJobV2` API アクションの必須およびオプションの入力リクエストパラメータを以下に示します。このアクションの以前のバージョン `CreateAutoMLJob` に関する代替情報もあります。ただし、`CreateAutoMLJobV2` を使用することをお勧めします。

この API アクションが選択した言語の関数にどのように変換されるかについては、「`CreateAutoMLJobV2`」の「[関連項目](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso)」セクションを参照して SDK を選択してください。例として、Python ユーザーの場合は、 AWS SDK for Python (Boto3)の `[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` の完全なリクエスト構文を参照してください。

**注記**  
[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) と [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) は [CreateAutomlJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html) と [DescribeAutomlJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) の新しいバージョンで、下位互換性があります。  
`CreateAutoMLJobV2` の使用をお勧めします。`CreateAutoMLJobV2` は以前のバージョンの `CreateAutoMLJob` と同じ表形式の問題タイプだけでなく、画像やテキストの分類、時系列予測などの表形式以外の問題タイプも管理できます。

少なくとも、表形式のデータに対するすべての実験には、実験名、入力データおよび出力データの場所、および予測するターゲットデータの指定が必要です。オプションで、解決する問題のタイプ (リグレッション、分類、多クラス分類) を指定したり、モデリング戦略 (*スタックアンサンブル*または*ハイパーパラメータ最適化*) を選択したり、Autopilot ジョブがデータをトレーニングするために使用するアルゴリズムのリストを選択したりすることもできます。

 実験後は、トライアルを比較して、各モデルの前処理ステップ、アルゴリズム、ハイパーパラメータ範囲の詳細を詳しく調べることができます。また、[説明可能性](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-explainability.html)のレポートや[パフォーマンス](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-insights.html)のレポートをダウンロードすることもできます。提供された[ノートブック](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-notebook-output.html )を使用して、自動データ探索の結果や候補となるモデル定義を確認します。

`CreateAutoMLJob` を `CreateAutoMLJobV2` に移行する方法に関するガイドラインについては、「[CreateAutoMLJob を CreateAutoMLJobV2 に移行する](#autopilot-create-experiment-api-migrate-v1-v2)」を参照してください。

## 必須パラメータ
<a name="autopilot-create-experiment-api-required-params"></a>

------
#### [ CreateAutoMLJobV2 ]

`[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` を呼び出して、表形式データの Autopilot 実験を作成するためには、次の値を指定する必要があります。
+ ジョブの名前を指定する `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)`。
+ データソースを指定するための `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)` 内の少なくとも 1 つの `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)`。
+ `[AutoMLJobObjective](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobObjective)` メトリクスと `AutoMLProblemTypeConfig` で選択した教師あり学習の問題タイプ (二項分類、多クラス分類、回帰) の両方を含む、またはどちらも含まない。表形式データの場合、`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` のタイプとして `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` を選択する必要があります。教師あり学習の問題の場合、`TabularJobConfig` の `ProblemType` 属性で設定します。
+ AutoML ジョブのアーティファクトを保存する Amazon S3 出力パスを指定する `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)`。
+ データへのアクセスに使用されるロールの ARN を指定する `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)`。

------
#### [ CreateAutoMLJob ]

`[CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html)` を呼び出して、AutoML 実験を作成するには、次の 4 つの値を指定する必要があります。
+ ジョブの名前を指定する `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-AutoMLJobName)`。
+ データソースを指定するための `[InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig)` 内の少なくとも 1 つの `[AutoMLChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html)`。
+ AutoML ジョブのアーティファクトを保存する Amazon S3 出力パスを指定する `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)`。
+ データへのアクセスに使用されるロールの ARN を指定する `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)`。

------

その他のすべてのパラメータは省略可能です。

## 任意指定のパラメータ
<a name="autopilot-create-experiment-api-optional-params"></a>

次のセクションでは、表形式データを使用する場合に `CreateAutoMLJobV2` API アクションに渡すことができるいくつかのオプションパラメータの詳細を説明します。このアクションの以前のバージョン `CreateAutoMLJob` に関する代替情報もあります。ただし、`CreateAutoMLJobV2` を使用することをお勧めします。

### AutoML ジョブのトレーニングモードを設定する方法
<a name="autopilot-set-training-mode"></a>

表形式データの場合、モデル候補をトレーニングするためにデータに対して実行される一連のアルゴリズムは、モデリング戦略 (`ENSEMBLING`または`HYPERPARAMETER_TUNING`) によって異なります。以下では、このトレーニングモードの設定方法について詳しく説明します。

空白 (または`null`) のままにすると、`Mode` はデータセットのサイズに基づいて推測されます。

Autopilot のスタックアンサンブルとハイパーパラメータ最適化のトレーニング方法については、「[トレーニングモードとアルゴリズムのサポート](autopilot-model-support-validation.md)」を参照してください。

------
#### [ CreateAutoMLJobV2 ]

表形式データの場合、`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` のタイプとして `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` を選択する必要があります。

AutoML ジョブ V2 の[トレーニング方法](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html)は、`[TabularJobConfig.Mode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` パラメータで設定できます。

------
#### [ CreateAutoMLJob ]

AutoML ジョブの[トレーニング方法](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html)は、`[AutoMLJobConfig.Mode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-Mode)` パラメータで設定できます。

------

### AutoML ジョブをトレーニングするための特徴量とアルゴリズムの選択方法
<a name="autopilot-feature-selection"></a>

#### 特徴量の選択
<a name="autopilot-automl-job-feature-selection-api"></a>

Autopilot には、特徴量の選択や特徴量の抽出を含む自動データ前処理ステップがあります。ただし、トレーニングに使用する特徴量は `FeatureSpecificatioS3Uri` 属性を使用して手動で指定できます。

選択した特徴量は、次の形式の JSON ファイルに含まれている必要があります。

```
{ "FeatureAttributeNames":["col1", "col2", ...] }
```

`["col1", "col2", ...]` にリストされている値は大文字と小文字が区別されます。これらは、入力データ内の列名のサブセットである一意の値を含む文字列のリストである必要があります。

**注記**  
特徴量として提供される列のリストには、対象列を含めることはできません。

------
#### [ CreateAutoMLJobV2 ]

表形式データの場合、`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` のタイプとして `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` を選択する必要があります。

`[TabularJobConfig.FeatureSpecificationS3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` パラメータを使用して、選択した特徴量の URL を設定できます。

------
#### [ CreateAutoMLJob ]

[CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html) API で [AutoMLCandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html) 属性を次の形式で設定できます。

```
{
    "[AutoMLJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-AutoMLJobConfig)": {
        "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-CandidateGenerationConfig)": {
            "[FeatureSpecificationS3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html#sagemaker-Type-AutoMLCandidateGenerationConfig-FeatureSpecificationS3Uri)":"string"
            },
       }
  }
```

------

#### アルゴリズムの選択
<a name="autopilot-automl-job-algorithms-selection-api"></a>

デフォルトでは、Autopilot ジョブはデータセットにあらかじめ定義されたアルゴリズムのリストを実行して、モデル候補をトレーニングします。アルゴリズムのリストは、ジョブが使用するトレーニングモード (`ENSEMBLING`または`HYPERPARAMETER_TUNING`) によって異なります。

デフォルトで選択されているアルゴリズムのサブセットを指定できます。

------
#### [ CreateAutoMLJobV2 ]

表形式データの場合、`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` のタイプとして `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` を選択する必要があります。

[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html) の `AlgorithmsConfig` 属性には、選択した `AutoMLAlgorithms` の配列を指定できます。

以下は、アンサンブルトレーニングモードの `AutoMLAlgorithms` フィールドに 3 つのアルゴリズム (「xgboost」、「fastai」、「catboost」) を正確にリストした `AlgorithmsConfig` 属性の例です。

```
{
   "[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)": {
        "[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)": {
          "[Mode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)": "ENSEMBLING",
          "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html)": {
            "[AlgorithmsConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html#sagemaker-Type-CandidateGenerationConfig-AlgorithmsConfig)":[
               {"[AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)":["xgboost", "fastai", "catboost"]}
            ]
         },
       },
     },
  }
```

------
#### [ CreateAutoMLJob ]

[AutoMLCandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html) の `AlgorithmsConfig` 属性には、選択した `AutoMLAlgorithms` の配列を指定できます。

以下は、アンサンブルトレーニングモードの `AutoMLAlgorithms` フィールドに 3 つのアルゴリズム (「xgboost」、「fastai」、「catboost」) を正確にリストした `AlgorithmsConfig` 属性の例です。

```
{
   "[AutoMLJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-AutoMLJobConfig)": {
        "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-CandidateGenerationConfig)": {
            "[AlgorithmsConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html#sagemaker-Type-AutoMLCandidateGenerationConfig-AlgorithmsConfig)":[
               {"[AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms)":["xgboost", "fastai", "catboost"]}
            ]
         },
     "Mode": "ENSEMBLING" 
  }
```

------

トレーニング `Mode` ごとに使用できるアルゴリズムのリストについては、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms)」を参照してください。各アルゴリズムの詳細については、「[トレーニングモードとアルゴリズムのサポート](autopilot-model-support-validation.md)」を参照してください。

### AutoML ジョブのトレーニングデータセットと検証データセットを指定する方法
<a name="autopilot-data-sources-training-or-validation"></a>

独自の検証データセットとカスタムデータ分割率を指定することも、Autopilot にデータセットを自動的に分割させることもできます。

------
#### [ CreateAutoMLJobV2 ]

各 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) オブジェクト (必須パラメータ「[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker-api/src/AWSSageMakerAPIDoc/build/server-root/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)」を参照) には `ChannelType` があり、`training` 値または `validation` 値に設定することで、機械学習モデルを構築するときにデータをどのように使用するかを指定できます。少なくとも 1 つのデータソースを指定する必要があり、最大 2 つのデータソースを指定できます。1 つはトレーニングデータ用、もう 1 つは検証データ用です。

データをトレーニングデータセットと検証データセットに分割する方法は、データソースが 1 つか 2 つかによって異なります。
+ **データソースが 1 つ**のみである場合、`ChannelType` はデフォルトで `training` に設定され、この値を持つ必要があります。
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) の `ValidationFraction` 値を設定しないと、このソースのデータの 0.2 (20%) がデフォルトで検証に使用されます。
  + `ValidationFraction` を 0 から 1 の間の値に設定すると、データセットは指定した値に基づいて分割されます。この値は、検証に使用されるデータセットの割合を指定します。
+ **データソースが 2 つ**である場合は、`AutoMLJobChannel` オブジェクトの 1 つの `ChannelType` を `training` (デフォルト値) に設定する必要があります。他のデータソースの `ChannelType` は `validation` に設定する必要があります。2 つのデータソースは、同じ形式 (CSV または Parquet) と同じスキーマを持つ必要があります。この場合、`ValidationFraction` の値を設定してはいけません。各ソースのすべてのデータがトレーニングまたは検証に使用されるためです。この値を設定すると、エラーが発生します。

------
#### [ CreateAutoMLJob ]

各 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) オブジェクト (必須パラメータ [InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig) を参照) には `ChannelType` があり、`training` 値または `validation` 値に指定することで、機械学習モデルを構築するときにデータをどのように使用するかを指定できます。少なくとも 1 つのデータソースを指定する必要があり、最大 2 つのデータソースを指定できます。1 つはトレーニングデータ用、もう 1 つは検証データ用です。

データをトレーニングデータセットと検証データセットに分割する方法は、データソースが 1 つか 2 つかによって異なります。
+ **データソースが 1 つ**のみである場合、`ChannelType` はデフォルトで `training` に設定され、この値を持つ必要があります。
  + [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) の `ValidationFraction` 値を設定しないと、このソースのデータの 0.2 (20%) がデフォルトで検証に使用されます。
  + `ValidationFraction` を 0 から 1 の間の値に設定すると、データセットは指定した値に基づいて分割されます。この値は、検証に使用されるデータセットの割合を指定します。
+ **データソースが 2 つ**である場合は、`AutoMLChannel` オブジェクトの 1 つの `ChannelType` を `training` (デフォルト値) に設定する必要があります。他のデータソースの `ChannelType` は `validation` に設定する必要があります。2 つのデータソースは、同じ形式 (CSV または Parquet) と同じスキーマを持つ必要があります。この場合、`ValidationFraction` の値を設定してはいけません。各ソースのすべてのデータがトレーニングまたは検証に使用されるためです。この値を設定すると、エラーが発生します。

------

Autopilot の分割と相互検証について詳しくは、「[Autopilot での交差検証](autopilot-metrics-validation.md#autopilot-cross-validation)」を参照してください。

### AutoML ジョブの問題タイプを設定する方法
<a name="autopilot-set-problem-type-api"></a>

------
#### [ CreateAutoMLJobV2 ]

表形式データの場合、`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` のタイプとして `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` を選択する必要があります。

さらに `[TabularJobConfig.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` パラメータを指定して、AutoML ジョブ V2 のモデル候補に使用できる教師あり学習の問題タイプ (二項分類、多クラス分類、回帰) を指定できます。

------
#### [ CreateAutoMLJob ]

`[CreateAutoPilot.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-ProblemType)` パラメータを使用して、AutoML ジョブの問題のタイプを設定できます。これにより、Autopilot が試す前処理の種類とアルゴリズムが制限されます。ジョブが終了すると、`[CreateAutoPilot.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-ProblemType)` を設定している場合、`[ResolvedAttribute.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResolvedAttributes.html)` は設定した `ProblemType` と一致します。空白 (または`null`) のままにしておくと、`ProblemType` がユーザーに代わって推測されます。

------

**注記**  
場合によっては、Autopilot は十分な信頼度で `ProblemType` を推論できません。その場合、ジョブを成功させるために値を指定する必要があります。

### AutoML ジョブにサンプルの重みを追加する方法
<a name="autopilot-add-sample-weights-api"></a>

表形式のデータセットにサンプルの重み列を追加し、それを AutoML ジョブに渡して、トレーニングと評価中にデータセットの行に重み付けをするように要求できます。

サンプルの重みのサポートは、[アンサンブルモード](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-training-mode)でのみ使用できます。ウェイトは負でない数値でなければなりません。無効な重み値または重み値がないデータポイントは除外されます。使用可能な目標メトリクスの詳細については、「[Autopilot 加重メトリクス](autopilot-metrics-validation.md#autopilot-weighted-metrics)」を参照してください。

------
#### [ CreateAutoMLJobV2 ]

表形式データの場合、`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` のタイプとして `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` を選択する必要があります。

実験の作成時にサンプルの重みを設定するには ([CreateAutomLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) を参照)、`TabularJobConfig` オブジェクトの `SampleWeightAttributeName` 属性でサンプルの重み列の名前を渡すことができます。これにより、目標メトリクスがモデル候補のトレーニング、評価、選択にその重みを使用するようになります。

------
#### [ CreateAutoMLJob ]

実験の作成時にサンプルの重みを設定するには ([CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html) を参照)、[AutoMLChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) オブジェクトの `SampleWeightAttributeName` 属性でサンプルの重み列の名前を渡すことができます。これにより、目標メトリクスがモデル候補のトレーニング、評価、選択にその重みを使用するようになります。

------

### 大規模なデータセットのために EMR Serverless でリモートジョブを開始するように AutoML を設定する方法
<a name="autopilot-set-emr-serverless-api-tabular"></a>

大規模なデータセットを処理するために追加のコンピューティングリソースが必要なときに、Amazon EMR Serverless で自動的にリモートジョブを開始するように AutoML ジョブ V2 を設定できます。必要に応じて EMR Serverless にシームレスに移行することで、AutoML ジョブは、ユーザーが手動で介入することなく、最初にプロビジョニングされたリソースを超えるデータセットを処理できます。EMR Serverless は、表形式および時系列の問題タイプで使用できます。5 GB を超える表形式のデータセットには、このオプションを設定することをお勧めします。

AutoML ジョブ V2 が大規模なデータセットに対して EMR Serverless に自動的に移行できるようにするには、`ExecutionRoleARN` フィールドを含む `EmrServerlessComputeConfig` オブジェクトを、AutoML ジョブ V2 入力リクエストの `AutoMLComputeConfig` に指定する必要があります。

`ExecutionRoleARN` は、EMR Serverless ジョブを実行するために必要なアクセス許可を AutoML ジョブ V2 に 付与する IAM ロールの ARN です。

このロールには、次の信頼関係が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "emr-serverless.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

以下を行うアクセス許可を付与します。
+ EMR Serverless アプリケーションを作成、一覧表示、更新する。
+ EMR Serverless アプリケーションでのジョブの実行を開始、一覧表示、取得、またはキャンセルする。
+ EMR Serverless リソースにタグを付ける。
+ 実行のために IAM ロールを EMR Serverless サービスに渡す。

  `iam:PassRole` アクセス許可を付与することで、AutoML ジョブ V2 は一時的に `EMRServerlessRuntimeRole-*` ロールを引き受け、EMR Serverless サービスに渡すことができます。これらは、EMR Serverless ジョブ実行環境が、データアクセス用の Amazon S3、ログ記録用の CloudWatch、 AWS Glue データカタログへのアクセス、ワークロード要件に基づくその他のサービスなど、ランタイムに必要な他の AWS サービスとリソースにアクセスするために使用する IAM ロールです。

  このロールのアクセス許可の詳細については、「[Amazon EMR Serverless のジョブランタイムロール](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)」を参照してください。

提供されている JSON ドキュメントで定義された IAM ポリシーでは、これらのアクセス許可が付与されます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "EMRServerlessCreateApplicationOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:CreateApplication",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListApplicationOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListApplications",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessApplicationOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:UpdateApplication",
                "emr-serverless:GetApplication"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessStartJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:StartJobRun",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListJobRuns",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessJobRunOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:CancelJobRun"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessTagResourceOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:TagResource",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "IAMPassOperationForEMRServerless",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
         }
    ]
}
```

------

## CreateAutoMLJob を CreateAutoMLJobV2 に移行する
<a name="autopilot-create-experiment-api-migrate-v1-v2"></a>

`CreateAutoMLJob` のユーザーは `CreateAutoMLJobV2` に移行することをお勧めします。

このセクションでは、[CreateAutomLJob](https://docs.aws.amazon.com/sagemaker-api/src/AWSSageMakerAPIDoc/build/server-root/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#API_CreateAutoMLJob_RequestSyntax) と [CreateAutomlJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax) の入力パラメータの違いを説明します。また、2 つのバージョン間の入力リクエストのオブジェクトと属性の位置、名前、構造の変化に焦点を当てて説明します。
+ **バージョン間で変更されていないリクエスト属性。**

  ```
  {
     "AutoMLJobName": "string",
     "AutoMLJobObjective": { 
        "MetricName": "string"
     },
     "ModelDeployConfig": { 
        "AutoGenerateEndpointName": boolean,
        "EndpointName": "string"
     },
     "OutputDataConfig": { 
        "KmsKeyId": "string",
        "S3OutputPath": "string"
     },
     "RoleArn": "string",
     "Tags": [ 
        { 
           "Key": "string",
           "Value": "string"
        }
     ]
  }
  ```
+ **バージョン間で位置と構造が変更されたリクエスト属性。**

  次の属性の位置が変更されました。`DataSplitConfig`、`Security Config`、`CompletionCriteria`、`Mode`、`FeatureSpecificationS3Uri`、`SampleWeightAttributeName`、`TargetAttributeName`。

------
#### [ CreateAutoMLJob ]

  ```
  { 
      "AutoMLJobConfig": { 
          "Mode": "string",
          "CompletionCriteria": { 
              "MaxAutoMLJobRuntimeInSeconds": number,
              "MaxCandidates": number,
              "MaxRuntimePerTrainingJobInSeconds": number
          },
          "DataSplitConfig": { 
              "ValidationFraction": number
          },
          "SecurityConfig": { 
              "EnableInterContainerTrafficEncryption": boolean,
              "VolumeKmsKeyId": "string",
              "VpcConfig": { 
              "SecurityGroupIds": [ "string" ],
              "Subnets": [ "string" ]
              }
          },
          "CandidateGenerationConfig": { 
              "FeatureSpecificationS3Uri": "string"
          }
      },
      "GenerateCandidateDefinitionsOnly": boolean,
      "ProblemType": "string"
  }
  ```

------
#### [ CreateAutoMLJobV2 ]

  ```
  {       
      "AutoMLProblemTypeConfig": {
          "TabularJobConfig": {
              "Mode": "string",
              "ProblemType": "string",
              "GenerateCandidateDefinitionsOnly": boolean,
              "CompletionCriteria": { 
                  "MaxAutoMLJobRuntimeInSeconds": number,
                  "MaxCandidates": number,
                  "MaxRuntimePerTrainingJobInSeconds": number
              },
              "FeatureSpecificationS3Uri": "string",
              "SampleWeightAttributeName": "string",
              "TargetAttributeName": "string"
          }
      },
      "DataSplitConfig": { 
          "ValidationFraction": number
      },
      "SecurityConfig": { 
          "EnableInterContainerTrafficEncryption": boolean,
          "VolumeKmsKeyId": "string",
          "VpcConfig": { 
              "SecurityGroupIds": [ "string" ],
              "Subnets": [ "string" ]
          }
      }
  }
  ```

------
+ **次の属性は、バージョン間で位置と構造が変更されました。**

  次の JSON は、[AutoMLCandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html) 型の [AutoMLJobConfig.CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-CandidateGenerationConfig) が、V2 で [CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html) 型の [AutoMLProblemTypeConfig.TabularJobConfig.CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax) にどのように移行したかを示しています。

------
#### [ CreateAutoMLJob ]

  ```
  {
     "AutoMLJobConfig": { 
        "CandidateGenerationConfig": { 
           "AlgorithmsConfig": [ 
              { 
                 "AutoMLAlgorithms": [ "string" ]
              }
           ],
           "FeatureSpecificationS3Uri": "string"
        }
  }
  ```

------
#### [ CreateAutoMLJobV2 ]

  ```
  {
      "AutoMLProblemTypeConfig": {
          "TabularJobConfig": {
              "CandidateGenerationConfig": { 
                  "AlgorithmsConfig": [ 
                      { 
                      "AutoMLAlgorithms": [ "string" ]
                      }
                  ],
              },
          }
      },
  }
  ```

------
+ **名前と構造が変更されたリクエスト属性。**

  次の JSON は、[InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig) ([AutoMLChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) の配列) が V2 で [AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig) ([AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) の配列) にどのように変更されたかを示しています。属性 `SampleWeightAttributeName` および `TargetAttributeName` が `InputDataConfig` から `AutoMLProblemTypeConfig` に移動されることに注意してください。

------
#### [ CreateAutoMLJob ]

  ```
  {    
      "InputDataConfig": [ 
          { 
              "ChannelType": "string",
              "CompressionType": "string",
              "ContentType": "string",
              "DataSource": { 
                  "S3DataSource": { 
                      "S3DataType": "string",
                      "S3Uri": "string"
                  }
              },
              "SampleWeightAttributeName": "string",
              "TargetAttributeName": "string"
          }
      ]
  }
  ```

------
#### [ CreateAutoMLJobV2 ]

  ```
  {    
      "AutoMLJobInputDataConfig": [ 
          { 
              "ChannelType": "string",
              "CompressionType": "string",
              "ContentType": "string",
              "DataSource": { 
                  "S3DataSource": { 
                      "S3DataType": "string",
                      "S3Uri": "string"
                  }
              }
          }
      ]
  }
  ```

------

# Autopilot のデータセットと問題タイプ
<a name="autopilot-datasets-problem-types"></a>

表形式データ (つまり、各列に特定のデータ型の特徴量が含まれ、各行に観測値が含まれるデータ) の場合、Autopilot では、AutoML ジョブのモデル候補に使用できる教師あり学習問題のタイプ (二項分類や回帰など) を指定するオプション、または提供されたデータに基づいてユーザーに代わってそれを検出するオプションを提供します。Autopilot は、複数のデータ形式とデータ型もサポートしています。

**Topics**
+ [Autopilot のデータセット、データ型、フォーマット](#autopilot-datasets)
+ [オートパイロットの問題タイプ](#autopilot-problem-types)

## Autopilot のデータセット、データ型、フォーマット
<a name="autopilot-datasets"></a>

Autopilot は、CSV ファイルまたは Parquet ファイルとしてフォーマットされた表形式のデータをサポートします。各列には特定のデータ型の特徴量が入り、各行には観測値が入ります。これら 2 つのファイル形式のプロパティは大きく異なります。
+ **CSV** (カンマ区切り値) は、データを人間が読めるプレーンテキストで格納する行ベースのファイル形式で、幅広いアプリケーションでサポートされているため、データ交換に一般的に採用されています。
+ **Parquet** は、列ベースのファイル形式で、行ベースのファイル形式よりも効率的にデータを格納および処理します。このため、ビッグデータの問題にはより適したオプションです。

列として受け入れられる**データ型**には、数値、カテゴリ、テキスト、時系列 (カンマ区切りの数値の文字列で構成) が含まれます。Autopilot は、**時系列**シーケンスを扱っていることを検出すると、それを処理するために [tsfresh](https://tsfresh.readthedocs.io/en/latest/text/list_of_features.html) ライブラリが提供する専用の特徴変換器を使用します。このライブラリは、時系列を入力として受け取り、時系列の絶対最大値や自己相関の記述統計などの特徴を出力します。これらの出力された特徴量は、3 つの問題タイプのいずれかに対する入力として使用されます。

Autopilot は、最大 100 GB の大規模なデータセットでの機械学習モデルの構築をサポートします。入力データセットに対するデフォルトのリソース制限と、これらの制限を引き上げる方法の詳細については、「[Autopilot のクォータ](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-quotas.html)」を参照してください。

## オートパイロットの問題タイプ
<a name="autopilot-problem-types"></a>

表形式のデータでは、モデル候補で使用できる教師あり学習の問題タイプを次のようにさらに指定します。

### リグレッション
<a name="autopilot-automate-model-development-problem-types-regression"></a>

リグレッションでは、従属ターゲット変数の値は、それと相関する 1 つ以上の他の変数または属性に基づいて推定されます。一例として、バスルームと寝室の数、家と庭の平方フィートなどの特徴を使用した住宅価格の予測があります。回帰分析では、これらの特徴量の 1 つ以上を入力として受け取り、家の価格を予測するモデルを作成できます。

### 二項分類
<a name="autopilot-automate-model-development-problem-types-binary-classification"></a>

二項分類は、教師あり学習の一種で、属性に基づいて、事前に定義された相互に排他的な 2 つのクラスのいずれかに個人を割り当てます。属性が正しくラベル付けされたオブジェクトを提供する例を使用してモデルがトレーニングされるため、教師ありです。診断検査の結果に基づいて、個人が疾患を有するか否かの医学的診断が二値分類の一例です。

### 多クラス分類
<a name="autopilot-automate-model-development-problem-types-multiclass-classification"></a>

多クラス分類とは、教師あり学習の一種で、その属性に基づいて複数のクラスのいずれかに個人を割り当てる分類です。属性が正しくラベル付けされたオブジェクトを提供する例を使用してモデルがトレーニングされるため、教師ありです。一例として、テキストドキュメントに最も関連性の高いトピックの予測があります。ドキュメントは、たとえば、宗教、政治、金融、または他のいくつかの事前定義されたトピッククラスのいずれかについてであるとして分類することができます。

# トレーニングモードとアルゴリズムのサポート
<a name="autopilot-model-support-validation"></a>

Autopilot は、機械学習の問題に対処し、品質と目標のメトリクスをレポートし、必要に応じて交差検証を自動的に使用するためのさまざまなトレーニングモードとアルゴリズムをサポートします。

## トレーニングモード
<a name="autopilot-training-mode"></a>

SageMaker Autopilot は、データセットのサイズに基づいてトレーニング方法を自動的に選択することも、手動で選択することもできます。次のような選択肢があります。
+ **アンサンブル** – Autopilot は [AutoGluon](https://auto.gluon.ai/scoredebugweight/tutorials/tabular_prediction/index.html) ライブラリを使用して複数のベースモデルをトレーニングします。データセットに最適な組み合わせを見つけるために、アンサンブルモードではモデルとメタパラメータの設定を変えて 10 回の試行を実行します。次に、Autopilot はスタッキングアンサンブル手法を使用してこれらのモデルを組み合わせて、最適な予測モデルを作成します。Autopilot が表形式データのアンサンブルモードでサポートするアルゴリズムの一覧については、以下の「**アルゴリズムサポート**」セクションを参照してください。
+ **ハイパーパラメータ最適化 (HPO)** – Autopilot は、データセットでトレーニングジョブを実行しながら、ベイズ最適化または多重忠実度最適化を使用してハイパーパラメータを調整することにより、モデルの最適なバージョンを見つけます。HPO モードは、データセットに最も関連するアルゴリズムを選択し、モデルのチューニングに最適な範囲のハイパーパラメータを選択します。モデルを調整するために、HPO モードでは最大 100 回の試行 (デフォルト) を実行して、選択した範囲内で最適なハイパーパラメータ設定を見つけます。データセットのサイズが 100 MB 未満の場合、Autopilot はベイズ最適化を使用します。データセットが 100 MB より大きい場合、Autopilot は多重忠実度最適化を選択します。

  多重忠実度最適化では、メトリクスはトレーニングコンテナから継続的に出力されます。選択した目標メトリクスに対してパフォーマンスが低いトライアルは早期に中止されます。パフォーマンスが良好なトライアルには、より多くのリソースが割り当てられます。

  Autopilot が HPO モードでサポートするアルゴリズムの一覧については、以下の「**アルゴリズムサポート**」セクションを参照してください。
+ **自動** – Autopilot は、データセットのサイズに基づいてアンサンブルモードまたは HPO モードのいずれかを自動的に選択します。データセットが 100 MB を超える場合、オートパイロットは HPO を選択します。それ以外の場合は、アンサンブルモードを選択します。次の場合、Autopilot はデータセットのサイズを読み取れないことがあります。
  + AutoML ジョブに対して Virtual Private Cloud (VPC) モードを有効にすると、データセットを含む S3 バケットでは VPC からのアクセスのみが許可されます。
  + データセットの入力 [S3DataType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLS3DataSource.html#sagemaker-Type-AutoMLS3DataSource-S3DataType) が `ManifestFile` です。
  + 入力 [S3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLS3DataSource.html#sagemaker-Type-AutoMLS3DataSource-S3Uri) には 1,000 個を超えるアイテムが含まれています。

  Autopilot がデータセットのサイズを読み取れない場合、デフォルトで HPO モードが選択されます。

**注記**  
最適なランタイムとパフォーマンスを得るには、100 MB 未満のデータセットにはアンサンブルトレーニングモードを使用してください。

## アルゴリズムのサポート
<a name="autopilot-algorithm-support"></a>

**HPO モード**では、Autopilot は次の種類の機械学習アルゴリズムをサポートします。
+  [線形学習](https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html) – 分類または回帰の問題の解決に使用する、教師あり学習アルゴリズム。
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) – 一連のより単純でより弱いモデルから得られた推定のアンサンブルを組み合わせることで、ターゲット変数の正確な予測を試みる、教師あり学習アルゴリズム。
+ 深層学習アルゴリズム 多層パーセプトロン (MLP) とフィードフォワード人工ニューラルネットワーク。このアルゴリズムは、線形分離不可能なデータを処理できます。

**注記**  
機械学習の問題に使用するアルゴリズムを指定する必要はありません。Autopilot は、トレーニングのために適切なアルゴリズムを自動的に選択します。

**アンサンブルモード**では、Autopilot は次の種類の機械学習アルゴリズムをサポートします。
+ [LightGBM](https://docs.aws.amazon.com/sagemaker/latest/dg/lightgbm.html) – 勾配ブースティングを備えたツリーベースのアルゴリズムを使用する最適化されたフレームワーク。このアルゴリズムは、深さではなく幅が大きくなるツリーを使用しており、速度に関して高度に最適化されています。
+ [CatBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/catboost.html) – 勾配ブースティングを備えたツリーベースのアルゴリズムを使用する最適化されたフレームワーク。カテゴリ変数の処理に最適化されています。
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) – ツリーベースのアルゴリズムと幅ではなく深さが増す勾配ブーストを使用するフレームワーク。
+ [ランダムフォレスト](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html) – データのランダムなサブサンプルに対して複数のデシジョンツリーを使用し、置換を行うツリーベースのアルゴリズム。ツリーは各レベルで最適なノードに分割されます。各ツリーの判断は、過剰適合を防ぎ、予測を改善するためにまとめて平均化されます。
+ [エクストラツリー](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier) — データセット全体で複数のデシジョンツリーを使用するツリーベースのアルゴリズム。ツリーは各レベルでランダムに分割されます。各ツリーの判断は、過剰適合を防ぎ、予測を改善するために平均化されます。ツリーが追加され、ランダムフォレストアルゴリズムと比較してある程度のランダム化が可能になります。
+ [線形モデル](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model) – 線形方程式を使用して観測データ内の 2 つの変数間の関係をモデル化するフレームワーク。
+ ニューラルネットワーク torch – [Pytorch](https://pytorch.org/) を使用して実装されたニューラルネットワークモデル。
+ ニューラルネットワーク fast.ai – [fast.ai](https://www.fast.ai/) を使用して実装されたニューラルネットワークモデル。

# メトリクスと検証
<a name="autopilot-metrics-validation"></a>

このガイドでは、機械学習モデルのパフォーマンスを測定するために使用できるメトリクスと検証手法について説明します。Amazon SageMaker Autopilot は、機械学習モデル候補の予測品質を測定するメトリクスを生成します。候補に対して計算されるメトリクスは、[MetricDatum](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDatum.html) タイプの配列を使用して指定します。

## Autopilot メトリクス
<a name="autopilot-metrics"></a>

次のリストは、Autopilot 内でモデルのパフォーマンスを測定するために現在使用可能なメトリクスの名前を示しています。

**注記**  
Autopilot はサンプルの重みをサポートしています。サンプルの重みと使用可能な目標メトリクスの詳細については、「[Autopilot 加重メトリクス](#autopilot-weighted-metrics)」を参照してください。

以下は使用可能なメトリクスです。

**`Accuracy`**  
 正しく分類された項目の数の、(正しくおよび誤って) 分類された項目の総数に対する比率。二項分類と多クラス分類の両方で使用されます。精度は、予測されたクラス値が実際の値にどれだけ近いかを測定します。精度メトリクスの値は 0～1 の間で変化します。値 1 は完全な精度を示し、0 は完全な不正確さを示します。

**`AUC`**  
 曲線下面積 (AUC) メトリクスは、ロジスティック回帰など、確率を返すアルゴリズムによる二項分類の比較と評価に使用します。確率を分類にマッピングするには、しきい値と比較します。  
関連する曲線は、受信者操作特性曲線です。曲線は、予測の偽陽性率 (FPR) に対する真陽性率 (TPR)/再現率を、しきい値 (これを超えれば予測を陽性とみなす) の関数としてプロットします。しきい値を高くすると偽陽性は小さくなりますが、偽陰性が増加します。  
AUC は、この受信者操作特性曲線の下面積です。したがって、AUC は、考えられるすべての分類しきい値にわたってモデルパフォーマンスの集約評価基準を提供します。AUC スコアは 0～1 の間の値をとります。1 のスコアは完全な精度を示し、半分のスコア (0.5) は予測がランダム分類器を上回らないことを示します。

**`BalancedAccuracy`**  
`BalancedAccuracy` は、すべての予測に対する正確な予測の比率を測定するメトリクスです。この比率は、真陽性 (TP) と真陰性 (TN) を陽性 (P) と陰性 (N) の合計数で正規化した後に計算します。これは、二項分類と多クラス分類の両方で使用し、0.5\$1((TP/P)\$1(TN/N)) として定義します。値は 0～1 の範囲です。`BalancedAccuracy` は、不均衡なデータセットで陽性と陰性の数が相互に大きく異なる場合に、より優れた精度の尺度となります。

**`F1`**  
`F1` スコアは適合率と再現率の調和平均で、F1 = 2 \$1 (適合率 \$1 再現率) / (適合率 \$1 再現率) のように定義されます。これは、従来、正と負と呼ばれているクラスへの二項分類に使用されます。予測は、実際の (正しい) クラスと一致する場合は true、そうでない場合は false とみなされます。  
精度は、すべての陽性予測数に対する真陽性予測数の比率であり、データセット内の偽陽性予測数を含みます。精度は、陽性クラスを予測するときの予測品質を測定します。  
再現率 (または感度) は、すべての実際の陽性インスタンス数に対する真陽性予測数の比率です。再現率は、モデルがデータセット内の実際のクラスメンバーをどれだけ完全に予測したかを測定します。  
F1 のスコアは 0～1 の間の値です。スコアが 1 の場合は可能な限り最高のパフォーマンスを示し、0 は最悪を示します。

**`F1macro`**  
`F1macro` スコアは、多クラス分類問題に F1 スコアリングを適用します。これを行うために、精度と再現率を計算し、その調和平均をとって各クラスの F1 スコアを計算します。最後に、`F1macro` は個々のスコアを平均化し、`F1macro` スコアを取得します。`F1macro` スコアは 0～1 の間の値をとります。スコアが 1 の場合は可能な限り最高のパフォーマンスを示し、0 は最悪を示します。

**`InferenceLatency`**  
推論待ち時間は、モデル予測のリクエストを送信してから、モデルがデプロイされているリアルタイムエンドポイントからそのリクエストを受け取るまでのおおよその時間です。このメトリクスは秒単位で測定され、アンサンブルモードでのみ使用できます。

**`LogLoss`**  
対数損失は、クロスエントロピー損失とも呼ばれ、確率出力そのものではなく、出力の品質を評価するために使用するメトリクスです。二項分類と多クラス分類の両方、およびニューラルネットで使用されます。ロジスティック回帰のコスト関数でもあります。対数損失は、モデルが高い確率で誤った予測を行っていることを示す重要なメトリクスです。値の範囲は 0 から無限大です。値 0 は、データを完全に予測するモデルを表します。

**`MAE`**  
平均絶対誤差 (MAE) は、すべての値を平均化した際に予測値と実際の値がどの程度異なるかを示す尺度です。MAE は、モデルの予測誤差を理解するために回帰分析で一般的に使用します。線形回帰がある場合、MAE は予測線から実際の値までの平均距離を表します。MAE は、絶対誤差の合計を観測値の数で割った値として定義されます。値の範囲は 0 から無限大で、数字が小さいほど、モデルがよりデータに適合していることを示します。

**`MSE`**  
平均二乗誤差 (MSE) は、予測値と実際の値の差の二乗の平均です。これは回帰に使用します。MSE の値は常に正です。モデルによる実際の値の予測精度が高くなるほど、MSE 値は小さくなります。

**`Precision`**  
精度は、アルゴリズムが識別したすべての陽性のうち、真陽性 (TP) をどの程度適切に予測したかを測定します。精度は Precision = TP/(TP\$1FP) として定義し、値は 0～1 の範囲です。二項分類で使用します。偽陽性のコストが高い場合、精度は重要なメトリクスです。例えば、航空機の安全システムが誤って安全に飛行可能と判断した場合、偽陽性のコストは非常に高くなります。偽陽性 (FP) は、陽性予測であるが、データ内で実際には陰性であることを示します。

**`PrecisionMacro`**  
精度マクロは、多クラス分類問題の精度を計算します。そのために、各クラスの精度を計算し、スコアを平均化して複数のクラスの精度を取得します。`PrecisionMacro` のスコアは 0～1 の範囲です。スコアが高いほど、モデルが特定したすべての陽性のうち、真陽性 (TP) を予測した能力が高いこと (複数のクラスを平均化した結果) を示します。

**`R2`**  
R2 は、決定係数とも呼ばれ、モデルが従属変数の分散をどれだけ説明できるかを定量化するために回帰で使用します。値は 1 から -1 の範囲です。数値が大きいほど、変動性を説明した割合が高いことを示します。ゼロ (0) に近い `R2` 値は、従属変数のほとんどをモデルが説明できなかったことを示します。負の値は、適合度が悪く、モデルは定数関数と比べてパフォーマンスが下回ることを示します。線形回帰の場合、これは水平線です。

**`Recall`**  
再現率は、アルゴリズムがデータセット内のすべての真陽性 (TP) をどれだけ正しく予測するかを測定します。真陽性は、陽性予測のうち、データ内で実際にも陽性である値を示します。再現率は、Recall = TP/(TP\$1FN) として定義し、値は 0～1 の範囲です。スコアが高いほど、データの真陽性 (TP) を予測するモデルの能力が高いことを示します。二項分類で使用します。  
再現率は、すべての真陽性を見つけるために使用されるため、がんの検査で重要です。偽陰性 (FN) は、陰性予測であるが、データ内で実際には陽性であることを示します。再現率を測定するだけでは不十分な場合があります。すべての出力を真陽性として予測すると、完全な再現率スコアになってしまうためです。

**`RecallMacro`**  
`RecallMacro` は、多クラス分類問題の再現率を計算します。そのために、各クラスの再現率を計算し、スコアを平均化して複数のクラスの再現率を取得します。`RecallMacro` のスコアは 0～1 の範囲の値です。スコアが高いほど、データセット内の真陽性 (TP) を予測するモデルの能力が高いことを示します。真陽性は、陽性予測のうち、データ内で実際にも陽性である値です。再現率を測定するだけでは不十分な場合があります。すべての出力を真陽性として予測すると、完全な再現率スコアになってしまうためです。

**`RMSE`**  
二乗平均平方根誤差 (RMSE) は、予測値と実際値の二乗差の平均値を求め、その値の平方根を計算したものです。これは、モデルの予測誤差を理解するために回帰分析で使用します。これは、大きなモデル誤差や外れ値の存在を示す重要なメトリクスです。値はゼロ (0) から無限大の範囲で、数値が小さいほど、モデルがデータにより適合していることを示します。RMSE は規模に依存するため、サイズが異なるデータセットの比較には使用しないでください。

モデル候補に対して自動的に計算されるメトリクスは、対象としている問題のタイプによって決まります。

Autopilot でサポートされている使用可能なメトリクスのリストについては、[Amazon SageMaker API リファレンスのドキュメント](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)を参照してください。

## Autopilot 加重メトリクス
<a name="autopilot-weighted-metrics"></a>

**注記**  
Autopilot は、`Balanced Accuracy` と `InferenceLatency` を除くすべての[利用可能なメトリクス](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics)について、アンサンブルモードでのみサンプルの重みをサポートしています。`BalanceAccuracy` には、不均衡なデータセットに対する独自の重み付けスキームが用意されており、サンプルの重みは必要ありません。`InferenceLatency` ではサンプルの重みはサポートされません。目的 `Balanced Accuracy` と `InferenceLatency` メトリクスはどちらも、モデルのトレーニングと評価時に既存のサンプルの重みを無視します。

ユーザーはデータにサンプルの重み列を追加して、機械学習モデルのトレーニングに使用される各観測に、モデルにとって認識されている重要度に応じた重みが割り当てられるようにすることができます。これは、データセット内の観測の重要度が異なる場合や、あるクラスのサンプル数が他のクラスと比較して不釣り合いな数のデータセットに含まれている場合に特に役立ちます。各観測にその重要度または少数クラスに対する重要度に基づいて重みを割り当てると、モデルの全体的なパフォーマンスが向上したり、モデルが多数派のクラスに偏らないようにしたりできます。

Studio Classic UI で実験を作成する際にサンプルの重みを渡す方法については、「[Studio Classic UI を使用して Autopilot 実験を作成するには](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)」の*ステップ 7* を参照してください。

API を使用して Autopilot を作成するときにサンプルの重みをプログラムで渡す方法については、「[Create an Autopilot experiment programmatically](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)」の「How to add sample weights to an AutoML job」を参照してください。

## Autopilot での交差検証
<a name="autopilot-cross-validation"></a>

交差検証は、モデル選択における過剰適合やバイアスを減らすために使用されます。このメソッドは、検証データセットが同じ集団から抽出された場合、モデルが未確認の検証データセットの値をどれだけセ核に予測できるかを評価するためにも使用されます。この方法は、トレーニングインスタンスの数が限られているデータセットをトレーニングする場合に特に重要です。

Autopilot は交差検証を使用して、ハイパーパラメータ最適化 (HPO) モードとアンサンブルトレーニングモードでモデルを構築します。Autopilot の交差検証プロセスの最初のステップは、データを K 分割することです。

### K 分割
<a name="autopilot-cross-validation-kfold"></a>

K 分割は、入力トレーニングデータセットを複数のトレーニングデータセットと検証データセットに分割する方法です。データセットは、`k` 個の同じサイズのサブサンプルまたは Fold に分割されます。その後、モデルは `k-1` fold でトレーニングされ、残りの K 番目の fold (検証データセット) に対してテストされます。このプロセスは、検証用に別のデータセットを使って `k` 回繰り返されます。

次の画像は、K = 4 fold の K 分割を示しています。各 fold は行として表されます。濃い色のボックスは、トレーニングに使用されたデータの一部を表しています。残りの明るい色のボックスは検証データセットを表しています。

![\[K 分割は 4 fold のボックスで示されます。使用したデータは暗い色、検証データセットは明るい色です。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-metrics-kfold-splits.png)


Autopilot は、ハイパーパラメータ最適化 (HPO) モードとアンサンブルモードの両方に K 分割交差検証を使用します。

他の Autopilot モデルや SageMaker AI モデルと同様に、交差検証を使って構築された Autopilot モデルをデプロイできます。

### HPO モード
<a name="autopilot-cross-validation-hpo"></a>

K 分割交差検証は、交差検証に K 分割メソッドを使用します。HPO モードでは、50,000 以下のトレーニングインスタンスを持つ小さなデータセットに対して、Autopilot が自動的に k-fold 分割交差検証を実行します。交差検証の実行は、過剰適合や選択バイアスを防ぐため、小規模なデータセットでトレーニングを行う場合に特に重要です。

HPO モードは、データセットのモデル化に使用される各候補アルゴリズムに対して 5 の k 値を使用します。複数のモデルが異なる分割でトレーニングされ、モデルは別々に保存されます。トレーニングが完了すると、各モデルの検証メトリクスが平均化され、1 つの推定メトリクスが生成されます。最後に、Autopilot は、試験で得られたモデルと最適な検証メトリクスを組み合わせてアンサンブルモデルにします。Autopilot はこのアンサンブルモデルを使用して予測を行います。

Autopilot によってトレーニングされたモデルの検証メトリクスは、モデルリーダーボードに目標メトリクスとして表示されます。特に指定しない限り、Autopilot は扱う各問題タイプに対してデフォルトの検証メトリクスを使用します。Autopilot が使用するすべてのメトリクスのリストについては、「[Autopilot メトリクス](#autopilot-metrics)」を参照してください。

例えば、[ボストンの住宅のデータセット](http://lib.stat.cmu.edu/datasets/boston)には 861 個のみのサンプルが含まれています。このデータセットを使用して、交差検証なしで、住宅販売価格を予測するモデルを構築する場合、ボストンの住宅ストックを代表しないデータセットでトレーニングするというリスクが伴います。データをトレーニング用と検証用に一度だけ分割すると、トレーニング用には主に郊外からのデータしか含まれていない可能性があります。その結果、ボストンの他の地域を代表していないデータでトレーニングを行うことになります。この例では、モデルはこの偏った選択により過剰適合する可能性があります。K 分割交差検証は、トレーニングと検証に利用可能なデータを完全かつランダムに使用することで、このようなエラーのリスクを軽減することができます。

交差検証を行うと、トレーニング時間が平均 20% 長くなる可能性があります。また、データセットが複雑な場合、トレーニング時間が大幅に長くなる可能性があります。

**注記**  
HPO モードでは、各 fold のトレーニングメトリクスと検証メトリクスは、`/aws/sagemaker/TrainingJobs` CloudWatch Logs で確認できます。CloudWatch Logs の詳細については、「[Amazon SageMaker AI 用 CloudWatch Logs](logging-cloudwatch.md)」を参照してください。

### アンサンブルモード
<a name="autopilot-cross-validation-ensemble"></a>

**注記**  
Autopilot はアンサンブルモードでのサンプルの重みをサポートします。サンプルの重みをサポートする使用可能なメトリクスのリストについては、「[Autopilot メトリクス](#autopilot-metrics)」を参照してください。

アンサンブルモードでは、データセットのサイズに関係なく交差検証が実行されます。お客様は、独自の検証データセットとカスタムデータ分割比率を指定することも、Autopilot にデータセットを自動的に 80～20% の分割比率に分割させることもできます。トレーニングデータは交差検証のために `k` 分割に分割され、`k` の値は AutoGluon エンジンによって決定されます。アンサンブルは複数の機械学習モデルで構成され、各モデルはベースモデルと呼ばれます。1 つの基本モデルが (`k`-1) fold でトレーニングされ、残りの部分で out-of-fold 予測が行われます。このプロセスはすべての `k` fold で繰り返され、Out of fold (OOF) 予測が連結されて 1 つの予測セットになります。アンサンブル内のすべての基本モデルは、これと同じ OOF 予測の生成プロセスに従います。

以下の画像は、`k` = 4 fold での k 分割検証を示しています。各 fold は行として表されます。濃い色のボックスは、トレーニングに使用されたデータの一部を表しています。残りの明るい色のボックスは検証データセットを表しています。

画像の上部では、各 fold において、最初の基本モデルがトレーニングデータセットでトレーニングした後に検証データセットの予測を行います。それ以降の fold では、データセットの役割が変わります。以前はトレーニングに使用されていたデータセットが検証に使用されるようになり、これは逆にも当てはまります。`k` fold の最後には、すべての予測が連結されて、Out of fold (OOF) 予測と呼ばれる 1 つの予測セットが形成されます。このプロセスは `n` ベースモデルごとに繰り返されます。

![\[K 分割検証:4 行のボックスは 4 fold を表しており、これにより 1 行の OOF 予測が生成されます。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-metrics-kfold.PNG)


次に、各基本モデルの OOF 予測がスタッキングモデルをトレーニングするための特徴として使用されます。スタッキングモデルは各ベースモデルの重要度の重みを学習します。これらの重みを使用して OOF 予測を組み合わせて最終予測を作成します。検証データセットのパフォーマンスによって、どのベースモデルまたはスタッキングモデルが最適かが決まり、このモデルが最終モデルとして返されます。

アンサンブルモードでは、独自の検証データセットを提供することも、Autopilot に入力データセットを 80% のトレーニングと 20% の検証データセットに自動的に分割させることもできます。次に、トレーニングデータを `k` 分割に分割して交差検証を行い、fold ごとに OOF 予測と基本モデルを生成します。

これらの OOF 予測はスタッキングモデルをトレーニングするための特徴として使用され、スタッキングモデルは各ベースモデルの重みを同時に学習します。これらの重みを使用して OOF 予測を組み合わせ、最終予測を作成します。各 fold の検証データセットは、すべてのベースモデルとスタッキングモデルのハイパーパラメータ調整に使用されます。検証データセットのパフォーマンスによって、どのベースモデルまたはスタッキングモデルが最適かが決まり、このモデルが最終モデルとして返されます。

# Autopilot モデルのデプロイと予測
<a name="autopilot-deploy-models"></a>

この Amazon SageMaker Autopilot ガイドには、モデルのデプロイ、リアルタイム推論の設定、バッチジョブによる推論の実行の手順が記載されています。

Autopilot モデルをトレーニングしたら、以下の 2 つのいずれかの方法でそれらのモデルをデプロイして、予測を取得することができます。

1. [リアルタイム推論用のモデルをデプロイする](autopilot-deploy-models-realtime.md) を使用して、エンドポイントを設定し、インタラクティブに予測を取得します。リアルタイム推論は、リアルタイム、インタラクティブ、低レイテンシーの要件がある推論ワークロードに最適です。

1. [バッチ推論ジョブを実行する](autopilot-deploy-models-batch.md) を使用して、データセット全体の観測値のバッチを並列的に予測します。バッチ推論は、データセットが大きい場合や、モデル予測のリクエストにすぐに応答する必要がない場合に適しています。

**注記**  
不要な料金が発生しないようにするには: モデルのデプロイで作成されたエンドポイントとリソースが不要になったら、それらを削除できます。リージョン別のインスタンスの料金については、「[Amazon SageMaker の料金](https://aws.amazon.com/sagemaker/pricing/)」を参照してください。

# リアルタイム推論用のモデルをデプロイする
<a name="autopilot-deploy-models-realtime"></a>

リアルタイム推論は、リアルタイム、インタラクティブ、低レイテンシーの要件がある推論ワークロードに最適です。このセクションでは、リアルタイム推論を使用してモデルからインタラクティブに予測を取得する方法を説明します。

Autopilot 実験で最良の検証メトリクスを出したモデルをデプロイするには、オプションがいくつかあります。例えば、SageMaker Studio Classic で Autopilot を使用する場合、モデルを自動または手動でデプロイできます。SageMaker API を使用して Autopilot モデルを手動でデプロイすることもできます。

次のタブは、モデルをデプロイするための 3 つのオプションを示しています。これらの手順は、Autopilot で既にモデルを作成していることを前提としています。モデルがない場合は、「[AutoML API を使用して表形式データのリグレッションジョブまたは分類ジョブを作成する](autopilot-automate-model-development-create-experiment.md)」を参照してください。各オプションの例を見るには、各タブを開いてください。

## Autopilot ユーザーインターフェイス (UI) を使用してデプロイする
<a name="autopilot-deploy-models-realtime-ui"></a>

Autopilot UI には、モデルのデプロイをナビゲートするのに役立つドロップダウンメニュー、トグル、ツールチップなどが含まれています。自動または手動の手順のいずれかを使用してデプロイできます。
+ **自動デプロイ**: Autopilot の実験から得た最適なモデルをエンドポイントに自動的にデプロイします

  1. SageMaker Studio Classic で[実験を作成](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)します。

  1. **[自動デプロイ]** の値を **[はい]** に切り替えます。
**注記**  
**リージョン内のエンドポイントインスタンスに対するデフォルトのリソースクォータまたはカスタマークォータのいずれかが過度に制限されていると、自動デプロイは失敗します。**ハイパーパラメータ最適化 (HPO) モードでは、少なくとも 2 つの ml.m5.2xlarge インスタンスが必要です。アンサンブルモードでは、少なくとも 1 つの ml.m5.12xlarge インスタンスが必要です。クォータに関連する障害が発生した場合は、SageMaker AI エンドポイントインスタンスの[サービス制限の引き上げをリクエスト](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)できます。
+ **手動デプロイ**: Autopilot テストから得た最適なモデルをエンドポイントに手動でデプロイします

  1. SageMaker Studio Classic で[実験を作成](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)します。

  1. **[自動デプロイ]** の値を **[いいえ]** に切り替えます。

  1. **[モデル名]** には、デプロイするモデルを選択します。

  1. リーダーボードの右側にあるオレンジ色の **[デプロイと詳細設定]** ボタンを選択します。これにより、新しいタブが開きます。

  1. エンドポイント名、インスタンスタイプ、その他のオプション情報を設定します。

  1.  オレンジ色の **[デプロイモデル]** を選択してエンドポイントにデプロイします。

  1. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) の「エンドポイント」セクションに移動して、エンドポイント作成プロセスの進行状況を確認します。このセクションはナビゲーションパネルの **[推論]** ドロップダウンメニューにあります。

  1. 以下に示すように、エンドポイントのステータスが **[作成中]** から **[InService]** に変わったら、Studio Classic に戻り、エンドポイントを呼び出します。  
![\[SageMaker AI コンソール: エンドポイントを作成したり、エンドポイントのステータスを確認したりするためのエンドポイントページ。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-check-progress.PNG)

## SageMaker API を使用してデプロイする
<a name="autopilot-deploy-models-api"></a>

**API コール**を使用してモデルをデプロイすることで、リアルタイムの推論を取得することもできます。このセクションでは、 AWS Command Line Interface (AWS CLI) コードスニペットを使用したこのプロセスの 5 つのステップを示します。

 AWS CLI コマンドと AWS SDK for Python (boto3) の両方の完全なコード例については、以下の手順に従ってタブを直接開きます。

1. **候補定義を取得する**

   [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) から候補コンテナ定義を取得します。これらの候補定義は、SageMaker AI モデルを作成するために使用されます。

   以下の例では [DescribeAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) API を使用して、最適なモデル候補の候補定義を取得しています。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **候補を一覧表示する**

   次の例では、[ListCandidatesForAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html) API を使用してすべての候補を一覧表示しています。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **SageMaker AI モデルを作成する**

   前のステップのコンテナ定義を使用して、[CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API を使用して SageMaker AI モデルを作成します。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker create-model --model-name '<your-custom-model-name>' \
                       --containers ['<container-definition1>, <container-definition2>, <container-definition3>]' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **エンドポイント設定を作成する** 

   次の例では、[CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API を使用してエンドポイント設定を作成します。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name '<your-custom-endpoint-config-name>' \
                       --production-variants '<list-of-production-variants>' \
                       --region '<region>'
   ```

1. **エンドポイントの作成** 

   次の AWS CLI 例では、[CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API を使用してエンドポイントを作成します。

   ```
   aws sagemaker create-endpoint --endpoint-name '<your-custom-endpoint-name>' \
                       --endpoint-config-name '<endpoint-config-name-you-just-created>' \
                       --region '<region>'
   ```

   [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API を使用して、エンドポイントのデプロイの進行状況を確認します。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker describe-endpoint —endpoint-name '<endpoint-name>' —region <region>
   ```

   `EndpointStatus` が `InService` に変更されると、エンドポイントはリアルタイム推論に使用できるようになります。

1. **エンドポイントの呼び出し** 

   以下のコマンド構造は、エンドポイントを呼び出してリアルタイム推論を行います。

   ```
   aws sagemaker invoke-endpoint --endpoint-name '<endpoint-name>' \ 
                     --region '<region>' --body '<your-data>' [--content-type] '<content-type>' <outfile>
   ```

次のタブには、 AWS SDK for Python (boto3) または AWS CLIを使用してモデルをデプロイするための完全なコード例が含まれています。

------
#### [ AWS SDK for Python (boto3) ]

1. 次のコード例を使用して**候補定義を入手**します。

   ```
   import sagemaker 
   import boto3
   
   session = sagemaker.session.Session()
   
   sagemaker_client = boto3.client('sagemaker', region_name='us-west-2')
   job_name = 'test-auto-ml-job'
   
   describe_response = sm_client.describe_auto_ml_job(AutoMLJobName=job_name)
   # extract the best candidate definition from DescribeAutoMLJob response
   best_candidate = describe_response['BestCandidate']
   # extract the InferenceContainers definition from the caandidate definition
   inference_containers = best_candidate['InferenceContainers']
   ```

1. 次のコード例を使用して**モデルを作成**します。

   ```
   # Create Model
   model_name = 'test-model' 
   sagemaker_role = 'arn:aws:iam:444455556666:role/sagemaker-execution-role'
   create_model_response = sagemaker_client.create_model(
      ModelName = model_name,
      ExecutionRoleArn = sagemaker_role,
      Containers = inference_containers 
   )
   ```

1. 次のコード例を使用して**エンドポイント設定を作成**します。

   ```
   endpoint_config_name = 'test-endpoint-config'
                                                           
   instance_type = 'ml.m5.2xlarge' 
   # for all supported instance types, see 
   # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html#sagemaker-Type-ProductionVariant-InstanceType    # Create endpoint config
   
   endpoint_config_response = sagemaker_client.create_endpoint_config(
      EndpointConfigName=endpoint_config_name, 
      ProductionVariants=[
          {
              "VariantName": "variant1",
              "ModelName": model_name, 
              "InstanceType": instance_type,
              "InitialInstanceCount": 1
          }
      ]
   )
   
   print(f"Created EndpointConfig: {endpoint_config_response['EndpointConfigArn']}")
   ```

1. **エンドポイントを作成**し、次のコード例を使用してモデルをデプロイします。

   ```
   # create endpoint and deploy the model
   endpoint_name = 'test-endpoint'
   create_endpoint_response = sagemaker_client.create_endpoint(
                                               EndpointName=endpoint_name, 
                                               EndpointConfigName=endpoint_config_name)
   print(create_endpoint_response)
   ```

   次のコード例を使用して、**エンドポイントの作成状況を確認**します。

   ```
   # describe endpoint creation status
   status = sagemaker_client.describe_endpoint(EndpointName=endpoint_name)["EndpointStatus"]
   ```

1. 次のコマンド構造を使用して、**エンドポイントを呼び出し**てリアルタイム推論を行います。

   ```
   # once endpoint status is InService, you can invoke the endpoint for inferencing
   if status == "InService":
     sm_runtime = boto3.Session().client('sagemaker-runtime')
     inference_result = sm_runtime.invoke_endpoint(EndpointName='test-endpoint', ContentType='text/csv', Body='1,2,3,4,class')
   ```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. 次のコード例を使用して**候補定義を取得**します。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. 次のコード例を使用して、**モデルを作成**します。

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", amzn-s3-demo-bucket1
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", aws-region
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \ 
   --region 'us-west-2'
   ```

   詳細については、「[creating a model](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-model.html)」を参照してください。

   `create model` コマンドでは、次の形式のレスポンスが返されます。

   ```
   {
       "ModelArn": "arn:aws:sagemaker:us-west-2:1234567890:model/test-sagemaker-model"
   }
   ```

1. 次のコード例を使用して、**エンドポイント設定を作成**します。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name 'test-endpoint-config' \
   --production-variants '[{"VariantName": "variant1", 
                           "ModelName": "test-sagemaker-model",
                           "InitialInstanceCount": 1,
                           "InstanceType": "ml.m5.2xlarge"
                          }]' \
   --region us-west-2
   ```

   `create endpoint` 設定コマンドでは、次の形式のレスポンスが返されます。

   ```
   {
       "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:1234567890:endpoint-config/test-endpoint-config"
   }
   ```

1. 次のコード例を使用して、**エンドポイントを作成**します。

   ```
   aws sagemaker create-endpoint --endpoint-name 'test-endpoint' \    
   --endpoint-config-name 'test-endpoint-config' \                 
   --region us-west-2
   ```

   `create endpoint` コマンドでは、次の形式のレスポンスが返されます。

   ```
   {
       "EndpointArn": "arn:aws:sagemaker:us-west-2:1234567890:endpoint/test-endpoint"
   }
   ```

   次の [describe-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-endpoint.html) CLI コード例を使用して、エンドポイントのデプロイの進行状況を確認します。

   ```
   aws sagemaker describe-endpoint --endpoint-name 'test-endpoint' --region us-west-2
   ```

   前回の進捗確認では、次の形式でレスポンスが返されます。

   ```
   {
       "EndpointName": "test-endpoint",
       "EndpointArn": "arn:aws:sagemaker:us-west-2:1234567890:endpoint/test-endpoint",
       "EndpointConfigName": "test-endpoint-config",
       "EndpointStatus": "Creating",
       "CreationTime": 1660251167.595,
       "LastModifiedTime": 1660251167.595
   }
   ```

   `EndpointStatus` が `InService` に変わると、エンドポイントはリアルタイム推論に使用できるようになります。

1. 次のコマンド構造を使用して、**エンドポイントを呼び出し**てリアルタイム推論を行います。

   ```
   aws sagemaker-runtime invoke-endpoint --endpoint-name 'test-endpoint' \
   --region 'us-west-2' \
   --body '1,51,3.5,1.4,0.2' \
   --content-type 'text/csv' \
   '/tmp/inference_output'
   ```

   その他のオプションについては、「[invoking an endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker-runtime/invoke-endpoint.html)」を参照してください。

------

## さまざまなアカウントからモデルをデプロイできます。
<a name="autopilot-deploy-models-realtime-across-accounts"></a>

Autopilot モデルは、モデルを生成した元のアカウントとは別のアカウントからデプロイできます。クロスアカウントモデルのデプロイを実装するために、このセクションでは以下の方法を説明します。   デプロイ元のアカウント (生成アカウント) にロールを引き受けるアクセス許可を付与します。   デプロイするアカウントから `DescribeAutoMLJob` を呼び出して、モデル情報を取得します。   生成アカウントからモデルアーティファクトへのアクセス権を付与します。   

1. **デプロイするアカウントにアクセス許可を付与する** 

   生成アカウントでロールを引き受けるには、デプロイするアカウントにアクセス許可を付与する必要があります。これにより、デプロイするアカウントは、生成アカウントの Autopilot ジョブを記述できるようになります。

   次の例では、信頼できる `sagemaker-role` エンティティの生成アカウントを使用しています。この例は、ID 111122223333 のデプロイするアカウントに、生成アカウントのロールを引き継ぐアクセス許可を付与する方法を示しています。

   ```
   "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ],
                   "AWS": [ "111122223333"]
               },
               "Action": "sts:AssumeRole"
           }
   ```

   これで、ID 111122223333 の新しいアカウントが、生成アカウントのロールを引き継ぐことができます。

   次に、デプロイするアカウントから `DescribeAutoMLJob` API を呼び出して、生成アカウントによって作成されたジョブの説明を取得します。

   次のコード例では、デプロイするアカウントからモデルを説明しています。

   ```
   import sagemaker 
   import boto3
   session = sagemaker.session.Session()
   
   sts_client = boto3.client('sts')
   sts_client.assume_role
   
   role = 'arn:aws:iam::111122223333:role/sagemaker-role'
   role_session_name = "role-session-name"
   _assumed_role = sts_client.assume_role(RoleArn=role, RoleSessionName=role_session_name)
   
   credentials = _assumed_role["Credentials"]
   access_key = credentials["AccessKeyId"]
   secret_key = credentials["SecretAccessKey"]
   session_token = credentials["SessionToken"]
   
   session = boto3.session.Session()
           
   sm_client = session.client('sagemaker', region_name='us-west-2', 
                              aws_access_key_id=access_key,
                               aws_secret_access_key=secret_key,
                               aws_session_token=session_token)
   
   # now you can call describe automl job created in account A 
   
   job_name = "test-job"
   response= sm_client.describe_auto_ml_job(AutoMLJobName=job_name)
   ```

1. 生成アカウントのモデルアーティファクトに**デプロイするアカウントへのアクセス許可を付与**します。

   デプロイするアカウントには、デプロイするために生成アカウントのモデルアーティファクトへのアクセスのみが必要です。これらは、モデル生成時に元の `CreateAutoMLJob` API 呼び出しで指定された [S3OutputPath](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html#sagemaker-Type-AutoMLOutputDataConfig-S3OutputPath) にあります。

   デプロイするアカウントにモデルアーティファクトへのアクセス許可を付与するには、以下のいずれかのオプションを選択します。

   1. 生成アカウントからデプロイするアカウントに `ModelDataUrl` への[アクセスを許可](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/)します。

      次に、デプロイするアカウントにロールを引き受けるアクセス許可を付与する必要があります。[リアルタイム推論の手順](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-deploy-models.html#autopilot-deploy-models-realtime)に従ってデプロイします。

   1. 生成アカウントの元の [S3OutputPath](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html#sagemaker-Type-AutoMLOutputDataConfig-S3OutputPath) から生成アカウントに[モデルアーティファクトをコピー](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/)します。

      モデルアーティファクトへのアクセスを許可するには、`best_candidate` モデルを定義し、モデルコンテナを新しいアカウントに再割り当てする必要があります。

      次の例は、`best_candidate` モデルを定義して `ModelDataUrl` を再割り当てする方法を示しています。

      ```
      best_candidate = automl.describe_auto_ml_job()['BestCandidate']
      
      # reassigning ModelDataUrl for best_candidate containers below
      new_model_locations = ['new-container-1-ModelDataUrl', 'new-container-2-ModelDataUrl', 'new-container-3-ModelDataUrl']
      new_model_locations_index = 0
      for container in best_candidate['InferenceContainers']:
          container['ModelDataUrl'] = new_model_locations[new_model_locations_index++]
      ```

      このコンテナの割り当てが終わったら、[SageMaker API を使用してデプロイする](#autopilot-deploy-models-api) の手順に従ってデプロイします。

リアルタイム推論でペイロードを構築するには、ノートブックの例を参照して[テストペイロードを定義](https://aws.amazon.com/getting-started/hands-on/machine-learning-tutorial-automatically-create-models)してください。CSV ファイルからペイロードを作成してエンドポイントを呼び出すには、「[機械学習モデルを自動的に作成する](https://aws.amazon.com/getting-started/hands-on/create-machine-learning-model-automatically-sagemaker-autopilot/#autopilot-cr-room)」の「**モデルを使用して予測を行う**」セクションを参照してください。

# バッチ推論ジョブを実行する
<a name="autopilot-deploy-models-batch"></a>

バッチ推論はオフライン推論とも呼ばれ、複数の観測値に基づいてモデル予測を生成します。バッチ推論は、データセットが大きい場合や、モデル予測のリクエストにすぐに応答する必要がない場合に適しています。これとは対照的に、オンライン推論 ([リアルタイム推論](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-deploy-models.html#autopilot-deploy-models-realtime)) はリアルタイムで予測を生成します。[SageMaker Python SDK、Autopilot ユーザーインターフェイス (UI](https://sagemaker.readthedocs.io/en/stable/))、[AWS SDK for Python (boto3)、または () を使用して](https://aws.amazon.com/sdk-for-python/)、Autopilot モデルからバッチ推論を行うことができます[AWS CLI](https://docs.aws.amazon.com/cli/)。 AWS Command Line Interface 

以下のタブでは、モデルをデプロイするための 3 つのオプションを示しています。「API を使用する」、「Autopilot UI」、「API を使用して異なるアカウントからデプロイする」です。これらの手順は、Autopilot で既にモデルを作成していることを前提としています。モデルがない場合は、「[AutoML API を使用して表形式データのリグレッションジョブまたは分類ジョブを作成する](autopilot-automate-model-development-create-experiment.md)」を参照してください。各オプションの例を見るには、各タブを開いてください。

## Autopilot UI を使用してモデルをデプロイする
<a name="autopilot-deploy-models-batch-ui"></a>

Autopilot UI には、モデルのデプロイをナビゲートするのに役立つドロップダウンメニュー、トグル、ツールチップなどが含まれています。

以下の手順は、Autopilot 実験からバッチ予測用のモデルをデプロイする方法を示しています。

1. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) にサインインし、ナビゲーションペインから **[Studio]** を選択します。

1. 左側のナビゲーションペインで、**[Studio]** を選択します。

1. **[使用を開始]** で、Studio アプリケーションを起動するドメインを選択します。ユーザープロファイルが 1 つのドメインにのみ属している場合、ドメインの選択オプションは表示されません。

1. Studio Classic アプリケーションを起動するユーザープロファイルを選択します。ドメインにユーザープロファイルがない場合は、**[ユーザープロファイルを作成]** を選択します。詳細については、「[Add user profiles](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-user-profile-add.html)」を参照してください。

1. **[Studio を起動]** を選択します。ユーザープロファイルが共有スペースに属している場合は、**[オープンスペース]** を選択します。

1. SageMaker Studio Classic コンソールが開いたら、**[SageMaker Studio を起動]** ボタンを選択します。

1. 左のナビゲーションペインで **[AutoML]** を選択します。

1. **[名前]** で、デプロイするモデルに対応する Autopilot 実験を選択します。これにより、新しい **[Autopilot ジョブ]** タブが開きます。

1. **[モデル名]** セクションで、デプロイするモデルを選択します。

1. [**Deploy model (モデルのデプロイ)**] を選択します。これにより、新しいタブが開きます。

1. ページ上部の **[バッチ予測を行う]** を選択します。

1. **[バッチ変換ジョブの設定]** に、**[インスタンスタイプ]**、**[インスタンス数]**、その他のオプション情報を入力します。

1. **[入力データ設定]** セクションで、ドロップダウンメニューを開きます。

   1. **[S3 データタイプ]** には、**[マニフェストファイル]** または **[S3 プレフィックス]** を選択します。

   1. **[分割タイプ]** には、**[ライン]**、**[RecordIO]**、**[TFRecord]**、または **[なし]** を選択します。

   1. **[圧縮]** には、**[Gzip]** または **[なし]** を選択します。

1. **[S3 の場所]** には、入力データの Amazon S3 バケットの場所とそれ以外のオプション情報を入力します。

1. **[出力データ設定]** で、出力データの S3 バケットを入力し、ジョブの[出力をアセンブルする](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#sagemaker-Type-TransformOutput-AssembleWith)方法を選択します。

   1. **[追加設定 (オプション)]** では、MIME タイプと **[S3 暗号化キー]** を入力できます。

1. **[入力/出力フィルタリングとデータ結合 (オプション)]** では、JSONpath 式を入力して入力データをフィルタリングし、入力ソースデータを出力データと結合し、JSONpath 式を入力して出力データをフィルタリングします。

   1. 各タイプのフィルターの例については、「[DataProcessing API](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html#sagemaker-Type-DataProcessing-InputFilter)」を参照してください。

1. 入力データセットのバッチ予測を実行するには、**[バッチ変換ジョブの作成]** を選択します。新しい **[バッチ変換ジョブ]** タブが表示されます。

1. **[バッチ変換ジョブ]** タブの、**[ステータス]** セクションでジョブの名前を見つけます。次に、ジョブの進行状況を確認します。

## SageMaker API を使用してデプロイする
<a name="autopilot-deploy-models-batch-steps"></a>

SageMaker API をバッチ推論に使用するには、次の 3 つのステップがあります。

1. **候補定義を入手する** 

   SageMaker AI モデルの作成には、[InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) からの候補定義が使用されます。

   次の例は、[DescribeAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) API を使用して最適なモデル候補の候補定義を取得する方法を示しています。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

   [ListCandidatesForAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html) API を使用して、すべての候補を一覧表示します。次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **SageMaker AI モデルを作成する**

   [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API を使用して SageMaker AI モデルを作成するには、前のステップのコンテナ定義を使用します。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker create-model --model-name '<your-custom-model-name>' \
                       --containers ['<container-definition1>, <container-definition2>, <container-definition3>]' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **SageMaker AI 変換ジョブを作成する** 

   次の例では、[CreateTransformJob](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-transform-job.html) API を使用して SageMaker AI 変換ジョブを作成します。例として、次の AWS CLI コマンドを参照してください。

   ```
   aws sagemaker create-transform-job --transform-job-name '<your-custom-transform-job-name>' --model-name '<your-custom-model-name-from-last-step>'\
   --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix", 
                   "S3Uri": "<your-input-data>" 
               }
           },
           "ContentType": "text/csv",
           "SplitType": "Line"
       }'\
   --transform-output '{
           "S3OutputPath": "<your-output-path>",
           "AssembleWith": "Line" 
       }'\
   --transform-resources '{
           "InstanceType": "<instance-type>", 
           "InstanceCount": 1
       }' --region '<region>'
   ```

[DescribeTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html) API を使用して変換ジョブの進行状況を確認します。例として、次の AWS CLI コマンドを参照してください。

```
aws sagemaker describe-transform-job --transform-job-name '<your-custom-transform-job-name>' --region <region>
```

ジョブが終了すると、予測された結果が `<your-output-path>` で利用可能になります。

出力ファイル名は次の形式です。`<input_data_file_name>.out`。例えば、入力ファイルが `text_x.csv` の場合、出力名は `text_x.csv.out` になります。

次のタブは、SageMaker Python SDK、 AWS SDK for Python (boto3)、および のコード例を示しています AWS CLI。

------
#### [ SageMaker Python SDK ]

次の例では、**[SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/overview.html)** を使用してバッチで予測を実行します。

```
from sagemaker import AutoML

sagemaker_session= sagemaker.session.Session()

job_name = 'test-auto-ml-job' # your autopilot job name
automl = AutoML.attach(auto_ml_job_name=job_name)
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

# call DescribeAutoMLJob API to get the best candidate definition
best_candidate = automl.describe_auto_ml_job()['BestCandidate']
best_candidate_name = best_candidate['CandidateName']

# create model
model = automl.create_model(name=best_candidate_name, 
               candidate=best_candidate)

# create transformer
transformer = model.transformer(instance_count=1, 
    instance_type='ml.m5.2xlarge',
    assemble_with='Line',
    output_path=output_path)

# do batch transform
transformer.transform(data=input_data,
                      split_type='Line',
                       content_type='text/csv',
                       wait=True)
```

------
#### [ AWS SDK for Python (boto3) ]

 次の例では、**AWS SDK for Python (boto3)** を使用してバッチで予測を実行します。

```
import sagemaker 
import boto3

session = sagemaker.session.Session()

sm_client = boto3.client('sagemaker', region_name='us-west-2')
role = 'arn:aws:iam::1234567890:role/sagemaker-execution-role'
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName=job_name)['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

# create model
reponse = sm_client.create_model(
    ModelName = best_candidate_name,
    ExecutionRoleArn = role,
    Containers = best_candidate_containers 
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName=f'{best_candidate_name}-transform-job',
    ModelName=model_name,
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/csv",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m5.2xlarge',
        'InstanceCount': 1,
    },
)
```

バッチ推論ジョブは、以下の形式でレスポンスを返します。

```
{'TransformJobArn': 'arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-transform-job',
 'ResponseMetadata': {'RequestId': '659f97fc-28c4-440b-b957-a49733f7c2f2',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '659f97fc-28c4-440b-b957-a49733f7c2f2',
   'content-type': 'application/x-amz-json-1.1',
   'content-length': '96',
   'date': 'Thu, 11 Aug 2022 22:23:49 GMT'},
  'RetryAttempts': 0}}
```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. 次のコード例を使用して**候補定義を取得**します。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. 次のコード例を使用して**モデルを作成**します。

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/tuning/flicdf10v2-dpp0-xgb/test-job1E9-244-7490a1c0/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", 
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code" 
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \
   --region 'us-west-2'
   ```

1. 以下のコード例を使用して**変換ジョブを作成**します。

   ```
   aws sagemaker create-transform-job --transform-job-name 'test-tranform-job'\
    --model-name 'test-sagemaker-model'\
   --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "SplitType": "Line"
       }'\
   --transform-output '{
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line"
       }'\
   --transform-resources '{
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       }'\
   --region 'us-west-2'
   ```

1. 次のコード例を使用して、**変換ジョブの進行状況を確認**します。

   ```
   aws sagemaker describe-transform-job --transform-job-name  'test-tranform-job' --region us-west-2
   ```

   以下は、変換ジョブからのレスポンスです。

   ```
   {
       "TransformJobName": "test-tranform-job",
       "TransformJobArn": "arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-tranform-job",
       "TransformJobStatus": "InProgress",
       "ModelName": "test-model",
       "TransformInput": {
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "CompressionType": "None",
           "SplitType": "Line"
       },
       "TransformOutput": {
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line",
           "KmsKeyId": ""
       },
       "TransformResources": {
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       },
       "CreationTime": 1662495635.679,
       "TransformStartTime": 1662495847.496,
       "DataProcessing": {
           "InputFilter": "$",
           "OutputFilter": "$",
           "JoinSource": "None"
       }
   }
   ```

   `TransformJobStatus` が `Completed` に変わったら、`S3OutputPath` で推論結果を確認できます。

------

## 異なるアカウントからモデルをデプロイする
<a name="autopilot-deploy-models-batch-across-accounts"></a>

モデルを生成したアカウントとは別のアカウントでバッチ推論ジョブを作成するには、「[さまざまなアカウントからモデルをデプロイできます。](autopilot-deploy-models-realtime.md#autopilot-deploy-models-realtime-across-accounts)」の手順に従います。その後、「[SageMaker API を使用してデプロイする](#autopilot-deploy-models-batch-steps)」に従ってモデルを作成し、ジョブを変換できます。

# モデルの詳細を表示する
<a name="autopilot-models-details"></a>

Autopilot は、取得できる候補モデルに関する詳細を生成します。これらの詳細には以下が含まれます。
+ 各特徴の重要度を示す、集計された SHAP 値のプロット。これはモデルの予測を説明するのに役立ちます。
+ 目標メトリクスなど、さまざまなトレーニングと検証のメトリクスの集約統計。
+ モデルのトレーニングとチューニングに使用されるハイパーパラメータのリスト。

Autopilot ジョブの実行後にモデルの詳細を表示するには、以下の手順に従います。

1. 左側のナビゲーションペインから**ホーム**アイコン (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/icons/house.png)) を選択し、**[Amazon SageMaker Studio Classic]** の最上位のナビゲーションメニューを表示します。

1. メインワークエリアから **[AutoML]** カードを選択します。新しい **[Autopilot]** タブが開きます。

1. **[名前]** セクションで、調べたい詳細を含む Autopilot ジョブを選択します。新しい **[Autopilot ジョブ]** タブが開きます。

1. **[Autopilot ジョブ]** パネルには、**[モデル名]** の下に各モデルの **[目標]** メトリクスを含むメトリクス値が表示されます。**[最適なモデル]** はリストの一番上にある **[モデル名]** の下に表示され、**[モデル]** タブでも強調表示されます。

   1. モデルの詳細を確認するには、確認したいモデルを選択し、**[モデル詳細の表示]** を選択します。新しい **[モデルの詳細]** タブが開きます。

1. **[モデルの詳細]** タブは 4 つのサブセクションに分かれています。

   1. **[説明可能性]** タブの上部には、各特徴の重要性を示す集計された SHAP 値のプロットが表示されます。その後に、このモデルのメトリクスとハイパーパラメータの値が表示されます。

   1. **[パフォーマンス]** タブには、メトリクス、統計、混同行列が含まれています。

   1. **[アーティファクト]** タブには、モデルの入力、出力、中間結果に関する情報が含まれています。

   1. **[ネットワーク]** タブには、ネットワークの分離と暗号化に関する選択肢がまとめられています。
**注記**  
**[パフォーマンス]** タブの特徴の重要性と情報は、**[最適なモデル]** についてのみ生成されます。

   SHAP 値が特徴の重要度に基づく予測の説明にどう役立つかの詳細については、「[モデルの説明可能性の概要](https://pages.awscloud.com/rs/112-TZM-766/images/Amazon.AI.Fairness.and.Explainability.Whitepaper.pdf)」ホワイトペーパーを参照してください。追加情報は、SageMaker AI デベロッパーガイド」の[モデルの説明可能性](clarify-model-explainability.md)トピックでも入手できます。

# Autopilot モデルのパフォーマンスレポートを表示する
<a name="autopilot-model-insights"></a>

Amazon SageMaker AI モデル品質レポート (パフォーマンスレポートとも呼ばれる) は、AutoML ジョブによって生成された最適なモデル候補に関するインサイトと品質情報を提供します。これには、ジョブの詳細、モデルの問題タイプ、目的関数、および問題タイプに関連するその他の情報が含まれます。このガイドでは、Amazon SageMaker Autopilot のパフォーマンスメトリクスをグラフィカルに表示する方法、または JSON ファイル内の raw データとしてメトリクスを表示する方法を説明します。

例えば、分類問題の場合、モデル品質レポートには以下が含まれます。
+ 混同行列
+ 受信者操作特性曲線の下面積 (AUC)
+ 偽陽性と偽陰性を理解するための情報
+ 真陽性と偽陽性のトレードオフ
+ 精度と再現率のトレードオフ

Autopilot は、候補となるすべてのモデルのパフォーマンスメトリクスも提供します。これらのメトリクスはすべてのトレーニングデータを使用して計算され、モデルのパフォーマンスの推定に使用されます。メイン作業領域には、デフォルトでこれらのメトリクスが含まれます。メトリクスの種類は、対処する問題の種類によって決まります。

Autopilot でサポートされている使用可能なメトリクスのリストについては、[Amazon SageMaker API リファレンスのドキュメント](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)を参照してください。

関連するメトリクスを使用してモデル候補を並べ替えると、ビジネスニーズに対処するモデルを選択してデプロイしやすくなります。これらのメトリクスの定義については、「[Autopilot candidate metrics](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics)」トピックを参照してください。

Autopilot ジョブのパフォーマンスレポートを表示するには、以下の手順に従います。

1. 左側のナビゲーションペインから**ホーム**アイコン (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/icons/house.png)) を選択し、**[Amazon SageMaker Studio Classic]** の最上位のナビゲーションメニューを表示します。

1. メインワークエリアから **[AutoML]** カードを選択します。新しい **[Autopilot]** タブが開きます。

1. **[名前]** セクションで、調べたい詳細を含む Autopilot ジョブを選択します。新しい **[Autopilot ジョブ]** タブが開きます。

1. **[Autopilot ジョブ]** パネルには、**[モデル名]** の下に各モデルの **[目標]** メトリクスを含むメトリクス値が表示されます。**[最適なモデル]** はリストの一番上にある **[モデル名]** の下に表示され、**[モデル]** タブで強調表示されます。

   1. モデルの詳細を確認するには、確認したいモデルを選択し、**[モデル詳細の表示]** を選択します。新しい **[モデルの詳細]** タブが開きます。

1. **[説明可能性]** タブと **[アーティファクト]** タブの間の **[パフォーマンス]** タブを選択します。

   1. タブの右上にある **[パフォーマンスレポートのダウンロード]** ボタンの下向き矢印を選択します。

   1. 下向き矢印には、Autopilot のパフォーマンスメトリクスを表示するためのオプションが 2 つあります。

      1. パフォーマンスレポートの PDF をダウンロードして、メトリクスをグラフィカルに表示できます。

      1. メトリクスを raw データとして表示し、JSON ファイルとしてダウンロードできます。

SageMaker Studio Classic で AutoML ジョブを作成して実行する方法については、「[AutoML API を使用して表形式データのリグレッションジョブまたは分類ジョブを作成する](autopilot-automate-model-development-create-experiment.md)」を参照してください。

パフォーマンスレポートには 2 つのセクションがあります。1 つ目のセクションには、モデルを作成した Autopilot ジョブに関する詳細が含まれています。2 つ目のセクションには、モデル品質レポートが含まれています。

## Autopilot ジョブの詳細
<a name="autopilot-model-insights-details-and-metrics-table"></a>

レポートの最初のセクションには、モデルを作成した Autopilot ジョブに関する一般的な情報が記載されています。ジョブの詳細には、以下の情報が含まれます。
+ Autopilot 候補名
+ Autopilot ジョブ名
+ 問題タイプ
+ 目標メトリクス
+ 最適化の方向

## モデル品質レポート
<a name="autopilot-model-quality-report"></a>

モデル品質情報は、Autopilot モデルインサイトによって生成されます。生成されるレポートの内容は、対処する問題のタイプ (回帰、二項分類、または多クラス分類) によって異なります。このレポートは、評価データセットに含まれていた行の数と、評価が行われた時刻を示します。

### メトリクステーブル
<a name="autopilot-model-quality-report-metrics"></a>

モデル品質レポートの最初の部分にはメトリクステーブルが含まれています。これらは、モデルが対処した問題のタイプに適したものです。

以下の図は、Autopilot が回帰問題に対して生成するメトリクステーブルの例です。メトリクスの名前、値、標準偏差が表示されます。

![\[Amazon SageMaker Autopilot モデルインサイトの回帰メトリクスレポートの例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-regression-metrics.png)


以下の図は、多クラス分類問題に関して、Autopilot によって生成されるメトリクステーブルの例です。メトリクスの名前、値、標準偏差が表示されます。

![\[Amazon SageMaker Autopilot モデルインサイトの多クラス分類メトリクスレポートの例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-multiclass-metrics-report.png)


### グラフィカルなモデルパフォーマンス情報
<a name="autopilot-model-quality-report-graphs"></a>

 モデル品質レポートの 2 つ目の部分には、モデルのパフォーマンスを評価するのに役立つグラフィカルな情報が含まれています。このセクションの内容は、モデリングで使用した問題タイプに応じて異なります。

#### 受信者操作特性曲線の下面積
<a name="autopilot-model-insights-auc-roc"></a>

受信者操作特性曲線の下面積は、真陽性率と偽陽性率のトレードオフを表します。これは、二項分類モデルで使用される業界標準の精度メトリクスです。AUC (受信者操作特性曲線) は、モデルが陰性の例と比較して陽性の例により高いスコアを予測する能力を測定します。AUC メトリクスは、考えられるすべての分類しきい値にわたってモデルパフォーマンスの集約評価基準を提供します。

AUC のメトリクスは 0 から 1 の 10 進値を返します。1 に近い AUC 値は、極めて正確な機械学習モデルであることを示します。0.5 付近の値は、モデルのパフォーマンスがランダムな推測を上回っていないことを示します。0 に近い AUC 値は、機械学習モデルが正しいパターンを学習したが、これらのパターンを使用して可能な限り不正確な予測を行っていることを示します。値がゼロに近い場合、データに問題がある可能性があります。AUC メトリクスの詳細については、Wikipedia の記事「[Receiver operating characteristic](https://en.wikipedia.org/wiki/Receiver_operating_characteristic)」を参照してください。

以下は、バイナリ分類モデルによる予測を評価するための、受信者操作特性曲線グラフの下面積の例です。細い点線は、ランダムな推測を上回ることがないモデルの受信者操作特性曲線の下面積を表し、AUC スコアは 0.5 です。より正確な分類モデルの曲線は、このランダムベースラインより上にあり、真陽性の割合が偽陽性の率を超えています。二項分類モデルの性能を表す受信機動作特性曲線の下面積は、太い実線です。

![\[Amazon SageMaker Autopilot の受信者操作特性曲線の下面積の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-receiver-operating-characteristic-curve.png)


グラフを構成する**偽陽性率** (FPR) と**真陽性率** (TPR) の構成要素の概要は、次のように定義されます。
+ 正しい予測
  + **真陽性** (TP): 予測値は 1 で、真の値は 1 です。
  + **真陰性** (TN): 予測値は 0 で、真の値は 0 です。
+ 誤った予測
  + **偽陽性** (FP): 予測値は 1 ですが、真の値は 0 です。
  + **偽陰性** (FN): 予測値は 0 ですが、真の値は 1 です。

**偽陽性率** (FPR) は、FP と TN の合計に対して、陽性として誤って予測された (FP) 真陰性 (TN) の割合を測定します。範囲は 0～1 です。値が小さいほど予測精度が高いことを示します。
+ FPR = FP/(FP\$1TN)

**真陽性率** (TPR) は、TP と偽陰性 (FN) の合計に対して、陽性として正しく予測された真陽性 (TP) の割合を測定します。範囲は 0～1 です。値が大きいほど予測精度が良いことを示します。
+ TPR = TP/(TP\$1FN)

#### 混同行列
<a name="autopilot-model-insights-confusion-matrix"></a>

混同行列は、さまざまな問題に対して、二項分類および多クラス分類のモデルで行われた予測の精度を可視化する方法を提供します。モデル品質レポートの混同行列には以下が含まれます。
+ 実際のラベルの予測の正解と誤りの数と割合
+ 左上から右下までの対角線上に示される、正確な予測の数と割合
+ 右上から左下までの対角線上に示される、不正確な予測の数と割合

混同行列上の誤った予測は、混同値です。

次の図は、二項分類問題に関する混同行列の例です。これには、以下の情報が含まれています。
+ 縦軸は、真と偽の実際のラベルを含む 2 つの行に分かれています。
+ 横軸は、モデルによって予測された真と偽のラベルを含む 2 つの列に分かれています。
+ カラーバーは、各カテゴリに分類された値の数を視覚的に示すために、サンプル数が多いほど暗い色調を割り当てます。

この例では、モデルは 2,817 個の実際の false 値を正しく予測し、353 個の実際の true 値を正しく予測しました。このモデルでは、130 個の実際の true 値が false で、33 個の実際の false 値が true であると誤って予測されていました。階調の違いは、データセットのバランスが取れていないことを示しています。この不均衡は、実際の false ラベルの方が実際の true ラベルよりもはるかに多いためです。

![\[Amazon SageMaker Autopilot の二項混同行列の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-confusion-matrix-binary.png)


次の図は、多クラス分類問題に関する混同行列の例です。モデル品質レポートの混同行列には以下が含まれます。
+ 縦軸は、3 つの異なる実際のラベルを含む 3 つの行に分かれています。
+ 横軸は、モデルによって予測されたラベルを含む 3 つの列に分かれています。
+ 色付きのバーは、各カテゴリに分類された値の数を視覚的に示すため、サンプル数が多いほど濃い色調を割り当てています。

以下の例では、モデルはラベル **f** の実際の値を 354 個、ラベル **i** の値を 1,094 個、ラベル **m** の値を 852 個正しく予測しています。色調の違いは、値 **i** のラベルが **f** や **m** よりも多いため、データセットのバランスが取れていないことを示しています。

![\[Amazon SageMaker Autopilot マルチモデル混同行列の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-confusion-matrix-multiclass.png)


提供されたモデル品質レポートの混同行列は、多クラス分類問題タイプに対して、最大 15 個のラベルを収容することができます。ラベルに対応する行に `Nan` 値が表示されている場合、モデル予測のチェックに使用された検証データセットにはそのラベルのデータが含まれていないことを意味します。

#### ゲイン曲線
<a name="autopilot-model-insights-precision-gain-curve"></a>

二項分類では、ゲイン曲線は、データセットの割合を使用して陽性ラベルを見つけることによる累積的なメリットを予測します。ゲイン値は、トレーニング中に、陽性観測値の累積数をデータ内の陽性観測値の総数で除算し、各十分位数で算出されます。トレーニング中に作成した分類モデルが目に見えないデータを表すものであれば、ゲイン曲線を使用して、陽性ラベルの割合を取得するためにターゲットにしなければならないデータの割合を予測できます。使用するデータセットの割合が高いほど、検出された陽性ラベルの割合も高くなります。

次のグラフ例では、ゲイン曲線は傾きが変化する線です。直線は、データセットからランダムにデータの割合を選択して見つかった陽性ラベルの割合です。データセットの 20% をターゲットにすると、陽性ラベルの 40% を超えるものが見つかると予想されます。一例として、ゲイン曲線を使用してマーケティングキャンペーンにおける取り組みを決定することを検討するとします。ゲイン曲線の例で言うと、ある地域の 83% の人がクッキーを購入するためには、その地域の約 60% に広告を送信することになります。

![\[Amazon SageMaker Autopilot ゲイン曲線の例 (割合とゲイン値を含む)。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-gain-curve.png)


#### リフト曲線
<a name="autopilot-model-insights-lift-curve"></a>

二項分類におけるリフト曲線は、トレーニング済みのモデルを使用して陽性ラベルが見つかる可能性を無作為に推定した場合と比較して向上することを示しています。リフト値は、各十分位数における陽性ラベルの比率に対する増加率の比率を使用してトレーニング中に計算されます。トレーニング中に作成したモデルが目に見えないデータを表すものである場合は、リフト曲線を使用して、ランダムに推測するよりもそのモデルを使用するメリットを予測します。

次のグラフ例では、リフト曲線は傾きが変化する線です。直線は、データセットから対応する割合をランダムに選択したときのリフト曲線です。データセットの 40% をモデルの分類ラベルでターゲットにすると、目に見えないデータの 40% を無作為に選択した場合に見つかる陽性ラベルの数の約 1.7 倍が見つかると予想されます。

![\[Amazon SageMaker Autopilot リフト曲線の例 (割合とリフト値を含む)。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-lift-curve.png)


#### 精度-再現率曲線
<a name="autopilot-model-insights-precision-recall-curve"></a>

精度-再現率曲線は、二項分類問題における精度と再現率のトレードオフを表します。

**精度**は、陽性と予測されたすべての結果 (TP と偽陽性) のうち、実際の陽性が陽性と予測された (TP) 割合を測定します。範囲は 0～1 です。値が大きいほど、予測された値の精度が高いことを示します。
+ 精度 = TP/(TP\$1FP)

**再現率**は、すべての実際の陽性予測数 (TP と偽陰性) のうち、実際の陽性が陽性と予測された (TP) 割合を測定します。これは、感度または真陽性率とも呼ばれます。範囲は 0～1 です。値が大きいほど、サンプルからの陽性値の検出率が高いことを示します。
+ 再現率 = TP/(TP\$1FN)

分類問題の目的は、できるだけ多くの要素に正しくラベルを付けることです。再現率は高いが精度が低いシステムでは、偽陽性の割合が高くなります。

次の図は、すべての E メールをスパムとしてマークするスパムフィルターを示しています。再現率は偽陽性を測定しないため、再現率は高くなりますが、精度は低くなります。

偽陽性の値に対するペナルティは低いが、真陽性の結果を見逃した場合は高いペナルティがある問題の場合は、精度よりも再現率に重きを置きます。例えば、自動運転車両で差し迫った衝突を検出する場合などです。

![\[すべてのサンプルを陽性としてモデル化する、再現率が高く精度の低いシステムの Autopilot の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-high-recall-low-precision.PNG)


これとは対照的に、精度は高いが再現率が低いシステムでは、偽陰性の割合が高くなります。すべての E メールを望ましい (スパムではない) ものとしてマークするスパムフィルターは精度は高くなりますが、精度が偽陰性を測定しないため、再現率は低くなります。

問題で、偽陰性の値に対するペナルティは低いが、真陰性の結果を見逃した場合のペナルティが高い場合は、再現率よりも精度を重視してください。例えば、税務監査のために疑わしいフィルターにフラグを立てる場合などです。

次の図は、精度が高いが再現率が低いスパムフィルターを示しています。精度では偽陰性を測定できないためです。

![\[すべてのサンプルを陰性としてモデル化した、高精度で再現率の低いシステムの Autopilot の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-high-precision-low-recall.PNG)


高い精度と高い再現率の両方を備えたモデルが予測を行う場合、正しくラベル付けされた結果が数多く生成されます。詳細については、Wikipedia の「[Precision and recall](https://en.wikipedia.org/wiki/Precision_and_recall)」 (精度と再現率) を参照してください。

#### 精度-再現率曲線の下面積 (AUPRC)
<a name="autopilot-model-insights-area-under-precision-recall-curve"></a>

二項分類の問題の場合、Amazon SageMaker Autopilot には精度-再現率曲線の下面積 (AUPRC) のグラフが含まれます。AUPRC メトリクスは、考えられるすべての分類しきい値にわたってモデルパフォーマンスの集約評価基準を提供し、精度と再現率の両方を使用します。AUPRC は真陰性の数を取得しません。そのため、データに真陰性が多数含まれている場合は、モデルのパフォーマンスを評価すると便利な場合があります。例えば、まれな突然変異を含む遺伝子をモデル化する場合などです。

以下の図は AUPRC グラフの例です。精度の最高値は 1 で、再現率は 0 です。グラフの右下隅では、再現率は最高値 (1) で、精度は 0 です。これら 2 つの点の間にある AUPRC 曲線は、異なるしきい値での精度と再現率のトレードオフを示しています。

![\[精度-再現率曲線は、異なるしきい値における精度と再現率のトレードオフを示しています。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-binary-precision-recall.png)


#### 予測値に対する実際値のプロット
<a name="autopilot-model-insights-actual-vs-predicted-plot"></a>

予測値に対する実際値のプロットには、実際のモデル値と予測されたモデル値の差が表示されます。次のグラフ例では、実線は最適な直線です。モデルが 100% 正確であれば、予測される各点は対応する実際の点と等しく、最も適合するこの線上にあることになります。最適な線からの距離は、モデルエラーを視覚的に示します。最適な線からの距離が大きいほど、モデル誤差は大きくなります。

![\[最適な直線、実際のプロットと予測されたプロットの違い、およびモデル誤差の例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-actual-vs-predicted-plot.png)


#### 標準化残差プロット
<a name="autopilot-model-insights-standardized-residual"></a>

標準化残差プロットには以下の統計用語が含まれます。

**`residual`**  
(未加工の) 残差は、実際の値とモデルによって予測された値との差を示します。差が大きいほど、残差値は大きくなります。

**`standard deviation`**  
標準偏差は、値が平均値とどの程度異なるかを示す尺度です。標準偏差が高いということは、多くの値が平均値と大きく異なることを示しています。標準偏差が低いということは、多くの値が平均値に近いことを示しています。

**`standardized residual`**  
標準化残差は、未加工の残差を標準偏差で割ります。標準化残差には標準偏差の単位があり、未加工残差のスケールの違いに関係なくデータ内の外れ値を特定するのに役立ちます。標準化残差が他の標準化残差よりもはるかに小さいか大きい場合は、モデルがこれらの観測値にうまく適合していないことを示しています。

標準化残差プロットは、観測値と期待値の差の強度を測定します。実際の予測値は X 軸に表示されます。絶対値 3 よりも大きい値のポイントは、通常、外れ値と見なされます。

次のグラフ例は、多数の標準化残差が横軸の 0 を中心に集まっていることを示しています。ゼロに近い値は、モデルがこれらの点にうまく適合していることを示しています。プロットの上部と下部にある点は、モデルによって適切に予測されません。

![\[Amazon SageMaker Autopilot の標準化残差プロットの例\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-standardized-residual.png)


#### 残差ヒストグラム
<a name="autopilot-model-insights-residual-histogram"></a>

残差ヒストグラムには以下の統計用語が含まれます。

**`residual`**  
(未加工の) 残差は、実際の値とモデルによって予測された値との差を示します。差が大きいほど、残差値は大きくなります。

**`standard deviation`**  
標準偏差は、値が平均値とどの程度異なるかを示す尺度です。標準偏差が高いということは、多くの値が平均値と大きく異なることを示しています。標準偏差が低いということは、多くの値が平均値に近いことを示しています。

**`standardized residual`**  
標準化残差は、未加工の残差を標準偏差で割ります。標準化残差には標準偏差の単位があります。これらは、未加工の残差のスケールの違いに関係なく、データ内の外れ値を特定するのに役立ちます。標準化残差が他の標準化残差よりもはるかに小さいか大きい場合は、そのモデルがこれらの観測値にうまく適合していないことを示しています。

**`histogram`**  
ヒストグラムは、ある値が出現する頻度を示すグラフです。

残差ヒストグラムは、標準化された残差値の分布を示します。ヒストグラムが、ゼロを中心とするベル形状で分布している場合、モデルがターゲット値の特定の範囲で体系的に過大予測または過小予測していないことを示します。

以下の図では、標準化された残差値は、モデルがデータにうまく適合していることを示しています。グラフに中央値から遠く離れた値が表示されている場合は、それらの値がモデルにうまく適合していないことを示しています。

![\[標準化された残差値がゼロに近く、モデルがデータによく適合していることを示しています。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-residual-histogram.png)


# AutoML タスクを管理するために生成される Autopilot ノートブック
<a name="autopilot-automate-model-development-notebook-output"></a>

Amazon SageMaker Autopilot は、AutoML ジョブを使用して自動機械学習 (AutoML) プロセスの主要タスクを管理します。AutoML ジョブは、3 つのノートブックベースのレポートを作成します。これらのレポートは、候補モデルを生成するために Autopilot が従う計画を説明します。

候補モデルは、(パイプライン、アルゴリズム) ペアで構成されています。1 つ目の**データ探索**ノートブックは、提供されたデータに関して Autopilot が学習した内容を説明しています。2 つ目の**候補定義**ノートブックは、データに関する情報を使用して候補を生成します。3 つ目の**モデルインサイト**レポートは、Autopilot 実験のリーダーボードの中で最適なモデルのパフォーマンス特性を詳しく示します。

**Topics**
+ [Autopilot データ探索レポート](autopilot-data-exploration-report.md)
+ [候補定義ノートブックを検索して実行する](autopilot-candidate-generation-notebook.md)

これらのノートブックは、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) がインストールされている場合、Amazon SageMaker AI またはローカルで実行できます。また、他の SageMaker Studio Classic ノートブックと同じように共有することもできます。こうしたノートブックは、実験を行うために作成されます。例えば、ノートブックで次の項目を編集できます。
+ データに対して使用するプリプロセッサ 
+ ハイパーパラメータ最適化 (HPO) の実行および並行処理の回数
+ 試すアルゴリズム
+ HPO ジョブで使用するインスタンスタイプ
+ ハイパーパラメータの範囲

候補定義ノートブックの変更は、学習手段として行うことをお勧めします。この機能により、機械学習プロセス中に行われた決定が結果にどのように影響するかについて学べます。

**注記**  
デフォルトインスタンスでノートブックを実行した場合は、基準コストの負担で済みます。ただし、候補ノートブックから HPO ジョブを実行すると、これらのジョブは追加のコンピューティングリソースを使用するため、追加コストが発生します。

# Autopilot データ探索レポート
<a name="autopilot-data-exploration-report"></a>

Amazon SageMaker Autopilot は、データセットのクリーンアップと前処理を自動的に行います。高品質のデータにより、機械学習をより効率的に行い、より正確に予測を行うモデルを作成できます。

顧客が提供するデータセットには、ある程度のドメイン知識がないと自動的に修正できない問題があります。例えば、回帰問題に対するターゲット列の外れ値が大きいと、外れ値以外の値に対して最適さに欠ける予測が発生する可能性があります。モデリングの目的によっては、外れ値の削除が必要になることがあります。ターゲット列が誤って入力特徴の 1 つとして含まれている場合、最終モデルは適切に検証されますが、将来の予測にはほとんど価値がありません。

このような問題を顧客が検出できるように、Autopilot は、データの潜在的な問題に関するインサイトを含むデータ探索レポートを提供しています。レポートでは、問題の対処方法も提示されています。

レポートを含むデータ探索ノートブックは、すべての Autopilot ジョブに対して生成されます。レポートは Amazon S3 バケットに保存され、出力パスからアクセスできます。データ探索レポートのパスは通常、次のパターンに従います。

```
[s3 output path]/[name of the automl job]/sagemaker-automl-candidates/[name of processing job used for data analysis]/notebooks/SageMaker AIAutopilotDataExplorationNotebook.ipynb
```

データ探索ノートブックの場所は、[DataExplorationNotebookLocation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobArtifacts.html#sagemaker-Type-AutoMLJobArtifacts-DataExplorationNotebookLocation) に保存されている [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) オペレーションからのレスポンスを使用する Autopilot API から入手できます。

SageMaker Studio Classic から Autopilot を実行している場合、次の手順を使用してデータ探索レポートを開くことができます。

1. *左側のナビゲーションペイン*から**ホーム**アイコン ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/icons/house.png) を選択し、**[Amazon SageMaker Studio Classic]** の最上位のナビゲーションメニューを表示します。

1. メインワークエリアから **[AutoML]** カードを選択します。これにより、新しい **[Autopilot]** タブが開きます。

1. **[名前]** セクションで、調べたいデータ探索ノートブックを含む Autopilot ジョブを選択します。これにより、新しい **[Autopilot ジョブ]** タブが開きます。

1. **[Autopilot ジョブ]** タブの右上のセクションから **[データ探索ノートブックを開く]** を選択します。

データ探索レポートは、トレーニングプロセスの開始前にデータから生成されます。これにより、意味のない結果につながる可能性のある Autopilot ジョブを停止できます。同様に、Autopilot を再実行する前にデータセットの問題や改善に対処できます。このように、より適切にキュレートされたデータセットでモデルをトレーニングする前に、ドメインの専門知識を活用してデータ品質を手動で改善できます。

データレポートには静的マークダウンのみが含まれており、どの Jupyter 環境でも開くことができます。レポートを含むノートブックは、PDF や HTML などの他の形式に変換できます。変換の詳細については、「[Using the nbconvert script to convert Jupyter notebooks to other formats](https://nbconvert.readthedocs.io/en/latest/usage.html )」を参照してください。

**Topics**
+ [データセットの概要](#autopilot-data-exploration-report-dataset-summary)
+ [ターゲット分析](#autopilot-data-exploration-report-target-analysis)
+ [データサンプル](#autopilot-data-exploration-report-data-sample)
+ [重複行](#autopilot-data-exploration-report-duplicate-rows)
+ [相互相関列](#autopilot-data-exploration-report-cross-column-correlations)
+ [異常な行](#autopilot-data-exploration-report-cross-anomolous-rows)
+ [欠損値、濃度、記述統計](#autopilot-data-exploration-report-description-statistics-and-values)

## データセットの概要
<a name="autopilot-data-exploration-report-dataset-summary"></a>

この**[データセットの概要]** では、行数、列数、重複行の割合、および欠落している目標値を含め、データセットを特徴付ける主要な統計情報を提供します。これは、Amazon SageMaker Autopilot によってデータセットの問題が検出され、ユーザーの介入が必要と見られる場合に、迅速にアラートを提供することを目的としています。インサイトは、重要度が「高」または「低」に分類される警告として示されます。分類は、問題がモデルのパフォーマンスに悪影響を与えることを示す信頼度に依存します。

重要度が高と低のインサイトは概要にポップアップ表示されます。ほとんどのインサイトの場合、データセットに注意を要する問題があることを確認する方法についてレコメンデーションが提供されます。また、これらの問題の解決方法に関する提案も提供されます。

Autopilot は、データセット内の欠落したターゲット値や無効なターゲット値に関する追加の統計を提供し、重要度の高いインサイトではキャプチャされないような他の問題を検出できるようにします。特定タイプの列が予期しない数である場合は、使用する列の一部がデータセットから欠落している可能性があります。また、データを準備または保存する方法に問題があったことを示している可能性もあります。Autopilot によって知らされるこれらのデータの問題を修正することにより、データでトレーニングされた機械学習モデルのパフォーマンスを向上させることができます。

重要度の高いインサイトは、レポートの概要セクションと、他の関連するセクションに表示されます。通常、データレポートのセクションに応じて、重要度の高い/低いインサイトの例が示されます。

## ターゲット分析
<a name="autopilot-data-exploration-report-target-analysis"></a>

このセクションには、ターゲット列の値の分布に関連して、重要度が高い/低いさまざまなインサイトが表示されます。ターゲット列に正しい値が含まれていることを確認してください。ターゲット列の値が間違っていると、機械学習モデルが意図したビジネス目的に役立たない可能性があります。このセクションには、重要度が高い/低いデータインサイトがいくつかあります。次にいくつかの例を示します。
+ **外れターゲット値** - 裾の重いターゲットなど、回帰に対する歪んだまたは異常なターゲット分布。
+ **高いまたは低いターゲット基数** - 分類のクラスラベルの頻度が小さいか、一意のクラス数が非常に大きい。

回帰および分類の両方の問題タイプで、数値の無限、`NaN`、ターゲット列の空白などの無効な値が表示されます。問題タイプに応じて異なるデータセット統計が表示されます。回帰問題に対するターゲット列の値の分布により、分布が期待どおりであるかどうかを簡単に検証できます。

次のスクリーンショットは、データセット内の外れ値の平均、中央値、最小値、最大値、パーセンテージなどの統計を含む Autopilot データレポートを示しています。スクリーンショットには、ターゲット列のラベルの分布を示すヒストグラムも含まれています。ヒストグラムでは、横軸に**ターゲット列の値**、縦軸に**個数**が表示されます。スクリーンショットの**外れ値の割合**セクションがボックスで強調表示され、この統計が表示されている場所を示しています。

![\[ターゲット列の値のディストリビューションに関する Autopilot データレポート。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-target-analysis.png)


ターゲット値とその分布に関する複数の統計が表示されます。外れ値、無効な値、または欠落している値の割合のいずれかがゼロより大きい場合、その値が表示され、使用できないターゲット値がデータに含まれている理由を調査できます。一部の使用できないターゲット値は、重要度が低いインサイト警告として強調表示されます。

次のスクリーンショットでは、「`」記号が誤ってターゲット列に追加されたため、ターゲットの数値が解析されなくなっています。**重要度が低いインサイト: 「無効なターゲット値」**という警告が表示されています。この例の警告は次のとおりです: 「ターゲット列のラベルの 0.14% は数値に変換できませんでした。最も一般的な数値以外の値には、["-3.8e-05","-9-05","-4.7e-05","-1.4999999999999999e-05","-4.3e-05"] があります。これは通常、データの収集または処理に問題があることを示しています。Amazon SageMaker Autopilot は、無効なターゲットラベルが付いた観測値をすべて無視します。」

![\[無効なターゲット値に関する重要度の低い警告の Autopilot データレポート。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-target-analysis-invalid-target-values.png)


Autopilot では、分類のラベルの分布を示すヒストグラムも提供されます。

次のスクリーンショットは、クラス数、欠落している値、または無効な値など、ターゲット列に与えられた統計の例を示しています。横軸が**ターゲットラベル**、縦軸が**頻度**のヒストグラムで、各ラベルカテゴリの分布を示しています。

![\[分類の高濃度を示す Autopilot データレポート。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-target-analysis-invalid-classification.png)


**注記**  
このセクションおよびその他のセクションに記載されているすべての用語の定義は、レポートノートブックの下部にある **[Definitions]** (定義) セクションで確認できます。

## データサンプル
<a name="autopilot-data-exploration-report-data-sample"></a>

Autopilot は、データセットの問題の特定に役立つ実際のデータのサンプルを提示します。サンプルテーブルは水平方向にスクロールします。サンプルデータを調べて、必要な列すべてがデータセットに存在することを確認してください。

Autopilot では予測能力のメジャーも計算されるため、特徴量とターゲット変数の間の線形または非線形の関係を識別できます。値が `0` の場合、その特徴量にはターゲット変数の予測において予測値がないことを示します。値が `1` の場合は、ターゲット変数の予測能力が最も高いことを示しています。予測能力の詳細については、**[定義]** セクションを参照してください。

**注記**  
特徴量の重要度の代わりに予測能力を使用することはお勧めしません。予測能力がユースケースに適切なメジャーであることがはっきりしている場合にのみ使用してください。

次のスクリーンショットは、データサンプルの例を示しています。一番上の行にはデータセットの各列の予測能力が含まれています。2 行目には列のデータ型が含まれています。以降の行にはラベルが含まれます。列にはターゲット列、各特徴量列が続きます。各特徴量列には関連付けられた予測能力があり、このスクリーンショットではボックスで強調表示されています。この例では、特徴量 `x51` を含む列にはターゲット変数 `y` に対して `0.68` の予測能力があります。特徴量 `x55` は、`0.59` の予測能力より予測がわずかに小さくなります。

![\[データサンプルの予測能力を示す Autopilot データレポート。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-sample-prediction.png)


## 重複行
<a name="autopilot-data-exploration-report-duplicate-rows"></a>

データセット内に重複行がある場合、Amazon SageMaker Autopilot はそれらのサンプルを表示します。

**注記**  
Autopilot に提供する前に、アップサンプリングによってデータセットをバランスさせることは推奨されません。これを行うと、Autopilot によってトレーニングされたモデルの検証スコアが正しくなくなり、生成されたモデルが使用できなくなる可能性があります。

## 相互相関列
<a name="autopilot-data-exploration-report-cross-column-correlations"></a>

Autopilot は、2 つの特徴量間の線形相関の尺度であるピアソンの相関係数を使用して相関行列を作成します。相関行列では、数値の特徴量が横軸と縦軸の両方にプロットされ、ピアソンの相関係数はそれらの交点にプロットされます。2 つの特徴量間の相関が高ければ係数も大きくなり、最大値は `|1|` です。
+ 値が `-1` の場合、特徴量には完全に負の相関があることを示します。
+ 値が `1` の場合、特徴量がそれ自体と相関関係にあり、完全に正の相関があることを示します。

相関行列の情報を使用して、高い相関関係にある特徴量を削除できます。特徴の数が少ないほど、モデルの過剰適合の可能性が少なくなり、2 つの方法で運用コストを削減できます。これにより、必要な Autopilot ランタイムが少なくなり、アプリケーションによってはデータ収集手順をより安価に実行できます。

次のスクリーンショットは、`7` つの特徴量間の相関行列の例を示しています。各特徴量は、横軸と縦軸の両方に行列として表示されています。ピアソンの相関係数は 2 つの特徴量が交差する場所に表示されています。各特徴量が交差する場所には、関連付けられた色調が表示されています。相関が高いほど色調は濃くなります。最も濃い色調は行列の対角線上にあり、各特徴量はそれ自体と相関関係にあり、完全な相関があることを示しています。

![\[データの相互相関行列を示す Autopilot データレポート。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-cross-column-statistics.png)


## 異常な行
<a name="autopilot-data-exploration-report-cross-anomolous-rows"></a>

Amazon SageMaker Autopilot は、データセット内で異常の可能性がある行を検出します。次に、各行に異常スコアを割り当てます。負の異常スコアがある行は、異常とみなされます。

次のスクリーンショットは、異常を含む行に関する Autopilot 分析からの出力を示しています。各行のデータセット列の横に、異常なスコアを含む列が表示されています。

![\[異常な行を含む Autopilot データセット。負の異常スコアを示している。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-anomalous-rows.png)


## 欠損値、濃度、記述統計
<a name="autopilot-data-exploration-report-description-statistics-and-values"></a>

Amazon SageMaker Autopilot は、データセットの個々の列のプロパティを調べてレポートします。この分析を示すデータレポートの各セクションでは、コンテンツが順番に並べられています。これは、最も「疑わしい」値を最初にチェックできるようにするためです。この統計を使用することで、個々の列のコンテンツを改善し、Autopilot が生成するモデルの品質を向上させることができます。

Autopilot は、これらが含まれる列のカテゴリ値に関するいくつかの統計を計算します。これには、ユニークなエントリの数とユニークな単語の数 (テキストの場合) が含まれます。

Autopilot は、これらが含まれる列の数値に関するいくつかの標準統計を計算します。次の図は、平均値、中央値、最小値と最大値、数値タイプおよび外れ値の割合を含む統計を示しています。

![\[数値が含まれる列の統計を示す Autopilot データレポート。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-descriptive-statistics.png)


# 候補定義ノートブックを検索して実行する
<a name="autopilot-candidate-generation-notebook"></a>

候補定義ノートブックには、推奨されるそれぞれの前処理ステップ、アルゴリズム、ハイパーパラメータの範囲が含まれています。

どの候補をトレーニングして調整するかは 2 つの方法で選択できます。1 つ目は、ノートブックのセクションを実行する方法です。2 つ目は、すべての候補を最適化し、最適な候補を特定するようノートブック全体を実行する方法です。ノートブック全体を実行した場合、ジョブ完了後に最適な候補のみが表示されます。

SageMaker Studio Classic から Autopilot を実行するには、次の手順に従って候補定義ノートブックを開きます。

1. 左側のナビゲーションペインから**ホーム**アイコン ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/icons/house.png) を選択し、**[Amazon SageMaker Studio Classic]** の最上位のナビゲーションメニューを表示します。

1. メインワークエリアから **[AutoML]** カードを選択します。これにより、新しい **[Autopilot]** タブが開きます。

1. **[名前]** セクションで、調べたい候補定義ノートブックがある Autopilot ジョブを選択します。これにより、新しい **[Autopilot ジョブ]** タブが開きます。

1. **[Autopilot ジョブ]** タブの右上のセクションから、**[候補生成ノートブックを開く]** を選択します。これにより、読み取り専用で新しい **[Amazon SageMaker Autopilot 候補定義ノートブック]** のプレビューが開きます。

候補定義ノートブックを実行するには、次のステップに従います。

1. **[Amazon SageMaker Autopilot 候補定義ノートブック]** タブの右上にある **[ノートブックをインポート]** を選択します。これにより、ノートブックを実行する新しいノートブック環境を設定するためのタブが開きます。

1. 既存の SageMaker **[イメージ]** を選択するか、**[カスタムイメージ]** を使用してください。

1. **[カーネル]**、**[インスタンスタイプ]**、およびオプションの **[起動スクリプト]** を選択します。

これで、新しい環境でノートブックを実行できるようになりました。

# 生成されたコンテナに推論出力を設定する
<a name="autopilot-automate-model-development-container-output"></a>

Autopilot は、順序付けされた [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html) リストを生成します。これを使用して、機械学習パイプラインにデプロイするモデルを構築できます。このモデルはオンラインホスティングや推論に使用できます。

顧客は、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidateForAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidateForAutoMLJob.html) API を使用して推論コンテナ定義をリストできます。また、最良候補を表す推論コンテナ定義のリストは、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) レスポンスでも入手できます。

## 回帰および分類の問題タイプのための推論コンテナ定義
<a name="autopilot-problem-type-container-output"></a>

Autopilot は、ジョブの[トレーニングモード](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-training-mode)と[問題タイプ](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types)に固有の推論コンテナを生成します。

### ハイパーパラメータ最適化 (HPO) モードのコンテナ定義
<a name="autopilot-problem-type-container-output-hpo"></a>
+ **回帰**: HPO は 2 つのコンテナを生成します。

  1. 元の特徴量を、回帰アルゴリズムでトレーニングできる特徴量に変換する特徴量エンジニアリングコンテナ。

  1. 特徴量を変換してデータセットの回帰スコアを生成するアルゴリズムコンテナ。
+ **分類**: HPO は 3 つのコンテナを生成します。

  1. 元の特徴量を、分類アルゴリズムでトレーニングできる特徴量に変換する特徴量エンジニアリングコンテナ。

  1. 最も高い確率で `predicted_label` を生成するアルゴリズムコンテナ。このコンテナは、推論レスポンスで分類結果に関連するさまざまな確率を生成することもできます。

  1. アルゴリズム予測の後処理を実行する特徴量エンジニアリングコンテナ。たとえば、予測されたラベルに対して逆変換を実行し、元のラベルに変更できます。

### アンサンブルモードのコンテナ定義
<a name="autopilot-problem-type-container-output-ensemble"></a>

アンサンブルモードでは、回帰問題タイプと分類問題タイプはどちらも 1 つの推論コンテナしかありません。この推論コンテナは、問題のタイプに基づいて特徴量を変換し、予測を生成します。

## 問題タイプごとの推論レスポンス
<a name="autopilot-problem-type-inference-response"></a>

### 分類モデルの推論レスポンス
<a name="autopilot-problem-type-inference-response-classification"></a>

分類推論コンテナの場合、4 つの事前定義キーを使用して推論応答のコンテンツを選択できます。
+ `predicted_label`: Autopilot によって決定された、正しいラベルを予測する確率が最も高いラベル。
+ `probability`: 
  + **HPO モデル:** 二項分類の `True` クラスの確率。多クラス分類の `predicted_label` の確率。
  + **アンサンブルモデル:** 二項分類および多クラス分類の `predicted_label` の確率。
+ `probabilities`: 対応するすべてのクラスの確率のリスト。
+ `labels`: すべてのラベルのリスト

たとえば、二項分類の問題で、推論レスポンスキー `['predicted_label', 'probability', 'probabilities', 'labels']` を渡して出力応答が `[1, 0.1, "[0.9, 0.1]", "['1', '0']"]` のように表示される場合は、次のように解釈する必要があります。

1. ラベル「1」の確率が高いため (この場合は `0.9`)、`predicted_label` は `1` に等しくなります。

1. HPO モデルの場合、`probability` は `0.1` に等しく、これは Autopilot によって選択された `positive_class` (この場合は `0`) の確率です。

   アンサンブルモデルの場合は、`probability` は `predicted_label` の確立である `0.9` に等しくなります。

1. `probabilities` は `labels` の各ラベルの `probability` をリストします。

1. `labels` はデータセット内の一意のラベルで、2 番目のラベル (この場合は「0」) は Autopilot によって選択された `positive_class` です。

デフォルトでは、推論コンテナは `predicted_label` のみを生成するように設定されています。追加の推論コンテンツを選択するには、`inference_response_keys` パラメータを更新して次の 3 つの環境変数を含めることができます。
+ `SAGEMAKER_INFERENCE_SUPPORTED`: これは、各コンテナがサポートするコンテンツについてのヒントを提供するために設定されます。
+ `SAGEMAKER_INFERENCE_INPUT`: これは、入力ペイロードでコンテナに必要となるキーに設定します。
+ `SAGEMAKER_INFERENCE_OUTPUT`: これは、コンテナから出力される一連のキーを入力します。

### HPO モードでの分類モデルの推論レスポンス
<a name="autopilot-problem-type-inference-response-classification-hpo"></a>

このセクションでは、ハイパーパラメータ最適化 (HPO) モードを使用して分類モデルからの推論レスポンスを設定する方法を説明します。

HPO モードで推論レスポンスの内容を選択するには、分類問題用に HPO モードで生成される 2 番目と 3 番目のコンテナに `SAGEMAKER_INFERENCE_INPUT` および `SAGEMAKER_INFERENCE_OUTPUT` 変数を追加します。

2 番目のコンテナ (アルゴリズム) でサポートされているキーは、predicted\$1label、probability、probabilities です。`labels` が `SAGEMAKER_INFERENCE_SUPPORTED` に意図的に追加されていないことに注意してください。

3 番目の分類モデルコンテナがサポートするキーは `predicted_label`、`labels`、`probability`、`probabilities` です。そのため、`SAGEMAKER_INFERENCE_SUPPORTED` 環境にはこれらのキーの名前が含まれます。

推論コンテナの定義を更新して、`predicted_label` と `probability` を受け取るには、次のコード例を使用してください。

```
containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
```

次のコード例では、`predicted_label`、`probabilities`、`labels` を受け取るように推論コンテナの定義を更新します。`labels` は 3 番目のコンテナによって別個に生成されるため、2 番目のコンテナ (アルゴリズムコンテナ) には渡さないでください。

```
containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label,probabilities'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label,probabilities'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probabilities,labels'})
```

次の折りたたみ可能なセクションでは、SageMaker SDK for Python の AWS SDK for Python (Boto3) および のコード例を示します。各セクションでは、それぞれのコード例で、HPO モードで推論レスポンスの内容を選択する方法が示されています。

#### AWS SDK for Python (Boto3)
<a name="autopilot-problem-type-inference-response-classification-hpo-boto3"></a>

```
import boto3

sm_client = boto3.client('sagemaker', region_name='<Region>')

role = '<IAM role>'
input_data = '<S3 input uri>'
output_path = '<S3 output uri>'

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName='<AutoML Job Name>')['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

best_candidate_containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
best_candidate_containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'})
best_candidate_containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})

# create model
reponse = sm_client.create_model(
    ModelName = '<Model Name>',
    ExecutionRoleArn = role,
    Containers = best_candidate_containers
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName='<Transform Job Name>',
    ModelName='<Model Name>',
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/CSV",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m4.xlarge',
        'InstanceCount': 1,
    },
)
```

#### SageMaker SDK for Python
<a name="autopilot-problem-type-inference-response-classification-hpo-sdk"></a>

```
from sagemaker import AutoML

aml = AutoML.attach(auto_ml_job_name='<AutoML Job Name>')
aml_best_model = aml.create_model(name='<Model Name>',
                                  candidate=None,
                                  inference_response_keys**=['probabilities', 'labels'])

aml_transformer = aml_best_model.transformer(accept='text/csv',
                                            assemble_with='Line',
                                            instance_type='ml.m5.xlarge',
                                            instance_count=1,)

aml_transformer.transform('<S3 input uri>',
                          content_type='text/csv',
                          split_type='Line',
                          job_name='<Transform Job Name>',
                          wait=True)
```

### アンサンブルモードでの分類モデルの推論レスポンス
<a name="autopilot-problem-type-inference-response-classification-ensemble"></a>

このセクションでは、アンサンブルモードを使用して分類モデルからの推論レスポンスを設定する方法を説明します。

**アンサンブルモード**で推論レスポンスの内容を選択するには、`SAGEMAKER_INFERENCE_OUTPUT` 環境変数を更新します。

分類モデルコンテナがサポートするキーは `predicted_label`、`labels`、`probability`、`probabilities` です。これらのキーは `SAGEMAKER_INFERENCE_SUPPORTED` 環境に含まれています。

推論コンテナの定義を更新して、`predicted_label` と `probability` を受け取るには、次のコード例を参照してください。

```
containers[0]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
```

次の折りたたみ可能なセクションは、アンサンブルモードで推論レスポンスの内容を選択するコード例を示しています。この例では を使用します AWS SDK for Python (Boto3)。

#### AWS SDK for Python (Boto3)
<a name="autopilot-problem-type-inference-response-classification-ensembling-boto3"></a>

```
import boto3
sm_client = boto3.client('sagemaker', region_name='<Region>')

role = '<IAM role>'
input_data = '<S3 input uri>'
output_path = '<S3 output uri>' 

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName='<AutoML Job Name>')['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

*best_candidate_containers[0]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
*
# create model
reponse = sm_client.create_model(
    ModelName = '<Model Name>',
    ExecutionRoleArn = role,
    Containers = best_candidate_containers
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName='<Transform Job Name>',
    ModelName='<Model Name>',
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/CSV",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m4.xlarge',
        'InstanceCount': 1,
    },
)
```

次の折りたたみ可能なセクションでは、HPO 用の SageMaker SDK for Python の例と同じコード例を示します。便宜上、ここに含めます。

#### SageMaker SDK for Python
<a name="autopilot-problem-type-inference-response-classification-ensembling-sdk"></a>

次の HPO コード例では SageMaker SDK for Python を使用しています。

```
from sagemaker import AutoML

aml = AutoML.attach(auto_ml_job_name='<AutoML Job Name>')
aml_best_model = aml.create_model(name='<Model Name>',
                                  candidate=None,
                                  *inference_response_keys**=['probabilities', 'labels'])*

aml_transformer = aml_best_model.transformer(accept='text/csv',
                                            assemble_with='Line',
                                            instance_type='ml.m5.xlarge',
                                            instance_count=1,)

aml_transformer.transform('<S3 input uri>',
                          content_type='text/csv',
                          split_type='Line',
                          job_name='<Transform Job Name>',
                          wait=True)
```