AutoML API を使用して表形式データの回帰または分類ジョブを作成する - Amazon SageMaker

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

AutoML API を使用して表形式データの回帰または分類ジョブを作成する

Autopilot または AWS CLIがサポートする任意の言語で CreateAutoMLJobV2 API アクションを呼び出すことで、表形式データの Autopilot 実験をプログラムで作成できます。

この API アクションが選択した言語の関数にどのように変換されるかについては、「CreateAutoMLJobV2」の「関連項目」セクションを参照して SDK を選択してください。例として、Python ユーザーの場合は、「 AWS SDK for Python (Boto3)」の「create_auto_ml_job_v2 のすべてのリクエスト構文」を参照してください。

注記

CreateAutoMLJobV2DescribeAutoMLJobV2 は、下位互換性を提供する CreateAutoMLJobDescribeAutoMLJob の新しいバージョンです。

CreateAutoMLJobV2 の使用をお勧めします。CreateAutoMLJobV2 は以前のバージョンの CreateAutoMLJob と同じ表形式の問題タイプだけでなく、画像やテキストの分類、時系列予測などの表形式以外の問題タイプも管理できます。

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

実験の実行後、トライアルを比較し、各モデルの前処理ステップ、アルゴリズム、ハイパーパラメータ範囲の詳細を詳しく調べることができます。また、説明可能性のレポートやパフォーマンスのレポートをダウンロードすることもできます。提供されたノートブックを使用して、自動データ探索の結果や候補となるモデル定義を確認します。

CreateAutoMLJobV2 API アクションの必須およびオプションの入力リクエストパラメータを以下に示します。このアクションの以前のバージョン CreateAutoMLJob に関する代替情報もあります。ただし、CreateAutoMLJobV2 を使用することをお勧めします。

CreateAutoMLJobCreateAutoMLJobV2 に移行する方法に関するガイドラインについては、「 CreateAutoMLJob を CreateAutoMLJobV2 に移行する」を参照してください。

必須パラメータ

CreateAutoMLJobV2

CreateAutoMLJobV2 を呼び出して、表形式データの Autopilot 実験を作成するためには、次の値を指定する必要があります。

  • ジョブの名前を指定する AutoMLJobName

  • データソースを指定するための AutoMLJobInputDataConfig 内の少なくとも 1 つの AutoMLJobChannel

  • AutoMLJobObjective メトリクスと AutoMLProblemTypeConfig で選択した教師あり学習の問題タイプ (二項分類、多クラス分類、回帰) の両方を含む、またはどちらも含まない。表形式データの場合、AutoMLProblemTypeConfig のタイプとして TabularJobConfig を選択する必要があります。教師あり学習の問題の場合、TabularJobConfigProblemType 属性で設定します。

  • AutoML ジョブのアーティファクトを保存する Amazon S3 出力パスを指定する OutputDataConfig

  • データへのアクセスに使用されるロールの ARN を指定する RoleArn

CreateAutoMLJob

CreateAutoMLJob を呼び出して、AutoML 実験を作成するには、次の 4 つの値を指定する必要があります。

  • ジョブの名前を指定する AutoMLJobName

  • データソースを指定するための InputDataConfig 内の少なくとも 1 つの AutoMLChannel

  • AutoML ジョブのアーティファクトを保存する Amazon S3 出力パスを指定する OutputDataConfig

  • データへのアクセスに使用されるロールの ARN を指定する RoleArn

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

任意指定のパラメータ

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

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

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

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

CreateAutoMLJobV2

表形式データの場合、AutoMLProblemTypeConfig のタイプとして TabularJobConfig を選択する必要があります。

AutoML ジョブ V2 のトレーニング方法は、TabularJobConfig.Mode パラメータで設定できます。

CreateAutoMLJob

AutoML ジョブのトレーニング方法は、AutoMLJobConfig.Mode パラメータで設定できます。

特徴量の選択

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

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

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

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

注記

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

CreateAutoMLJobV2

表形式データの場合、AutoMLProblemTypeConfig のタイプとして TabularJobConfig を選択する必要があります。

TabularJobConfig.FeatureSpecificatioS3Uri パラメータを使用して、選択した特徴量の URL を設定できます。

CreateAutoMLJob

AutoMLCandidateGenerationConfigFeatureSpecificatioS3Uri 属性は、CreateAutoMLJob API 内で次の形式で設定できます。

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "FeatureSpecificationS3Uri":"string" }, } }

アルゴリズムの選択

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

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

CreateAutoMLJobV2

表形式データの場合、AutoMLProblemTypeConfig のタイプとして TabularJobConfig を選択する必要があります。

AlgorithmsConfig 属性AutoMLAlgorithmsで、選択した の配列を指定できますCandidateGenerationConfig

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

{ "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "ENSEMBLING", "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, }, }, }
CreateAutoMLJob

AutoMLCandidateGenerationConfigAlgorithmsConfig 属性AutoMLAlgorithmsで選択した の配列を指定できます。

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

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, "Mode": "ENSEMBLING" }

トレーニング Mode ごとに使用できるアルゴリズムのリストについては、「AutoMLAlgorithms」を参照してください。各アルゴリズムの詳細については、「トレーニングモードとアルゴリズムのサポート」を参照してください。

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

CreateAutoMLJobV2

AutoMLJobChannelオブジェクト (必須パラメータ AutoMLJobInputDataConfig を参照) には がありChannelType、機械学習モデルを構築するときにデータの使用方法を指定する trainingまたは validationの値に設定できます。少なくとも 1 つのデータソースを指定する必要があり、最大 2 つのデータソースを指定できます。1 つはトレーニングデータ用、もう 1 つは検証データ用です。

データをトレーニングデータセットと検証データセットに分割する方法は、データソースが 1 つか 2 つかによって異なります。

  • データソースが 1 つのみである場合、ChannelType はデフォルトで training に設定され、この値を持つ必要があります。

    • AutoMLDataSplitConfigValidationFraction 値を設定しないと、このソースのデータの 0.2 (20%) がデフォルトで検証に使用されます。

    • ValidationFraction を 0 から 1 の間の値に設定すると、データセットは指定した値に基づいて分割されます。この値は、検証に使用されるデータセットの割合を指定します。

  • データソースが 2 つである場合は、AutoMLJobChannel オブジェクトの 1 つの ChannelTypetraining (デフォルト値) に設定する必要があります。他のデータソースの ChannelTypevalidation に設定する必要があります。2 つのデータソースは、同じ形式 (CSV または Parquet) と同じスキーマを持つ必要があります。この場合、ValidationFraction の値を設定してはいけません。各ソースのすべてのデータがトレーニングまたは検証に使用されるためです。この値を設定すると、エラーが発生します。

CreateAutoMLJob

AutoMLChannelオブジェクト (必須パラメータ を参照InputDataConfig) には がありChannelType、機械学習モデルを構築するときにデータをどのように使用するかを指定する trainingまたは validationの値に設定できます。少なくとも 1 つのデータソースを指定する必要があり、最大 2 つのデータソースを指定できます。1 つはトレーニングデータ用、もう 1 つは検証データ用です。

データをトレーニングデータセットと検証データセットに分割する方法は、データソースが 1 つか 2 つかによって異なります。

  • データソースが 1 つのみである場合、ChannelType はデフォルトで training に設定され、この値を持つ必要があります。

    • AutoMLDataSplitConfigValidationFraction 値を設定しないと、このソースのデータの 0.2 (20%) がデフォルトで検証に使用されます。

    • ValidationFraction を 0 から 1 の間の値に設定すると、データセットは指定した値に基づいて分割されます。この値は、検証に使用されるデータセットの割合を指定します。

  • データソースが 2 つである場合は、AutoMLChannel オブジェクトの 1 つの ChannelTypetraining (デフォルト値) に設定する必要があります。他のデータソースの ChannelTypevalidation に設定する必要があります。2 つのデータソースは、同じ形式 (CSV または Parquet) と同じスキーマを持つ必要があります。この場合、ValidationFraction の値を設定してはいけません。各ソースのすべてのデータがトレーニングまたは検証に使用されるためです。この値を設定すると、エラーが発生します。

Autopilot の分割と相互検証について詳しくは、「Autopilot での交差検証」を参照してください。

CreateAutoMLJobV2

表形式データの場合、AutoMLProblemTypeConfig のタイプとして TabularJobConfig を選択する必要があります。

さらに TabularJobConfig.ProblemType パラメータを指定して、AutoML ジョブ V2 のモデル候補に使用できる教師あり学習の問題タイプ (二項分類、多クラス分類、回帰) を指定できます。

CreateAutoMLJob

CreateAutoPilot.ProblemType パラメータを使用して、AutoML ジョブの問題のタイプを設定できます。これにより、Autopilot が試す前処理の種類とアルゴリズムが制限されます。ジョブが終了すると、CreateAutoPilot.ProblemType を設定している場合、ResolvedAttribute.ProblemType は設定した ProblemType と一致します。空白 (またはnull) のままにしておくと、ProblemType がユーザーに代わって推測されます。

注記

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

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

サンプルの重みのサポートは、アンサンブルモードでのみ使用できます。ウェイトは負でない数値でなければなりません。無効な重み値または重み値がないデータポイントは除外されます。使用可能な目標メトリクスの詳細については、「Autopilot 加重メトリクス」を参照してください。

CreateAutoMLJobV2

表形式データの場合、AutoMLProblemTypeConfig のタイプとして TabularJobConfig を選択する必要があります。

実験の作成時にサンプルの重みを設定するには (CreateAutoMLJobV2 を参照)、 TabularJobConfig オブジェクトの SampleWeightAttributeName 属性でサンプルの重み列の名前を渡すことができます。これにより、目標メトリクスがモデル候補のトレーニング、評価、選択にその重みを使用するようになります。

CreateAutoMLJob

実験の作成時にサンプルの重みを設定するには (「CreateAutoMLJob」を参照)、AutoMLChannel オブジェクトの SampleWeightAttributeName 属性でサンプルの重み列の名前を渡すことができます。これにより、目標メトリクスがモデル候補のトレーニング、評価、選択にその重みを使用するようになります。

CreateAutoMLJob を CreateAutoMLJobV2 に移行する

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

このセクションでは、2 つのバージョン間の入力リクエストのオブジェクトと属性の位置、名前、または構造の変更を強調表示することで、CreateAutoMLJobCreateAutoMLJobV2 の入力パラメータの違いについて説明します。

  • バージョン間で変更されていないリクエスト属性。

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

    次の属性の位置が変更されました。DataSplitConfigSecurity ConfigCompletionCriteriaModeFeatureSpecificationS3UriSampleWeightAttributeNameTargetAttributeName

    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 は、AutoMLJobConfig タイプの CandidateGenerationConfigAutoMLCandidateGenerationConfigCandidateGenerationConfig V2 TabularJobConfigの AutoMLProblemTypeConfigCandidateGenerationConfig タイプの に移動した方法を示しています。

    CreateAutoMLJob
    { "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], "FeatureSpecificationS3Uri": "string" } }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], }, } }, }
  • 名前と構造が変更されたリクエスト属性。

    次の JSON は、V2 で InputDataConfig (AutoMLChannel の配列) が AutoMLJobInputDataConfig (AutoMLJobChannel の配列) にどのように変更されたかを示しています。属性 SampleWeightAttributeName および TargetAttributeNameInputDataConfig から 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" } } } ] }