使用 Spark ML 和 Scikit-learn 的特征处理 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Spark ML 和 Scikit-learn 的特征处理

在使用 Amazon SageMaker 内置算法或自定义算法训练模型之前,您可以使用 Spark 和 scikit-learn 预处理器转换您的数据和特征工程。

使用 Spark ML 的特征处理

您可以从您的 SageMaker 笔记本,通过 Amazon Glue 运行 Spark ML 作业,这是一项无服务器 ETL(提取、转换、加载)服务。您还可以连接到现有 EMR 集群以使用 Amazon EMR 运行 Spark ML 作业。为此,您需要 Amazon Identity and Access Management (IAM) 角色,该角色授予可从您的 SageMaker 笔记本向 Amazon Glue 发出调用的权限。

注意

要查看 Amazon Glue 支持哪些 Python 和 Spark 版本,请参阅 Amazon Glue 发行说明

在设计特征之后,您可以将带有 MLeap 的 Spark ML 作业打包并序列化为 MLeap 容器,您可以将这样的容器添加到推理管道中。您不需要使用外部管理的 Spark 集群。使用此方法,您可以从几个示例行无缝扩展到数 TB 的数据。相同的转换器可同时在训练和推理期间使用,因此您不需要重复预处理和特征设计逻辑,或者开发一次性解决方案来保存这些模型。借助推导管道,您不需要维护外部基础设施,可以直接利用数据输入进行预测。

当您在 Amazon Glue 上运行 Spark ML 作业时,Spark ML 管道序列化为 MLeap 格式。然后,您可以将该作业与 SageMaker Inference 管道中的 SparkML 模型处理容器一起使用。MLeap 是一种用于机器学习管道的序列化格式和执行引擎。它支持 Spark、Scikit-learn 和 TensorFlow,用于训练管道并将其导出到称为 MLeap Bundle 的序列化管道中。您可以将服务包反序列化到 Spark 用于批量模式评分,或者反序列化到 MLeap 运行时以强化实时 API 服务。

有关展示如何使用 Spark ML 进行特征处理的示例,请参阅使用 Amazon EMR 中的 Apache Spark 训练 ML 模型并部署在 SageMaker 中示例笔记本。

使用 Scikit-Learn 的特征处理

您可以直接在 Amazon SageMaker 中运行 scikit-learn 作业并将其打包到容器中。在一个 Python 代码示例中,生成通过费雪鸢尾花卉数据集进行训练的 scikit-learn 特征化模型并根据形态指标来预测鸢尾花。有关该示例,请参阅使用 Sagemaker Scikit-learn 的 IRIS 训练和预测