首先使用数据 Wrangler - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

首先使用数据 Wrangler

亚马逊 SageMaker 数据 Wrangler 是亚马逊的一项功能 SageMaker Studio。使用此部分可以了解如何访问和开始使用 Data Wrangler。执行以下操作:

  1. 完成中的每一步先决条件.

  2. 按照中过程操作访问数据 Wrangler开始使用数据 Wrangler。

先决条件

要使用 Data Wrangler,您必须满足以下先决条件。

  1. 要使用 Data Wrangler,你需要访问m5.4xlargeAmazon Elastic Compute Cloud (Amazon EC2) 实例。要了解如何查看配额以及如有必要,请求提高配额,请参阅Amazon服务配额.

  2. 配置中所述的所需权限安全和权限.

要使用 Data Wrangler,您需要一个活动的 Studio 实例。要了解如何启动新实例,请参阅注册到 Amazon SageMaker 域. 当你的 Studio 实例是什么时候Ready中的说明,使用中的说明访问数据 Wrangler.

访问数据 Wrangler

以下过程假定您已完成先决条件.

要在 Studio 中访问数据牧马人:

  1. 在要用于启动 Studio 的用户旁边,选择打开 Studio.

  2. 当 Studio 打开时,选择+登录新的数据流下卡ML 任务和组件. 这将在 Studio 中创建一个包含 .flow 文件的新目录,其中包含数据流。.flow 文件将在 Studio 中自动打开。

    您还可以通过选择以下方式创建新流File (文件),那么New,然后选择数据 Wrangler Flow在顶部导航栏中。

  3. (可选)重命名新目录和 .flow 文件。

  4. 在 Studio 中创建新的 .flow 文件时,您可能会在DATA Wrangler上面显示以下内容:

    数据 Wrangler 正在加载...

    该过程可能需要几分钟.

    只要KernelGateway应用程序Details页面是Pending. 要查看此应用程序的状态,请在亚马逊 SageMaker 工作室页面上,选择您用于访问 Studio 的用户的名称。在存储库的Details页面,你看到KernelGateway应用程序应用程序. 等到此应用程序状态为Ready开始使用数据 Wrangler。首次启动 Data Wrangler 可能需要 5 分钟左右。

  5. 要开始使用,请选择一个数据源并使用它导入数据集。请参阅导入了解更多信息。

    导入数据集时,它将显示在数据流中。要了解更多信息,请参阅 创建和使用数据 Wrangler 流

  6. 导入数据集后,Data Wrangler 会自动推断每列中的数据类型。选择+在旁边数据类型步骤然后选择编辑数据类型.

    重要

    将转换添加到数据类型步骤,你不能使用批量更新列类型更新类型.

  7. 使用数据流添加变换和分析。要了解详情,请参阅转换数据可视化.

  8. 要导出完整的数据流,请选择Export然后选择导出选项。要了解更多信息,请参阅 Export

  9. 最后,选择组件和注册表图标,然后选择DATA Wrangler从下拉列表中查看您创建的所有 .flow 文件。您可以使用此菜单查找数据流并在数据流之间移动。

启动 Data Wrangler 后,您可以使用以下部分介绍如何使用 Data Wrangler 创建机器学习数据准备流程。

更新数据 Wrangler

我们建议您定期更新 Data Wrangler Studio 应用程序以访问最新功能和更新。Data Wrangler 应用程序名称以sagemaker-数据响起. 要了解如何更新 Studio 应用,请参阅关闭并更新 Studio 应用.

演示:Data Wrangler 泰坦尼克号数据集演练

以下部分提供演练,可帮助您开始使用 Data Wrangler。本演练假定您已执行以下操作:访问数据 Wrangler并打开一个新的数据流文件,你打算用于演示。你可能想要将此 .flow 文件重命名为类似的内容titanic-demo.flow.

此演练使用Titanic 数据集. 该数据集包含首航的乘客的存活状况、年龄、性别和级别(作为经济地位的代表)RMS Titanic1912 年。

在本教程中,您将执行以下步骤。

  • 上传Titanic 数据集转到 Amazon Simple Storage Service (Amazon S3),然后将此数据集导入数据 Wrangler。

  • 使用 Data Wrangler 分析来分析此数据集。

  • 使用 Data Wrangler 数据转换来定义数据流。

  • 将流程导出到可用于创建 Data Wrangler 作业的 Jupyter 笔记本。

  • 处理你的数据,然后启动 SageMaker 培训工作来训练 xgBoost 二进制分类器。

将数据集上传到 S3 然后导入

首先,请下载Titanic 数据集并将其上传到中的 Amazon S3 (Amazon S3) 存储桶Amazon您要在其中完成此演示的区域。

如果您是 Amazon S3 的新用户,则可以在 Amazon S3 控制台中使用拖放操作来执行此操作。要了解如何操作,请参阅使用拖放功能上传文件和文件夹在 Amazon Simple Storage Service 用户指南中。

重要

将您的数据集上传到同一个 S3 存储桶Amazon您要使用的区域来完成此演示。

当您的数据集成功上传到 Amazon S3 后,您可以将其导入 Data Wrangler 中。

将泰坦尼克号数据集导入 Data Wrangler

  1. 选择导入数据 Wrangler 流程文件中的选项卡。

  2. SelectAmazon S3.

  3. 使用从 S3 导入数据集表来查找添加泰坦尼克号数据集的存储桶。选择泰坦尼克号数据集 CSV 文件以打开详细信息窗格。

  4. 详细信息文件类型应该是 CSV。选择将标头添加到表以指定数据集的第一行为标头。您还可以将数据集命名为更友好的名称,例如Titanic-train.

  5. Select导入数据集.

将数据集导入 Data Wrangler 后,它将显示在数据流中。您可以随时通过选择数据流选项卡。您可以双击某个节点进入节点详细信息视图,该视图允许您添加转换或分析;否则,您可以使用加号图标进行快速导航。在下一部分中,您将使用此数据流添加分析和转换步骤。

数据流

在数据流部分中,数据流中唯一的步骤是最近导入的数据集和数据类型步骤。应用转换后,您可以返回此选项卡查看数据流的外观。现在,在准备分析选项卡。

准备和可视化

Data Wrangler 具有内置的转换和可视化效果,您可以用它们来分析、清理和转换数据。

这些区域有:数据节点详细信息视图的选项卡列出了右侧面板中的所有内置转换,其中还包含一个可以在其中添加自定义转换的区域。以下用例展示了如何使用这些转换。

数据探究

首先,使用分析创建数据表摘要。执行以下操作:

  1. 选择+在旁边数据类型步入数据流并选择添加分析.

  2. 分析区域,选择表摘要从下拉列表中选择。

  3. 给表格摘要 a名称.

  4. Select预览以预览将要创建的表格。

  5. 选择Create将其保存到数据流中。它出现在所有分析.

使用您看到的统计数据,您可以对此数据集进行类似以下内容的观测:

  • 平均票价(平均值)约为 33 美元,而最高价格超过 500 美元。此列可能有异常值。

  • 此数据集使用?以指示缺少的值。许多列缺少值:着手, 和home.dest

  • 年龄类别缺少 250 多个值。

选择准备返回到数据流。接下来,使用从这些统计数据中获得的见解清理数据。

删除未使用的列

使用上一节中的分析,清理数据集以便为训练做好准备。要向数据流添加新转换,请选择+在旁边数据类型步入你的数据流然后选择添加转换.

首先,删除您不想用于训练的列。您可以使用熊猫数据分析库来做到这一点,或者你可以使用其中一个内置的变换。

要使用 Pandas 执行此操作,请按照以下步骤操作。

  1. 自定义转换部分,选择蟒蛇(熊猫)从下拉列表中选择。

  2. 在代码框中输入以下内容。

    cols = ['name', 'ticket', 'cabin', 'sibsp', 'parch', 'home.dest','boat', 'body'] df = df.drop(cols, axis=1)
  3. 选择预览以预览更改,然后选择Add来添加转换。

要使用内置转换,请执行以下操作:

  1. 选择管理列从右侧面板中找到。

  2. 适用于输入栏,选择,然后选择预览.

  3. 验证列已被删除,然后选择Add.

  4. 对以下列重复这些步骤:名称sibsp帕奇home.dest, 和身体.

清理缺失值

现在,清理缺失的值。您可以使用处理缺失值转换组。

许多列缺少值。在剩余的列中,年龄票价包含缺少的值。使用自定义转换.

使用蟒蛇(熊猫)选项中,使用以下命令快速查看每列中的条目数:

df.info()

在中删除缺少值的行年龄类别,请执行以下操作:

  1. 选择处理缺失值.

  2. 选择丢失掉(对于 )变压器.

  3. 选择删除行(对于 )维度.

  4. 选择年龄(对于 )输入栏.

  5. 选择预览要查看新的数据框,然后选择Add将转换添加到流程中。

  6. 重复相同的过程票价.

您可以使用df.info()中的自定义转换部分,以确认所有行现在都有 1,045 个值。

自定义熊猫:编码

尝试使用 Pandas 进行平面编码。对分类数据进行编码是为类别创建数字表示形式的过程。例如,如果你的类别DogCat,你可以将这些信息编码为两个向量:[1,0]要表示Dog, 和[0,1]要表示Cat.

  1. 自定义转换部分,选择蟒蛇(熊猫)从下拉列表中选择。

  2. 在代码框中输入以下内容。

    import pandas as pd dummies = [] cols = ['pclass','sex','embarked'] for col in cols: dummies.append(pd.get_dummies(df[col])) encoded = pd.concat(dummies, axis=1) df = pd.concat((df, encoded),axis=1)
  3. 选择预览以预览更改。每列的编码版本将添加到数据集中。

  4. 选择Add来添加转换。

自定义 SQL:SELECT

现在,选择要使用 SQL 保留的列。对于此演示,请选择以下列出的列SELECT网页。由于幸存下来是你的训练目标专栏,把那个专栏放在第一位。

  1. 自定义转换部分,选择SQL(PySpark SQL)从下拉列表中选择。

  2. 在代码框中输入以下内容。

    SELECT survived, age, fare, 1, 2, 3, female, male, C, Q, S FROM df;
  3. 选择预览以预览更改。你的SELECT语句是唯一剩下的列。

  4. 选择Add来添加转换。

Export

完成数据流创建后,您有许多导出选项。以下部分介绍如何导出到 Data Wrangler 作业笔记本。Data Wrangler 作业用于使用数据流中定义的步骤处理数据。要了解所有导出选项的更多信息,请参阅Export.

导出到数据 Wrangler Job 笔记本

当您使用数据 Wrangler 任务,该过程会自动创建一个 Jupyter 笔记本。此笔记本会在您的 Studio 实例中自动打开,并配置为运行 SageMaker 处理作业来运行 Data Wrangler 数据流,这被称为 Data Wrangler 作业。

  1. 保存数据流。SelectFile (文件)然后选择保存数据 Wrangler 流.

  2. 选择Export选项卡。

  3. 选择数据流中的最后一步。

  4. 选择数据 Wrangler Job. 这将打开 Jupyter 笔记本。

  5. 选择任何Python 3(数据科学)的内核内核.

  6. 当内核启动时,将笔记本电脑中的单元格运行到开始 SageMaker 培训 Job(可选).

  7. 或者,您可以在中运行单元启动 SageMaker 培训 Job(可选)如果你想创建 SageMaker 培训作业来训练 xgBoost 分类器。您可以找到运行成本 SageMaker 在训练作业亚马逊 SageMaker 定价.

    或者,您可以添加中找到的代码块训练 XGBoost 分类器转到笔记本电脑然后运行它们以使用XGBoost用于训练 xgBoost 分类器的开源库。

  8. 取消注释并运行下面的单元格清除然后运行它来还原 SageMaker Python SDK 至其原始版本。

你可以在 SageMaker 中的控制台处理选项卡。此外,您可以使用 Amazon CloudWatch 监控数据 Wrangler 作业。有关其他信息,请参阅监控 Amazon SageMaker 使用处理任务 CloudWatch 日志和指标.

如果你开始了培训工作,你可以使用 SageMaker 控制台下训练任务中的训练部分.

训练 XGBoost 分类器

在启动 Data Wrangler 工作的同一笔笔记本中,您可以在最少的数据准备的情况下使用准备好的数据来提取数据并训练 XGBoost Binary Classifier Lassifier。

  1. 首先,使用升级必要的模块pip然后删除 _SUCCESS 文件(最后一个文件在使用时有问题awswrangler)。

    ! pip install --upgrade awscli awswrangler boto sklearn ! aws s3 rm {output_path} --recursive --exclude "*" --include "*_SUCCESS*"
  2. 从 Amazon S3 读取数据。您可以使用awswrangler以递归方式读取 S3 前缀中的所有 CSV 文件。然后将数据拆分为要素和标注。标签是数据框的第一列。

    import awswrangler as wr df = wr.s3.read_csv(path=output_path, dataset=True) X, y = df.iloc[:,:-1],df.iloc[:,-1]
    • 最后,创建 dMatrices(数据的 xgBoost 原始结构)并使用 xgBoost 二进制分类进行交叉验证。

      import xgboost as xgb dmatrix = xgb.DMatrix(data=X, label=y) params = {"objective":"binary:logistic",'learning_rate': 0.1, 'max_depth': 5, 'alpha': 10} xgb.cv( dtrain=dmatrix, params=params, nfold=3, num_boost_round=50, early_stopping_rounds=10, metrics="rmse", as_pandas=True, seed=123)

关闭数据 Wrangler

使用完 Data Wrangler 后,我们建议您关闭它运行的实例,以避免产生额外费用。要了解如何关闭 Data Wrangler 应用程序和关联的实例,请参阅关闭数据 Wrangler.