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

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

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

Autopilot または でサポートされている任意の言語で CreateAutoMLJobV2APIアクションを呼び出すことで、表形式データの Autopilot 回帰または分類ジョブをプログラムで作成できます AWS CLI。以下は、 CreateAutoMLJobV2APIアクションの必須入力リクエストパラメータとオプション入力リクエストパラメータのコレクションです。このアクションの以前のバージョン CreateAutoMLJob に関する代替情報もあります。ただし、CreateAutoMLJobV2 を使用することをお勧めします。

このAPIアクションが任意の言語で関数に変換される方法については、「」セクションのhttps://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso「」セクションを参照して、CreateAutoMLJobV2「」を選択しますSDK。例として、Python ユーザーの場合は、「 AWS SDK for Python (Boto3)」の「create_auto_ml_job_v2 のすべてのリクエスト構文」を参照してください。

注記

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

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

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

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

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

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

任意指定のパラメータ

以下のセクションでは、表形式データを使用する際にCreateAutoMLJobV2APIアクションに渡すことができるオプションパラメータの詳細について説明します。このアクションの以前のバージョン 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

CreateAutoMLJob API 以下の形式で、 内で A utoMLCandidateGenerationConfigFeatureSpecificatioS3Uri属性を設定できます。

{ "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オブジェクト (必要なパラメータ A utoMLJobInputDataConfigを参照) には があり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 属性でサンプル重み列の名前を渡すことができます。これにより、目標メトリクスがモデル候補のトレーニング、評価、選択にその重みを使用するようになります。

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

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

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

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

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

また、以下のアクセス許可を付与します。

  • EMR Serverless アプリケーションを作成、一覧表示、更新します。

  • EMR Serverless アプリケーションでジョブの実行を開始、一覧表示、取得、またはキャンセルします。

  • EMR Serverless リソースにタグを付けます。

  • 実行のために EMR Serverless サービスにIAMロールを渡します。

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

    このロールのアクセス許可の詳細については、「Amazon EMR Serverless のジョブランタイムロール」を参照してください。

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

{ "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

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

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

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

    { "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" ] } } }
  • 次の属性は、バージョン間で位置と構造が変更されました。

    以下は、タイプ A の A utoMLJobConfig.CandidateGenerationConfig utoMLCandidateGenerationConfigCandidateGenerationConfig V2 のタイプの A utoMLProblemTypeConfigTabularJobConfig..CandidateGenerationConfig に移動した方法JSONを示しています。

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

    以下は、V2 で InputDataConfig (AutoMLChannel の配列) が AutoMLJobInputDataConfig (A utoMLJobチャネルの配列) に変更された方法JSONを示しています。属性 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" } } } ] }