本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AutoML 为表格数据创建回归或分类作业 API
您可以使用 Autopilot 支持的任何语言调用CreateAutoMLJobV2
API操作,以编程方式为表格数据创建 Autopilot 回归或分类作业。 Amazon CLI以下是该操作的必填和可选输入请求参数的CreateAutoMLJobV2
API集合。您可以找到此操作先前版本 CreateAutoMLJob
的备用信息。但是,我们建议使用 CreateAutoMLJobV2
。
有关此API操作如何转换为所选语言的函数的信息,请参阅的 “另请参阅” 部分CreateAutoMLJobV2
并选择。SDK例如,对于 Python 用户,请参阅 Amazon SDK for Python (Boto3)中 create_auto_ml_job_v2
的完整请求语法。
注意
CreateAutoMLJobV2和DescribeAutoMLJobV2是的新版本,CreateAutoMLJobDescribeAutoMLJob它们提供了向后兼容性。
我们建议使用 CreateAutoMLJobV2
。CreateAutoMLJobV2
可以管理与其先前版本 CreateAutoMLJob
相同的表格问题类型,以及非表格问题类型,例如图像或文本分类或者时间序列预测。
至少,所有基于表格数据的实验都需要指定实验名称,提供输入和输出数据的位置,并指定要预测的目标数据。或者,您还可以指定要解决的问题类型(回归、分类、多类分类),选择建模策略(堆叠集合或超参数优化),选择 Autopilot 作业用来训练数据的算法列表等等。
实验运行后,您可以比较试验并深入研究每个模型的预处理步骤、算法和超参数范围的详细信息。您还可以选择下载他们的解释功能和性能报告。使用提供的笔记本查看自动数据探索的结果或候选模型定义。
在将 a 迁移 CreateAutoMLJob到 CreateAuto MLJobV2 中查找有关如何将 CreateAutoMLJob
迁移到 CreateAutoMLJobV2
的指南。
必需参数
所有其他参数都是可选的。
可选参数
以下各节提供了一些可选参数的详细信息,在使用表格数据时,您可以将这些参数传递给您的CreateAutoMLJobV2
API操作。您可以找到此操作先前版本 CreateAutoMLJob
的备用信息。但是,我们建议使用 CreateAutoMLJobV2
。
对于表格数据,在您的数据上运行用于训练候选模型的算法集取决于您的建模策略(ENSEMBLING
或 HYPERPARAMETER_TUNING
)。以下将详细介绍如何设置此训练模式。
如果保留空白(或为 null
),则 Mode
根据数据集的大小进行推理。
有关 Autopilot 的堆叠组合和超参数优化训练方法的信息,请参阅训练模式和算法支持
特征选择
Autopilot 提供自动数据预处理步骤,包括特征选择和特征提取。但是,您可以使用 FeatureSpecificatioS3Uri
属性手动提供要在训练中使用的特征。
所选要素应包含在以下格式JSON的文件中:
{ "FeatureAttributeNames":["col1", "col2", ...] }
["col1", "col2", ...]
中列出的值区分大小写。它们应该是包含唯一值的字符串列表,这些值是输入数据中列名的子集。
注意
提供作为特征的列的列表不能包括目标列。
算法选择
默认情况下,您的 Autopilot 作业会在数据集上运行预定义的算法列表,以训练候选模型。算法列表取决于作业使用的训练模式(ENSEMBLING
或 HYPERPARAMETER_TUNING
)。
您可以提供默认算法选择的子集。
有关各种训练 Mode
可用算法的列表,请参阅 AutoMLAlgorithms
。有关每种算法的详细信息,请参阅训练模式和算法支持。
您可以提供自己的验证数据集和自定义的数据拆分比率,也可以让 Autopilot 自动拆分数据集。
有关 Autopilot 中的拆分和交叉验证的信息,请参阅 Autopilot 中的交叉验证。
注意
在某些情况下,Autopilot 无法以足够高的置信度推理 ProblemType
,在这种情况下,您必须提供值以使作业成功。
您可以向表格数据集添加样本权重列,然后将其传递给 AutoML 作业,以请求在训练和评估期间对数据集行进行加权。
只有组合模式支持样本加权。您的权重应为非负数字。没有权重值或权重值无效的数据点被排除。有关可用目标指标的更多信息,请参阅 Autopilot 加权指标。
您可以将 AutoML 作业 V2 配置为在需要额外计算资源来处理大型数据集时自动在 Amazon EMR Serverless 上启动远程作业。通过在需要时EMR无缝过渡到 Serverless,AutoML 作业可以处理原本会超过初始配置资源的数据集,而无需您进行任何手动干预。EMR无服务器适用于表格和时间序列问题类型。我们建议为大于 5 GB 的表格数据集设置此选项。
要允许 AutoML 作业 V2 自动过渡到大型数据集的 EMR Serverless,您需要为 AutoML 作业 V2 输入请求的EmrServerlessComputeConfig
AutoMLComputeConfig
对象提供一个包含ExecutionRoleARN
字段的对象。
ExecutionRoleARN
是授予 AutoML 作业 V2 运行EMR无服务器作业所需的权限的IAM角色。ARN
此角色应具有以下信任关系:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
并授予以下权限:
-
创建、列出和更新EMR无服务器应用程序。
-
在EMR无服务器应用程序上启动、列出、获取或取消作业运行。
-
标记EMR无服务器资源。
-
将IAM角色传递给EMR无服务器服务以供执行。
通过授予
iam:PassRole
权限,AutoML 作业 V2 可以临时担任该EMRServerlessRuntimeRole-*
角色并将其传递给无服务器服务。EMREMR无服务器任务执行环境使用这些IAM角色来访问运行时所需的其他 Amazon 服务和资源,例如 Amazon S3,用于访问数据、 CloudWatch 记录、访问 Amazon Glue 数据目录或其他基于您的工作负载要求的服务。
提供的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}" + } + } } ] }
将 a 迁移 CreateAutoMLJob到 CreateAuto MLJobV2
我们建议 CreateAutoMLJob
的用户迁移到 CreateAutoMLJobV2
。
本节CreateAutoMLJobV2通过突出显示两个版本之间输入请求的对象CreateAutoMLJob和属性的位置、名称或结构的变化来说明两者之间输入参数的差异。
-
在两个版本之间没有变化的请求属性。
{ "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
。 -
在两个版本之间,以下属性的位置和结构发生了变化。
以下内容JSON说明了 A utoMLJob Config 是如何实现的。 CandidateGenerationConfigA 型utoMLCandidateGenerationConfig已移至 A utoMLProblem TypeConfig。 TabularJobConfig。 CandidateGenerationConfigCandidateGenerationConfig在 V2 中属于类型。
-
名称和结构发生了变化的请求属性。
下面JSON说明了 V2 中 InputDataConfig(A 的数组utoMLChannel)是如何变成 A utoMLJob InputDataConfig(A utoMLJob 通道数组)的。请注意,属性
SampleWeightAttributeName
和TargetAttributeName
从InputDataConfig
中移出并移入到AutoMLProblemTypeConfig
中。