使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot 进行统一的数据准备和模型训练

数据推动机器学习 (ML); 数据的质量直接影响 ML 模型的质量。 因此,提高数据质量和采用正确的特征工程技术对于创建准确的 ML 模型至关重要。 ML 从业者经常在特征工程、算法选择和 ML 的其他方面进行繁琐的迭代,以寻找能够很好地概括真实世界数据并提供所需结果的最佳模型。 因为开展业务的速度非常重要,所以这个极其繁琐和反复的过程可能会导致项目延迟和失去商业机会。

亚马逊SageMaker数据牧马人 将 ML 汇总和准备数据的时间从几周缩短到几分钟,并且 亚马逊SageMaker自动驾驶仪 根据您的数据自动构建、训练和调整最佳 ML 模型。 使用 Autopilot,您仍然可以保持对数据和模型的完全控制和可见性。 这两项服务都是专门为提高机器学习从业者的工作效率和加快实现价值而设计的。

Data Wrangler 现在提供统一的体验,使您能够准备数据并在 Autopilot 中无缝训练 ML 模型。 借助这项新推出的功能,您现在可以在 Data Wrangler 中准备数据,并直接从 Data Wrangler 用户界面 (UI) 轻松启动 Autopilot 实验。 只需单击几下,您就可以自动构建、训练和调整 ML 模型,从而更轻松地采用最先进的特征工程技术、训练高质量的 ML 模型并更快地从数据中获得洞察力。

在这篇文章中,我们将讨论如何使用 Data Wrangler 中这种全新的集成体验来分析数据集并在 Autopilot 中轻松构建高质量的 ML 模型。

数据集概述

皮马印第安人是居住在墨西哥和美国亚利桑那州的土著群体。 研究 显示皮马印第安人是糖尿病的高危人群。 预测个人患糖尿病等慢性疾病的风险和易感性的概率是改善这一通常人数不足的少数群体的健康和福祉的一项重要任务。

我们使用 Pima Indian Diabetes 公共数据集 预测个体对糖尿病的易感性。 我们专注于 Data Wrangler 和 Autopilot 之间的新集成,以准备数据并自动创建 ML 模型,而无需编写任何代码。

该数据集包含有关 21 岁或以上的 Pima Indian 女性的信息,并包括几个医学预测(独立)变量和一个目标(因)变量 Outcome。 下图描述了我们数据集中的列。

名字 产品描述
怀孕 怀孕次数
葡萄糖 2小时内口服葡萄糖耐量试验中的血浆葡萄糖浓度
血压 舒张压 (mm Hg)
皮肤厚度 三头肌皮褶厚度(mm)
胰岛素 2 小时血清胰岛素 (mu U/ml)
体重指数 体重指数(体重公斤/(身高米)^2)
糖尿病谱系 糖尿病谱系功能
年龄 年龄多年
成果 目标变量

数据集包含 768 条记录,共有 9 个特征。 我们将此数据集存储在 亚马逊简单存储桶 (Amazon S3) 作为 CSV 文件,然后将 CSV 从 Amazon S3 直接导入 Data Wrangler 流。

解决方案概述

下图总结了我们在这篇文章中完成的工作。[KT1]

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

数据科学家、医生和其他医学领域专家为患者数据提供有关血糖水平、血压、体重指数和其他用于预测患糖尿病可能性的特征的信息。 使用 Amazon S3 中的数据集,我们将数据集导入 Data Wrangler 以执行探索性数据分析 (EDA)、数据分析、特征工程,并将数据集拆分为训练和测试以进行模型构建和评估。

然后,我们使用 Autopilot 的新功能集成,直接从 Data Wrangler 界面快速构建模型。 我们根据 F-beta 得分最高的模型选择 Autopilot 的最佳模型。 在 Autopilot 找到最佳模型后,我们运行 SageMaker 批量转换 使用最佳模型的模型工件进行测试(保持)集以进行评估。

医学专家可以为经过验证的模型提供新数据,以预测患者是否可能患有糖尿病。 有了这些见解,医学专家可以及早开始治疗,以改善弱势群体的健康和福祉。 医学专家还可以通过在 Autopilot 中引用模型的详细信息来解释模型的预测,因为他们可以完全了解模型的可解释性、性能和工件。 除了从测试集中验证模型之外,这种可见性使医学专家对模型的预测能力更有信心。

我们将引导您完成以下高级步骤。

  1. 从 Amazon S3 导入数据集。
  2. 使用 Data Wrangler 执行 EDA 和数据分析。
  3. 执行特征工程以处理异常值和缺失值。
  4. 将数据拆分为训练集和测试集。
  5. 使用 Autopilot 训练和构建模型。
  6. 使用 SageMaker 笔记本在保留样本上测试模型。
  7. 分析验证和测试集的性能。

先决条件

完成以下先决条件步骤:

  1. 上传数据集 到您选择的 S3 存储桶。
  2. 确保您拥有必要的权限。 有关详细信息,请参阅 开始使用 Data Wrangler.
  3. 设置配置为使用 Data Wrangler 的 SageMaker 域。 有关说明,请参阅 加入 Amazon SageMaker 域.

使用 Data Wrangler 导入数据集

您可以将 Data Wrangler 数据流集成到您的 ML 工作流中,以简化和简化数据预处理和特征工程,只需很少甚至无需编码。 完成以下步骤:

  1. 创建一个新的 数据管理员流程.

如果这是您第一次打开 Data Wrangler,您可能需要等待几分钟才能准备好。

  1. 选择存储在 Amazon S3 中的数据集并将其导入 Data Wrangler。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

导入数据集后,您应该会在 Data Wrangler UI 中看到数据流的开始。 你现在有一个流程图。

  1. 选择旁边的加号 资料类型 并选择 编辑 确认 Data Wrangler 自动为您的数据列推断出正确的数据类型。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

如果数据类型不正确,您可以通过 UI 轻松修改它们。 如果存在多个数据源,您可以加入或连接它们。

我们现在可以创建分析并添加转换。

使用数据洞察报告执行探索性数据分析

探索性数据分析是 ML 工作流程的关键部分。 我们可以使用 Data Wrangler 的新数据洞察报告来更好地了解我们数据的概况和分布。 该报告包括汇总统计信息、数据质量警告、目标列洞察、快速模型以及有关异常行和重复行的信息。

  1. 选择旁边的加号 资料类型 并选择 获取数据洞察.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

  1. 针对 目标 ,选择 成果.
  2. 针对 问题类型, 和(可选)选择 分类.
  3. 创建.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

结果显示带有数据集统计信息的摘要数据。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

我们还可以使用直方图查看标记行的分布、使用快速模型特征对模型的预期预测质量的估计以及特征汇总表。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

我们不深入分析数据洞察报告的细节; 参考 利用 Amazon SageMaker Data Wrangler 中的数据质量和洞察力加速数据准备 有关如何使用数据洞察报告加快数据准备步骤的更多详细信息。

执行特征工程

既然我们已经在高层次上对输入列的分布进行了剖析和分析,那么提高数据质量的首要考虑因素可能是处理缺失值。

例如,我们知道零 (0) Insulin 列代表缺失值。 我们可以按照建议将零替换为 NaN. 但仔细检查后,我们发现其他列的最小值为 0,例如 Glucose, BloodPressure, SkinThicknessBMI. 我们需要一种处理缺失值的方法,但需要对作为有效数据的零列敏感。 让我们看看如何解决这个问题。

功能细节 部分,报告提出了一个 伪装的缺失值 该功能的警告 Insulin.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

因为零在 Insulin 列实际上是缺失数据,我们使用 将正则表达式转换为缺失 transform 将零值转换为空(缺失值)。

  1. 选择旁边的加号 时间 类型 并选择 地址 改造.
  2.   具备直接向名片者发送讯息或电邮.
  3. 针对 改造,选择 将正则表达式转换为缺失.
  4. 针对 输入 , 选择列 Insulin, Glucose, BloodPressure, SkinThicknessBMI.
  5. 针对 模式,输入 0.
  6. 预览地址 保存这一步。

下的 0 个条目 Insulin, Glucose, BloodPressure, SkinThicknessBMI 现在缺少值。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

Data Wrangler 为您提供了一些其他选项来修复缺失值。

  1. 我们通过估算的近似中位数来处理缺失值 Glucose 列。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

我们还希望确保我们的功能具有相同的规模。 我们不想仅仅因为它们包含更大的数字范围而意外地赋予某个特征更多的权重。 我们规范化我们的特征来做到这一点。

  1. 添加新 处理数值 变换和选择 刻度值.
  2. 针对 定标器,选择 最小-最大缩放器.
  3. 针对 输入列, 选择列 Pregnancies, BloodPressure, Glucose, SkinThickness, Insulin, BMIAge.
  4. 分钟0max.1.

这确保我们的特征在值之间 01.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

现在我们已经创建了一些特征,我们在构建模型之前将数据集分为训练和测试。

将数据拆分为训练和测试

在 ML 工作流程的模型构建阶段,您通过运行批量预测来测试模型的功效。 您可以留出测试或保留数据集进行评估,通过将预测与基本事实进行比较来查看模型的执行情况。 通常,如果更多模型的预测与 true 标签,我们可以确定模型表现良好。

我们使用 Data Wrangler 拆分数据集进行测试。 我们保留了 90% 的数据集用于训练,因为我们的数据集相对较小。 我们数据集的剩余 10% 用作测试数据集。 我们将在本文后面使用此数据集来验证 Autopilot 模型。

我们通过选择 拆分数据 变换与选择 随机拆分 作为方法。 我们将 0.9 指定为训练的拆分百分比,将 0.1 指定为测试的拆分百分比。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

随着数据转换和特色工程步骤的完成,我们现在可以训练模型了。

训练和验证模型

我们可以使用新的 Data Wrangler 与 Autopilot 的集成,直接从 Data Wrangler 数据流 UI 训练模型。

  1. 选择旁边的加号 数据集 并选择 火车模型.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

  1. 针对 亚马逊 S3 位置,指定 SageMaker 导出数据的 Amazon S3 位置。

Autopilot 使用此位置来自动训练模型,从而节省您必须定义 Data Wrangler 流的输出位置,然后必须定义 Autopilot 训练数据的输入位置的时间。 这带来了更加无缝的体验。

  1. 出口 和火车 使用 Autopilot 启动模型构建。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

Autopilot 自动选择训练数据的输入和输出位置。 您只需要指定目标列并单击 建立实验 训练你的模型。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

在保留样本上测试模型

Autopilot 完成实验后,我们可以查看训练结果并探索最佳模型。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

  1. 查看模型详细信息 为您想要的模型,然后选择 性能 模型详细信息页面上的选项卡。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

性能 选项卡显示几个模型测量测试,包括混淆矩阵、精度/召回曲线下面积 (AUCPR) 和接收器操作特征曲线下面积 (ROC)。 这些说明了模型的整体验证性能,但它们并没有告诉我们模型是否能很好地泛化。 我们仍然需要对看不见的测试数据进行评估,以了解该模型预测个体是否患有糖尿病的准确度。

为了确保模型足够好地泛化,我们将测试样本留作独立抽样。 我们可以在 Data Wrangler 流 UI 中执行此操作。

  1.  选择旁边的加号 数据集,选择 输出到,并选择 Amazon S3.

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

  1. 指定 Amazon S3 路径。

当我们在下一节中运行批量推理进行验证时,我们会参考此路径。

  1. 创建一个新的 SageMaker 笔记本以对保留样本执行批量推理并评估测试性能。 参考以下 GitHub回购 查阅 样本笔记本 运行批量推理进行验证。

分析验证和测试集性能

批量转换完成后,我们创建一个混淆矩阵来比较保留数据集的实际结果和预测结果。

我们从结果中看到 23 个真阳性和 33 个真阴性。 在我们的案例中,真正的阳性是指模型正确预测个体患有糖尿病。 相反,真正的否定是指模型正确预测个体没有糖尿病。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

在我们的案例中,准确率和召回率是重要的指标。 精度基本上测量所有预测患有糖尿病的人,有多少人真的患有糖尿病? 相比之下,回忆有助于衡量所有确实患有糖尿病的人,有多少人被预测患有糖尿病? 例如,您可能希望使用高精度模型,因为您希望尽可能多地治疗个体,尤其是如果第一阶段治疗对没有糖尿病的个体没有影响(这些是假阳性——那些被标记为患有糖尿病的个体)事实上他们没有)。

我们还绘制了 ROC 曲线 (AUC) 图下的面积来评估结果。 AUC 越高,模型在区分类别方面的能力就越好,在我们的例子中,这就是模型在区分糖尿病患者和非糖尿病患者方面的表现。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。

结论

在这篇文章中,我们演示了如何使用 Data Wrangler 和 Autopilot 集成您的数据处理、特色工程和模型构建。 我们重点介绍了如何直接从 Data Wrangler 用户界面使用 Autopilot 轻松训练和调整模型。 有了这个集成功能,我们可以在完成特征工程后快速构建模型,无需编写任何代码。 然后,我们参考了 Autopilot 的最佳模型,使用 AutoML 类和 SageMaker Python SDK 运行批量预测。

像 Data Wrangler 和 Autopilot 这样的低代码和 AutoML 解决方案无需具备深厚的编码知识来构建强大的 ML 模型。 开始使用数据管理员 今天来体验使用 ML 构建模型是多么容易 SageMaker自动驾驶仪.


作者简介

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。彼得·颂 是 AWS 的解决方案架构师,热衷于帮助客户从他们的数据中发现洞察力。 他一直在构建解决方案,以帮助公共和私营部门的组织做出数据驱动的决策。 他拥有所有 AWS 认证以及两项 GCP 认证。 他喜欢喝咖啡、做饭、保持活跃并与家人共度时光。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。普拉迪普·雷迪 是 SageMaker Low/No Code ML 团队的高级产品经理,该团队包括 SageMaker Autopilot、SageMaker Automatic Model Tuner。 工作之余,Pradeep 喜欢阅读、跑步和使用 raspberry pi 等手掌大小的计算机和其他家庭自动化技术进行探索。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。阿伦普拉萨特·香卡(Arunprasath Shankar) 是 AWS 的人工智能和机器学习 (AI/ML) 专家解决方案架构师,帮助全球客户在云中有效和高效地扩展他们的 AI 解决方案。 在业余时间,阿伦喜欢看科幻电影和听古典音乐。

使用 Amazon SageMaker Data Wrangler 和 Amazon SageMaker Autopilot PlatoBlockchain Data Intelligence 进行统一的数据准备和模型训练。 垂直搜索。 哎。斯鲁扬·戈普 是 SageMaker Low Code/No Code ML 的高级前端工程师,帮助 Autopilot 和 Canvas 产品的客户。 不编码时,Srujan 喜欢和他的狗 Max 一起跑步,听有声读物和 VR 游戏开发。

时间戳记:

更多来自 AWS机器学习