Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AutoML API 为表格数据创建回归或分类作业
您可以在 Autopilot 或 Amazon CLI支持的任何语言中,通过调用 CreateAutoMLJobV2
API 操作,以编程方式为表格数据创建 Autopilot 实验。
有关此 API 操作如何转换为所选语言中函数的信息,请参阅 CreateAutoMLJobV2
中的另请参阅部分并选择 SDK。例如,对于 Python 用户,请参阅 Amazon SDK for Python (Boto3)中 create_auto_ml_job_v2
的完整请求语法。
至少,所有基于表格数据的实验都需要指定实验名称,提供输入和输出数据的位置,并指定要预测的目标数据。或者,您还可以指定要解决的问题类型(回归、分类、多类分类),选择建模策略(堆叠集合或超参数优化),选择 Autopilot 作业用来训练数据的算法列表等等。
实验运行后,您可以比较试验并深入研究每个模型的预处理步骤、算法和超参数范围的详细信息。您还可以选择下载他们的解释功能和性能报告。使用提供的笔记本查看自动数据探索的结果或候选模型定义。
以下参数集合介绍了 CreateAutoMLJobV2
API 操作的必需和可选输入请求参数。您可以找到此操作先前版本 CreateAutoMLJob
的备用信息。但是,我们建议使用 CreateAutoMLJobV2
。
在将 mlJob 迁移到 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
-
你可以在 MLJo CreateAutob API CandidateGenerationConfig 中使用以下格式设置 autoM L 的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
-
您可以在 a ut CandidateGenerationConfig oML 的AlgorithmsConfig
属性AutoMLAlgorithms
中指定选定的数组。
以下是一个 AlgorithmsConfig
属性示例,在 AutoMLAlgorithms
字段中列出了用于组合模式的三种算法(“xgboost”、“fastai”、“catboost”)。
{
"AutoMLJobConfig": {
"CandidateGenerationConfig": {
"AlgorithmsConfig":[
{"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]}
]
},
"Mode": "ENSEMBLING"
}
有关各种训练 Mode
可用算法的列表,请参阅 AutoMLAlgorithms
。有关每种算法的详细信息,请参阅训练模式和算法支持。
您可以提供自己的验证数据集和自定义的数据拆分比率,也可以让 Autopilot 自动拆分数据集。
- CreateAutoMLJobV2
-
每个AutoMLJobChannel
对象(参见必填参数 a utoML 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),可以在 A utoml Channel 对象的SampleWeightAttributeName
属性中传递样本权重列的名称。这样可以确保您的目标指标使用这些权重来训练、评估和选择候选模型。
将 mlJob 迁移到 CreateAuto mlJobv2 CreateAuto
我们建议 CreateAutoMLJob
的用户迁移到 CreateAutoMLJobV2
。
本节通过重点介绍两个版本之间输入请求的对象和属性的位置、名称或结构的变化,解释了 CreateAutoMLJo CreateAutob 和 MLJobv2 之间输入参数的差异。
-
在两个版本之间没有变化的请求属性。
{
"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的 a utoML 类型CandidateGenerationConfig已移至 autoML。ProblemTypeConfig TabularJobConfig。 CandidateGenerationConfigCandidateGenerationConfig在 V2 中属于类型。
- CreateAutoMLJob
-
{
"AutoMLJobConfig": {
"CandidateGenerationConfig": {
"AlgorithmsConfig": [
{
"AutoMLAlgorithms": [ "string" ]
}
],
"FeatureSpecificationS3Uri": "string"
}
}
- CreateAutoMLJobV2
-
{
"AutoMLProblemTypeConfig": {
"TabularJobConfig": {
"CandidateGenerationConfig": {
"AlgorithmsConfig": [
{
"AutoMLAlgorithms": [ "string" ]
}
],
},
}
},
}
-
名称和结构发生了变化的请求属性。
以下 JSON 说明了 InputDataConfig(AutoMLChannel 数组)是如何在 V2 中更改为 autoM LJobInputDataConfig(A utoML 数组)的。JobChannel请注意,属性 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"
}
}
}
]
}