由 Amazon SageMaker Data Wrangler PlatoBlockchain 数据智能提供支持的笔记本电脑的交互式数据准备小部件。 垂直搜索。 人工智能。

由 Amazon SageMaker Data Wrangler 提供支持的笔记本交互式数据准备小部件

根据 Anaconda 对数据科学家进行的 2020 年调查,数据准备是机器学习 (ML) 和数据分析工作流程中的关键步骤之一,而且对于数据科学家来说通常非常耗时。 数据科学家将大约 66% 的时间花在数据准备和分析任务上,包括加载 (19%)、清理 (26%) 和可视化数据 (21%)。

亚马逊SageMaker Studio 是第一个完全集成的 ML 开发环境 (IDE)。 只需单击一下,数据科学家和开发人员就可以快速启动 工作室笔记本 探索数据集和建立模型。 如果您更喜欢基于 GUI 的交互式界面,您可以使用 亚马逊SageMaker数据牧马人,具有 300 多个内置可视化、分析和转换功能,无需编写一行代码即可高效处理由 Spark 支持的数据。

数据管理员 现在提供内置的数据准备功能 Amazon SageMaker Studio 笔记本 这使机器学习从业者能够直观地查看数据特征、识别问题并修复数据质量问题——只需直接在笔记本中单击几下即可。

在这篇文章中,我们向您展示了如何 数据管理员 数据准备小部件会在 Pandas 数据框之上自动生成关键的可视化效果,以了解数据分布、检测数据质量问题和表面数据洞察力,例如每个特征的异常值。 它有助于与数据交互并发现临时查询可能不会引起注意的见解。 它还会建议进行修复的转换,使您能够在 UI 上应用数据转换并在笔记本单元格中自动生成代码。 此功能在 SageMaker Studio 可用的所有区域均可用。

解决方案概述

让我们进一步了解这个新的小部件如何使数据探索变得更加容易,并提供无缝体验来改善数据工程师和从业者的整体数据准备体验。 对于我们的用例,我们使用了修改后的版本 泰坦尼克号数据集,ML 社区中的一个流行数据集,现在已添加为 样本数据集 这样您就可以快速开始使用 SageMaker Data Wrangler。 原始数据集来自 开放机器学习, 并修改以添加亚马逊为此演示添加的合成数据质量问题。 您可以从公共 S3 路径下载数据集的修改版本 s3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv.

先决条件

要亲身体验本文中描述的所有功能,请完成以下先决条件:

  1. 确保您拥有 AWS 账户,通过 AWS管理控制台AWS身份和访问管理 (IAM) 使用权限 亚马逊SageMaker亚马逊简单存储服务 (Amazon S3) 资源。
  2. 使用公共 S3 路径中的示例数据集 s3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv 或替代 将其上传到 S3 存储桶 在您的帐户中。
  3. 加入 SageMaker 域并访问 Studio 以使用笔记本。 有关说明,请参阅 加入 Amazon SageMaker 域. 如果您使用的是现有 Studio,请升级到 最新版本的工作室.

启用数据探索小部件

当您使用 Pandas 数据框时,Studio notebook 用户可以手动启用数据探索小部件,以便默认情况下在每列顶部显示新的可视化效果。 该小部件显示数字数据的直方图和其他类型数据的条形图。 这些表示使您能够快速理解数据分布并发现缺失值和异常值,而无需为每一列编写样板方法。 您可以将鼠标悬停在每个视觉对象的栏上,以快速了解分布情况。

打开 Studio 并创建一个新的 Python 3 笔记本。 确保选择 数据科学3.0 来自 SageMaker 图像的图像通过单击 改变环境 按钮。

下图中提供了数据探索小部件。 有关默认 SageMaker 图像的列表,请参阅 可用的 Amazon SageMaker 图像.

  • Python 3(数据科学)与 Python 3.7
  • Python 3(数据科学 2.0)与 Python 3.8
  • Python 3(数据科学 3.0)与 Python 3.10
  • Spark 分析 1.0 和 2.0

要使用此小部件,请导入 SageMaker_DataWrangler 图书馆。 加载泰坦尼克号数据集的修改版本 S3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv 并使用 Pandas 库读取 CSV:

import pandas as pd
import boto3
import io
import sagemaker_datawrangler

s3 = boto3.client('s3')
obj = s3.get_object(Bucket='sagemaker-sample-files', Key='datasets/tabular/dirty-titanic/titanic-dirty-4.csv')
df = pd.read_csv(io.BytesIO(obj['Body'].read()))

数据管理员数据准备小部件 - 示例笔记本

可视化数据

数据加载到 Pandas 数据框中后,您只需使用即可查看数据 df or display(df). 除了列出行之外,数据准备小部件还会生成有关数据质量的见解、可视化和建议。 您无需编写任何额外的代码来生成特征和目标见解、分布信息或渲染数据质量检查。 您可以选择数据框表的标题来查看显示数据质量警告的统计摘要(如果有)。

可视化数据

每列根据数据类型显示条形图或直方图。 默认情况下,该小部件最多采样 10,000 个观察结果以生成有意义的见解。 它还提供了对整个数据集运行洞察分析的选项。

如以下屏幕截图所示,此小部件标识列是否具有分类数据或定量数据。

分类或定量数据

对于分类数据,小部件生成包含所有类别的条形图。 在下面的截图中,例如,列 Sex 标识数据的类别。 您可以将鼠标悬停在栏上( 在这种情况下)查看这些类别的详细信息,例如具有该值的总行数 male 及其在整个可视化数据集中的分布(本例中为 64.07%)。 它还以不同颜色突出显示分类数据缺失值的总百分比。 对于定量数据,如 ticket 列,它显示分布以及无效值的百分比。

如果你想在笔记本中看到一个标准的 Pandas 可视化,你可以选择 查看 Pandas 表 并在小部件和 Pandas 表示之间切换,如以下屏幕截图所示。

查看 Pandas 表

查看数据整理表

要获得有关列中数据的更多详细信息,请选择列的标题以打开专用于该列的侧面板。 在这里您可以观察到两个选项卡: 行业洞见数据质量.

见解和数据质量

在以下部分中,我们将更详细地探讨这两个选项。

行业洞见

行业洞见 选项卡提供详细信息以及每列的说明。 此部分列出聚合统计信息,例如模式、唯一值的数量、缺失/无效值的比率和计数等,并借助直方图或条形图可视化数据分布。 在以下屏幕截图中,您可以查看为所选列生成的易于理解的可视化显示的数据洞察力和分布信息 survived.

数据质量

工作室数据准备小部件通过标题中的警告标志突出显示已识别的数据质量问题。 Widget 可以识别从基础(缺失值、常量列等)到更具体的 ML(目标泄漏、低预测分数特征等)的所有数据质量问题。 Widget 突出显示导致数据质量问题的单元格并重新组织行以将有问题的单元格放在顶部。 为了解决数据质量问题,小部件提供了几个转换器,只需单击一个按钮即可应用。

要浏览数据质量部分,请选择列标题,然后在侧面板中选择 数据质量 标签。 您应该会在 Studio 环境中看到以下内容。

数据质量选项卡

让我们看看可用的不同选项 数据质量 标签。 本例我们选择年龄列,根据数据检测为定量列。 正如我们在下面的屏幕截图中看到的,此小部件会建议您可以应用的不同类型的转换,包括最常见的操作,例如 替换为新值, 掉落丢失, 替换为中位数替换为均值. 您可以根据用例(您要解决的 ML 问题)为您的数据集选择其中任何一个。 它还为您提供 下降柱 如果您想完全删除该功能,请选择此选项。

年龄

当你选择 应用和导出代码,转换应用于数据框的深层副本。 成功应用转换后,数据表将刷新为洞察力和可视化效果。 转换代码在笔记本中的现有单元格之后生成。 您可以稍后运行此导出的代码以在您的数据集上应用转换,并根据您的需要扩展它。 您可以通过直接修改生成的代码来自定义转换。 如果我们应用 掉落丢失 Age 列中的选项,将以下转换代码应用于数据集,并且代码也在小部件下方的单元格中生成:

#Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) 

#Code to Drop missing for column: age to resolve warning: Missing values 
output_df = output_df[output_df['age'].notnull()]

以下是另一个代码片段示例 替换为中位数:

#Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) 

#Code to Replace with median for column: age to resolve warning: Missing values 
output_df['age']=output_df['age'].fillna(output_df['age'].median(skipna=True))

现在让我们看看数据准备小部件的目标洞察能力。 假设您要使用 survived 功能来预测乘客是否会幸存。 选择 survived 列标题。 在侧面板中,选择 选择作为目标列. 理想的数据分布 survived 功能应该只有两个类:是(1) 或者没有 (0),这有助于对泰坦尼克号坠毁幸存机会进行分类。 但是,由于所选目标列中的数据不一致,幸存的特征具有 0, 1, ?, unknownyes.

选择作为目标列

根据选择的目标列选择问题类型,可以是 分类 or 数据复原测试. 对于 survived 列,问题类型是分类。 选择 运行 为目标列生成见解。

幸存

数据准备小部件列出了目标列见解以及建议和示例解释,以解决目标列数据质量问题。 它还会自动突出显示列中的异常数据。

目标列见解与建议

我们选择推荐的变换 丢弃罕见的目标值,因为对稀有目标值的观察较少。

掉落稀有目标值

将所选转换应用于 Pandas 数据框,并从幸存列中消除不常见的目标值。 请参见以下代码:

# Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True)

# Code to Drop rare target values for column: survived to resolve warning: Too few instances per class 
rare_target_labels_to_drop = ['?', 'unknown', 'yes']
output_df = output_df[~output_df['survived'].isin(rare_target_labels_to_drop)]

应用转换的结果会立即显示在数据框中。 要跟踪使用数据准备小部件应用的数据准备活动,还会在以下笔记本单元格中生成转换后的代码。

结论

在本文中,我们提供了有关 Studio 数据准备小部件如何帮助您分析数据分布、探索该工具生成的数据质量见解以及发现潜在问题(例如每个关键特征的异常值)的指南。 这有助于提高整体数据质量,帮助您训练高质量的模型,并且它允许您在用户界面上转换数据并自动为笔记本单元生成代码,从而消除了无差别的繁重工作。 然后,您可以在 MLOps 管道中使用此代码来构建可重复性,避免在重复性任务上浪费时间,并通过加快数据整理管道的构建和部署来减少兼容性问题。

如果您是 SageMaker Data Wrangler 或 Studio 的新手,请参阅 开始使用 SageMaker Data Wrangler. 如果您对这篇文章有任何疑问,请在评论部分添加。


作者简介

由 Amazon SageMaker Data Wrangler PlatoBlockchain 数据智能提供支持的笔记本电脑的交互式数据准备小部件。 垂直搜索。 人工智能。帕特·帕特尔(Parth Patel) 是旧金山湾区 AWS 的解决方案架构师。 Parth 指导客户加速他们的云之旅,并帮助他们成功地采用 AWS 云并在其中成长。 他专注于机器学习、环境可持续性和应用程序现代化。

由 Amazon SageMaker Data Wrangler PlatoBlockchain 数据智能提供支持的笔记本电脑的交互式数据准备小部件。 垂直搜索。 人工智能。伊莎杜阿 是旧金山湾区的一名高级解决方案架构师。 她帮助 AWS Enterprise 客户了解他们的目标和挑战,并指导他们如何以云原生方式构建他们的应用程序,同时确保他们的弹性和可扩展性。 她对机器学习技术和环境可持续性充满热情。

由 Amazon SageMaker Data Wrangler PlatoBlockchain 数据智能提供支持的笔记本电脑的交互式数据准备小部件。 垂直搜索。 人工智能。哈里哈兰苏雷什 是 AWS 的高级解决方案架构师。 他热衷于数据库、机器学习和设计创新解决方案。 在加入 AWS 之前,Hariharan 是一名产品架构师、核心银行实施专家和开发人员,并在 BFSI 组织工作了 11 年多。 除了技术,他还喜欢滑翔伞和骑自行车。

由 Amazon SageMaker Data Wrangler PlatoBlockchain 数据智能提供支持的笔记本电脑的交互式数据准备小部件。 垂直搜索。 人工智能。丹尼·米切尔 是 Amazon Web Services 的 AI/ML 专家解决方案架构师。 他专注于计算机视觉用例,并帮助欧洲、中东和非洲地区的客户加速他们的 ML 之旅。

时间戳记:

更多来自 AWS机器学习