本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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
。
尋找有關如何將 將電子 CreateAuto工作移轉至 MLJobv2 CreateAuto 的 CreateAutoMLJob
移轉到 CreateAutoMLJobV2
的指南。
必要參數
- CreateAutoMLJobV2
-
當呼叫 CreateAutoMLJobV2
建立表格式資料的 Autopilot 實驗時,您必須提供下列值:
- CreateAutoMLJob
-
當呼叫 CreateAutoMLJob
建立 AutoML 實驗時,您必須提供以下四個值:
所有其他參數都是選用參數。
選用的參數
下列各節提供一些選用參數的詳細資訊,您可以在使用表格式資料時傳送至 CreateAutoMLJobV2
API 操作。您可以找到此操作先前版本的替代資訊 CreateAutoMLJob
。不過,我們建議您使用 CreateAutoMLJobV2
。
對於表格式資料,在資料上執行訓練模型候選模型的演算法集取決於您的建模策略 (ENSEMBLING
或 HYPERPARAMETER_TUNING
)。以下詳細說明如何設定此訓練模式。
如果您保留空白 (或 null
),則會根據您的資料集大小來推論 Mode
。
如需 Autopilot 的堆疊式整合與超參數最佳化訓練方法的資訊,請參閱 訓練模式與演算法支援
- CreateAutoMLJobV2
-
對於表格式資料,您必須選擇 TabularJobConfig
作為 AutoMLProblemTypeConfig
的類型。
您可以使用 TabularJobConfig.Mode
參數設定 AutoML 任務 V2 的訓練方法。
- CreateAutoMLJob
-
您可以使用 AutoMLJobConfig.Mode
參數設定 AutoML 任務的訓練方法。
特徵選取
Autopilot 提供自動資料預處理步驟,包括特徵選擇和特徵擷取。但是,您可以手動提供要在訓練 FeatureSpecificatioS3Uri
屬性時使用的特徵。
選取的特徵應包含在以下格式的 JSON 檔案中:
{ "FeatureAttributeNames":["col1", "col2", ...] }
["col1", "col2", ...]
中所列出的值會區分大小寫。它們應該是包含唯一值的字串清單,這些值是輸入資料中列名稱的子集。
- CreateAutoMLJobV2
-
對於表格式資料,您必須選擇 TabularJobConfig
作為 AutoMLProblemTypeConfig
的類型。
您可以使用 TabularJobConfig.FeatureSpecificatioS3Uri
參數將 URL 設定為您選取的特徵。
- CreateAutoMLJob
-
您可以使用下列格式在 CreateAutoMLJob API CandidateGenerationConfig 中設定 AutoML 的FeatureSpecificatioS3Uri
屬性:
{
"AutoMLJobConfig": {
"CandidateGenerationConfig": {
"FeatureSpecificationS3Uri":"string"
},
}
}
演算法選擇
預設情況下,您的 Autopilot 任務會在您的資料集執行預先定義的演算法清單來訓練候選模型。演算法清單取決於任務所使用的訓練模式 (ENSEMBLING
或 HYPERPARAMETER_TUNING
)。
您可以提供預設演算法選取的子集。
- CreateAutoMLJobV2
-
對於表格式資料,您必須選擇 TabularJobConfig
作為 AutoMLProblemTypeConfig
的類型。
您可以指定AlgorithmsConfig
屬性AutoMLAlgorithms
中選取的陣列CandidateGenerationConfig。
下面是 AlgorithmsConfig
屬性的例子,在其 AutoMLAlgorithms
欄位恰好列出了三種演算法 (「XGBoost」、「fastai」、「catboost」),用於整合訓練模式。
{
"AutoMLProblemTypeConfig": {
"TabularJobConfig": {
"Mode": "ENSEMBLING",
"CandidateGenerationConfig": {
"AlgorithmsConfig":[
{"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]}
]
},
},
},
}
- CreateAutoMLJob
-
您可以指定在 AutoML AlgorithmsConfig
CandidateGenerationConfig 屬性AutoMLAlgorithms
中選取的陣列。
下面是 AlgorithmsConfig
屬性的例子,在其 AutoMLAlgorithms
欄位恰好列出了三種演算法 (「XGBoost」、「fastai」、「catboost」),用於整合訓練模式。
{
"AutoMLJobConfig": {
"CandidateGenerationConfig": {
"AlgorithmsConfig":[
{"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]}
]
},
"Mode": "ENSEMBLING"
}
如需每項訓練的可用演算法清單 Mode
,請參閱 AutoMLAlgorithms
。如需每個演算法的詳細資訊,請參閱 訓練模式與演算法支援。
您可以提供自己的驗證資料集和自訂資料分割比例,或讓 Autopilot自動分割資料集。
- CreateAutoMLJobV2
-
每個AutoMLJobChannel
物件 (請參閱 AutoML 必要參數JobInputDataConfig) 都有ChannelType
,可以設定為training
或validation
值,這些值可指定建置機器學習模型時如何使用資料。至少必須提供一個資料來源,且最多允許兩個資料來源:一個用於訓練資料,另一個用於驗證資料。
如何將資料拆分為訓練資料集和驗證資料集取決於您是擁有一個還是兩個資料來源。
-
如果您只有一個資料來源,則 ChannelType
預設為 training
,並且必須具有此值。
-
如果您有兩個資料來源,則 AutoMLJobChannel
個物件之一的 ChannelType
必須設定為預設值 training
。另一個資料來源的 ChannelType
必須設定為 validation
。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet),以及相同的結構描述。在這種情況下,您不得設定 ValidationFraction
的值,因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。
- CreateAutoMLJob
-
每個AutoMLChannel
物件 (請參閱必要的參數 InputDataConfig) 都有一個ChannelType
,可以設定為training
或validation
值,指定建置機器學習模型時如何使用資料。至少必須提供一個資料來源,且最多允許兩個資料來源:一個用於訓練資料,另一個用於驗證資料。
如何將資料拆分為訓練資料集和驗證資料集取決於您是擁有一個還是兩個資料來源。
-
如果您只有一個資料來源,則 ChannelType
預設為 training
,並且必須具有此值。
-
如果您有兩個資料來源,則 AutoMLChannel
個物件之一的 ChannelType
必須設定為預設值 training
。另一個資料來源的 ChannelType
必須設定為 validation
。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet),以及相同的結構描述。在這種情況下,您不得設定 ValidationFraction
的值,因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。
如需 Autopilot 中的拆分與交叉驗證的相關資訊,請參閱 Autopilot 的交叉驗證。
- CreateAutoMLJobV2
-
對於表格式資料,您必須選擇 TabularJobConfig
作為 AutoMLProblemTypeConfig
的類型。
您可以使用 TabularJobConfig.ProblemType
參數進一步指定 AutoML 任務 V2 的模型候選項可用的監督學習問題類型 (二進位分類、多類別分類、迴歸)。
- CreateAutoMLJob
-
您可以使用 CreateAutoPilot.ProblemType
參數設定 AutoML 作業的問題類型。這限制了 Autopilot 嘗試的預處理類型和演算法。任務完成後,如果您已設定 CreateAutoPilot.ProblemType
,則 ResolvedAttribute.ProblemType
會符合您設定的 ProblemType
。如果您將其保留空白 (或 null
) ,則代表您推論出來的 ProblemType
。
在某些情況下,Autopilot 無法以夠高的可信度推論 ProblemType
,在這種情況下,您必須提供值,任務才會成功。
您可以將範例權重欄位新增至表格式資料集,然後將其傳遞至 AutoML 任務,以請求在訓練及評估期間對資料集行進行加權。
僅在整合模式下支援樣本權重。你的權重應該是數字且非負數。排除無效或沒有權重值的資料點。如需可用目標指標的詳細資訊,請參閱 Autopilot 加權指標。
- CreateAutoMLJobV2
-
對於表格式資料,您必須選擇 TabularJobConfig
作為 AutoMLProblemTypeConfig
的類型。
要在創建實驗時設置樣本權重(請參閱 CreateAutoMLJobv2),您可以在對象的SampleWeightAttributeName
屬性中傳遞樣本權重列的名稱。TabularJobConfig
這可確保您的目標指標使用權重來訓練、評估及選擇候選模型。
- CreateAutoMLJob
-
要在創建實驗時設置樣本權重(請參閱 CreateAutoMLJob),您可以在 AutoML Channel 對象的SampleWeightAttributeName
屬性中傳遞樣本權重列的名稱。這可確保您的目標指標使用權重來訓練、評估及選擇候選模型。
將電子 CreateAuto工作移轉至 MLJobv2 CreateAuto
我們建議 CreateAutoMLJob
的使用者移轉至 CreateAutoMLJobV2
。
本節說明 MLJ CreateAutoob 和 CreateAuto ML Jobv2 之間輸入參數的差異,方法是反白兩個版本之間的物件位置、名稱或結構中的變更,以及輸入要求的屬性。
-
請求在版本之間未變更的屬性。
{
"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 說明如何 AutoML JobConfig。 CandidateGenerationConfig的 AutoML 類型CandidateGenerationConfig已移至 Auto ProblemTypeConfig ML。 TabularJobConfig。 CandidateGenerationConfigCandidateGenerationConfig在 V2 中的類型。
- CreateAutoMLJob
-
{
"AutoMLJobConfig": {
"CandidateGenerationConfig": {
"AlgorithmsConfig": [
{
"AutoMLAlgorithms": [ "string" ]
}
],
"FeatureSpecificationS3Uri": "string"
}
}
- CreateAutoMLJobV2
-
{
"AutoMLProblemTypeConfig": {
"TabularJobConfig": {
"CandidateGenerationConfig": {
"AlgorithmsConfig": [
{
"AutoMLAlgorithms": [ "string" ]
}
],
},
}
},
}
-
請求變更名稱與結構的屬性。
下列 JSON 說明如何在 V InputDataConfig2 中變更為 AutoML (Auto JobChannel ML 的陣列) JobInputDataConfig (自動 ML 的陣列)。請注意,屬性 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"
}
}
}
]
}