翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AutoML API を使用して表形式データの回帰または分類ジョブを作成する
Autopilot または AWS CLIがサポートする任意の言語で CreateAutoMLJobV2
API アクションを呼び出すことで、表形式データの Autopilot 実験をプログラムで作成できます。
この API アクションが選択した言語の関数にどのように変換されるかについては、「CreateAutoMLJobV2
」の「関連項目」セクションを参照して SDK を選択してください。例として、Python ユーザーの場合は、「 AWS SDK for Python (Boto3)」の「create_auto_ml_job_v2
のすべてのリクエスト構文」を参照してください。
少なくとも、表形式データに対するすべての実験には、実験名の指定、入出力データの場所、予測するターゲットデータの指定が必要です。オプションで、解決する問題のタイプ (回帰、分類、多クラス分類)、モデリング戦略の選択 (スタックアンサンブルまたはハイパーパラメータの最適化 )、Autopilot ジョブがデータのトレーニングに使用するアルゴリズムのリストの選択などを行うこともできます。
実験の実行後、トライアルを比較し、各モデルの前処理ステップ、アルゴリズム、ハイパーパラメータ範囲の詳細を詳しく調べることができます。また、説明可能性のレポートやパフォーマンスのレポートをダウンロードすることもできます。提供されたノートブックを使用して、自動データ探索の結果や候補となるモデル定義を確認します。
CreateAutoMLJobV2
API アクションの必須およびオプションの入力リクエストパラメータを以下に示します。このアクションの以前のバージョン CreateAutoMLJob
に関する代替情報もあります。ただし、CreateAutoMLJobV2
を使用することをお勧めします。
CreateAutoMLJob
を CreateAutoMLJobV2
に移行する方法に関するガイドラインについては、「 CreateAutoMLJob を CreateAutoMLJobV2 に移行する」を参照してください。
必須パラメータ
- CreateAutoMLJobV2
-
CreateAutoMLJobV2
を呼び出して、表形式データの Autopilot 実験を作成するためには、次の値を指定する必要があります。
- CreateAutoMLJob
-
CreateAutoMLJob
を呼び出して、AutoML 実験を作成するには、次の 4 つの値を指定する必要があります。
その他のすべてのパラメータは省略可能です。
任意指定のパラメータ
次のセクションでは、表形式データを使用する場合に 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
-
AutoMLCandidateGenerationConfig の FeatureSpecificatioS3Uri
属性は、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
-
AutoMLCandidateGenerationConfig の AlgorithmsConfig
属性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
に設定され、この値を持つ必要があります。
-
データソースが 2 つである場合は、AutoMLJobChannel
オブジェクトの 1 つの ChannelType
を training
(デフォルト値) に設定する必要があります。他のデータソースの ChannelType
は validation
に設定する必要があります。2 つのデータソースは、同じ形式 (CSV または Parquet) と同じスキーマを持つ必要があります。この場合、ValidationFraction
の値を設定してはいけません。各ソースのすべてのデータがトレーニングまたは検証に使用されるためです。この値を設定すると、エラーが発生します。
- CreateAutoMLJob
-
各AutoMLChannel
オブジェクト (必須パラメータ を参照InputDataConfig) には がありChannelType
、機械学習モデルを構築するときにデータをどのように使用するかを指定する training
または validation
の値に設定できます。少なくとも 1 つのデータソースを指定する必要があり、最大 2 つのデータソースを指定できます。1 つはトレーニングデータ用、もう 1 つは検証データ用です。
データをトレーニングデータセットと検証データセットに分割する方法は、データソースが 1 つか 2 つかによって異なります。
-
データソースが 1 つのみである場合、ChannelType
はデフォルトで training
に設定され、この値を持つ必要があります。
-
データソースが 2 つである場合は、AutoMLChannel
オブジェクトの 1 つの ChannelType
を training
(デフォルト値) に設定する必要があります。他のデータソースの ChannelType
は validation
に設定する必要があります。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 つのバージョン間の入力リクエストのオブジェクトと属性の位置、名前、または構造の変更を強調表示することで、CreateAutoMLJob と CreateAutoMLJobV2 の入力パラメータの違いについて説明します。
-
バージョン間で変更されていないリクエスト属性。
{
"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 は、AutoMLJobConfig タイプの CandidateGenerationConfigAutoMLCandidateGenerationConfigが CandidateGenerationConfig 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
および 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"
}
}
}
]
}