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

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

使用数据牧师入门

Amazon SageMaker er 数据牧马是 SageMaker Studio 中的功能。使用本部分可以了解如何访问 Data Wrangler 并开始使用。执行以下操作:

  1. 完成中的每个步骤Prerequisites.

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

Prerequisites

要使用数据 Wrangler,您必须执行以下操作:

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

  2. 配置所需的权限,请参阅安全和权限.

要使用数据工作者,您需要一个活动的 SageMaker Studio 实例。要了解如何启动新实例,请参阅登上 Amazon SageMaker Studio. 当您的 Studio 实例为Ready中,请使用访问数据牧人.

访问数据牧人

以下过程假定您已完成Prerequisites.

要访问工作室中的数据工作者,请执行以下操作:

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

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

    您还可以通过选择File (文件),然后New,然后选择数据牧人流在顶部导航栏中。

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

  4. 当您在 Studio 中创建一个新的 .flow 文件时,您可能会在DATA Woler接口,显示以下内容:

    数据牧羊人正在加载...

    该过程可能需要几分钟.

    此消息将持续存在,只要内核网关应用程序用户详细信息页面为Pending. 要查看此应用程序的状态,请在Amazon SageMaker Studio页面上,选择用于访问 Studio 的用户的名称。在存储库的用户详细信息页面上,您会看到一个内核网关下的应用应用程序. 等待,直到此应用程序状态为Ready开始使用数据牧师。首次启动 Data Wrangler 时,这可能需要大约 5 分钟的时间。

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

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

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

    重要

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

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

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

  9. 最后,选择组成部分和登记册图标,然后选择DATA Woler以查看您创建的所有 .flow 文件。您可以使用此菜单查找数据流并在数据流之间移动。

启动 Data Wrangler 后,您可以使用以下部分演示如何使用 Data Wrangler 创建 ML 数据准备流。

更新数据牧人

建议您定期更新 Data Wrangler Studio 应用程序以访问最新的功能和更新。数据牧师应用程序名称以萨格制造商-数据工作. 要了解如何更新 SageMaker 工作室应用,请参阅更新 Studio 应用程序.

演示:数据牧师泰坦尼克号数据集演练

以下部分提供了一个演练,帮助您开始使用 Data Wrangler。此演练假定您已按照中的步骤操作访问数据牧人并打开一个新的数据流文件,以供演示使用。您可能希望将此 .flow 文件重命名为类似于泰坦-演示 .flow 的文件。

本演练使用Titanic 数据集. 该数据集包含 1912 年泰坦尼克号皇家邮轮处女航的乘客的生存状况、年龄、性别和等级(作为经济状况的代表)。

在本教程中,您将:

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

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

  • 使用数据工作者数据转换定义数据流。

  • 将流导出到可用于创建数据牧师作业的 Jupyter 笔记本。

  • 处理您的数据,并启动 SageMaker 培训工作,以训练 XGBoost 二进制分类器。

将数据集上传到 S3 并导入

首先,请下载Titanic 数据集并将其上传到Amazon您要在其中完成本演示的区域。

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

重要

将数据集上传到同一Amazon您要用来完成本演示的区域。

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

将泰坦尼克号数据集导入到数据牧羊人

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

  2. SelectAmazon S3.

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

  4. INDER详细信息文件类型应该是 CSV。选择将标头添加到表可指定数据集的第一行是标题。您还可以将数据集命名为更友好的命名,例如泰坦尼克列车.

  5. Select导入数据集.

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

数据流

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

准备和可视化

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

数据选项卡中,所有内置转换都会列在右侧面板中,该面板还包含一个可在其中添加自定义转换的区域。以下用例展示了如何使用这些转换。

数据探究

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

  1. 选择+旁边的数据类型步骤,然后选择添加分析.

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

  3. 为表格摘要提供名称.

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

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

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

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

  • 此数据集使用?以指示缺少的值。许多列具有缺少值:客舱已经登上, 和家庭 .目前

  • 年龄类别缺少超过 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. 对以下列重复这些步骤:票证名称SBSP羊皮家庭 .目前, 和body.

清理缺失值

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

许多列具有缺失值。在其余各栏中,AGEfare包含缺少值。检查此使用自定义变换.

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

df.info()

若要删除具有缺失值的行AGE类别中,执行以下操作:

  1. 选择处理缺失值.

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

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

  4. 选择AGE(对于 )输入列.

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

  6. 重复相同的过程fare.

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

自定义熊猫:编码

尝试使用熊猫进行平面编码。对类别数据进行编码是为类别创建数字表示的过程。例如,如果您的类别是 Dog 和 Cat,则可以将此信息编码为两个向量:[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:选择列

现在,选择要继续使用 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.

导出到数据牧师 Job 笔记本

当您使用数据牧民作业,则自动创建一个 Jupyter 笔记本。此笔记本电脑会在您的 Studio 实例中自动打开,并配置为运行 SageMaker 处理作业以运行您的 Data Wrangler 数据流(称为数据工作者作业)。

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

  2. 选择Export选项卡。

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

  4. 选择数据牧师 Job. 这将打开 Jupyter Notebook。

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

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

  7. 您可以选择在启动 SageMaker 培训 Job(可选)如果你想创建一个 SageMaker 培训工作来训练 XGBoost 分类器。运行 SageMaker 培训作业的费用可在Amazon SageMaker 定价.

    或者,您也可以将培训 XGBoost 分类器添加到笔记本,然后运行它们以使用XGBoost开源库来训练 XGBoost 分类器。

  8. 取消注释并运行清除并运行它以将 SageMaker Python SDK 还原为其原始版本。

您可以在 SageMaker 控制台的处理选项卡。此外,您还可以使用亚马逊 CloudWatch 监控您的数据牧师作业。有关其他信息,请参阅使用 CloudWatch Logs 和指标监控 Amazon SageMaker 处理作业.

如果您开始了培训工作,您可以使用 SageMaker 控制台监控其状态,训练作业中的训练科.

培训 XGBoost 分类器

在启动 Data Wrangler 作业的笔记本中,您可以使用准备好的数据提取数据并训练 XGBoost 二进制分类器,只需最少数据准备。

  1. 首先,使用pip并删除 _SERUTY 文件(在使用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]
    • 最后,创建数据矩阵(数据的 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)

关闭数据工作者

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