重新训练机器学习模型并利用更新的数据集在Amazon SageMaker Canvas中自动执行批量预测

现在你可以使用更新后的数据集重新训练机器学习(ML)模型并自动化批预测工作流程,在亚马逊SageMaker Canvas中提高不断学习和改进模型性能以及推动效率。ML模型的有效性取决于其训练的数据的质量和相关性。随着时间的推移,数据中的基本模式、趋势和分布可能会发生变化。通过更新数据集,您确保模型从最新和代表性的数据中学习,从而提高其进行准确预测的能力。Canvas现在支持自动和手动更新数据集,使您能够为训练ML模型使用最新版本的表格、图像和文档数据集。

在模型训练完成后,您可能希望对其进行预测。在ML模型上运行批预测可以同时处理多个数据点,而不是逐个进行预测。自动化此过程提高了效率、可扩展性和及时决策。预测结果生成后,可以进一步分析、聚合或可视化,以获得洞察、识别模式或根据预测结果进行明智的决策。Canvas现在支持设置自动批预测配置并关联数据集。当关联数据集被手动或按计划刷新时,将自动在相应模型上触发批预测工作流程。预测结果可以内联查看或下载以供稍后查看。

在本文中,我们展示了如何在Canvas中使用更新后的数据集重新训练ML模型并自动化批预测。

解决方案概述

对于我们的用例,我们扮演一家电子商务公司的业务分析师的角色。我们的产品团队希望我们确定影响购物者购买决策的最关键指标。为此,我们在Canvas中使用公司的客户网站在线会话数据训练了一个ML模型。我们评估模型的性能,并在需要时重新训练模型以查看它是否改善了现有模型的性能。为此,我们使用Canvas中的自动更新数据集功能,并使用最新版本的训练数据集重新训练现有的ML模型。然后,我们配置自动批预测工作流程——当相应的预测数据集被更新时,它会自动触发模型上的批预测作业,并使结果可供我们查看。

工作流程的步骤如下:

  1. 将下载的客户网站在线会话数据上传到Amazon Simple Storage Service(Amazon S3)并在Canvas中创建新的训练数据集。有关支持的完整数据源列表,请参阅在Amazon SageMaker Canvas中导入数据。
  2. 构建ML模型并分析其性能指标。有关在Canvas中构建自定义ML模型和评估模型性能的步骤,请参阅此处的步骤。
  3. 为现有的训练数据集设置自动更新,并将新数据上传到支持此数据集的Amazon S3位置。完成后,应创建一个新的数据集版本。
  4. 使用数据集的最新版本重新训练ML模型并分析其性能。
  5. 在性能更好的模型版本上设置自动批预测并查看预测结果。

您可以在Canvas中执行这些步骤,而无需编写任何代码。

数据概述

该数据集包含属于12,330个会话的特征向量。数据集是这样形成的,以便每个会话都属于1年期间的不同用户,以避免任何趋势倾向、特殊日、用户配置文件或期间。以下表格概述了数据模式。

列名 数据类型 描述
Administrative 数字 用户访问与用户帐户管理相关的页面数。
Administrative_Duration 数字 在此类别页面上花费的时间。
Informational 数字 用户访问的此类型(信息)页面数。
Informational_Duration 数字 在此类别页面上花费的时间。
ProductRelated 数字 用户访问的此类型(产品相关)页面数。
ProductRelated_Duration 数字 在此类别页面上花费的时间。
BounceRates 数字 通过该页面进入网站并退出而没有触发任何其他任务的访问者的百分比。
ExitRates 数字 用户访问的页面的平均退出率。这是离开该页面的人数占您网站总访问人数的百分比。
Page Values 数字 用户访问的页面的平均页面价值。这是用户在登陆目标页面或完成电子商务交易(或两者兼有)之前访问的页面的平均值。
SpecialDay 二进制 “特别日”功能指示访问时间与特定特殊日(例如母亲节或情人节)的接近程度,在这些日子里,会话更有可能以交易完成。
Month 分类 访问的月份。
OperatingSystems 分类 访问者的操作系统。
Browser 分类 用户使用的浏览器。
Region 分类 访问者启动会话的地理区

营收是目标列,将帮助我们预测购物者是否会购买产品。

第一步是下载我们将使用的数据集。请注意,此数据集归功于UCI机器学习存储库。

先决条件

完成以下先决步骤:

  1. 将包含20,000行的下载的CSV拆分为多个较小的块文件。

这是为了展示数据集更新功能。确保所有CSV文件具有相同的标题,否则在Canvas中创建训练数据集时可能会遇到模式不匹配错误。

  1. 创建S3存储桶并将online_shoppers_intentions1-3.csv上传到S3存储桶中。

  1. 从下载的CSV中保留1,500行以在训练ML模型后运行批量预测。
  2. 从这些文件中删除Revenue列,以便在运行批量预测ML模型时,这是您的模型将要预测的值。

确保所有predict*.csv文件具有相同的标题,否则在Canvas中创建预测(推理)数据集时可能会遇到模式不匹配错误。

  1. 执行必要的步骤以设置SageMaker域和Canvas应用程序。

创建数据集

要在Canvas中创建数据集,请完成以下步骤:

  1. 在导航窗格中选择数据集
  2. 选择创建,然后选择表格
  3. 为您的数据集命名。对于此帖子,我们称我们的训练数据集为OnlineShoppersIntentions
  4. 选择创建
  5. 选择您的数据源(对于此帖子,我们的数据源是Amazon S3)。

请注意,截至本文撰写时,仅支持Amazon S3和本地上传的数据源的数据集更新功能。

  1. 选择相应的存储桶并上传数据集的CSV文件。

现在您可以使用多个文件创建数据集。

  1. 预览数据集中的所有文件,然后选择创建数据集

现在我们有了OnlineShoppersIntentions数据集的第一个版本,包含三个文件。

  1. 选择要查看的数据集以获取详细信息。

Data选项卡显示数据集的预览。

  1. 选择数据集详细信息以查看数据集包含的文件。

数据集文件窗格列出了可用的文件。

  1. 选择版本历史记录选项卡以查看此数据集的所有版本。

我们可以看到,我们的第一个数据集版本有三个文件。任何后续版本都将包含前几个版本的所有文件,并提供数据的累计视图。

使用数据集的版本1训练ML模型

让我们使用数据集的版本1来训练ML模型。

  1. 在Canvas中,在导航窗格中选择我的模型
  2. 选择新模型
  3. 输入模型名称(例如OnlineShoppersIntentionsModel),选择问题类型,然后选择创建
  4. 选择数据集。对于此文章,我们选择OnlineShoppersIntentions数据集。

默认情况下,Canvas将选择最新的数据集版本进行训练。

  1. 构建选项卡上,选择要预测的目标列。对于此文章,我们选择收入列。
  2. 选择快速构建

模型训练将需要2-5分钟才能完成。在我们的情况下,训练好的模型为我们提供了89%的得分。

设置自动数据集更新

让我们使用自动更新功能更新我们的数据集,带入更多数据,看看新版本的数据集能否提高模型性能。数据集也可以手动更新。

  1. 数据集页面上,选择OnlineShoppersIntentions数据集,然后选择更新数据集
  2. 您可以选择手动更新,这是一次性更新选项,或者选择自动更新,这允许您按计划自动更新数据集。在本文中,我们展示了自动更新功能。

您将被重定向到相应数据集的自动更新选项卡。我们可以看到启用自动更新目前已禁用。

  1. 切换启用自动更新,并指定数据源(截至目前,Amazon S3数据源支持自动更新)。
  2. 选择一个频率并输入一个开始时间。
  3. 保存配置设置。

已创建一个自动更新数据集配置,它可以随时进行编辑。当指定计划上触发相应的数据集更新作业时,该作业将出现在作业历史记录部分中。

  1. 接下来,让我们将online_shoppers_intentions4.csvonline_shoppers_intentions5.csvonline_shoppers_intentions6.csv文件上传到我们的S3存储桶中。

我们可以在dataset-update-demo S3存储桶中查看我们的文件。

数据集更新作业将在指定的计划上触发,并创建数据集的新版本。

当作业完成时,数据集版本2将拥有版本1中的所有文件以及数据集更新作业处理的附加文件。在我们的情况下,版本1有三个文件,更新作业拾取了三个附加文件,因此最终数据集版本有六个文件。

我们可以在“版本历史”选项卡中查看创建的新版本。

“数据”选项卡包含数据集的预览并提供最新数据集版本中所有文件的列表。

使用更新的数据集重新训练 ML 模型

让我们使用最新版本的数据集重新训练我们的 ML 模型。

  1. 在“我的模型”页面上,选择您的模型。
  2. 选择“添加版本”。
  3. 选择最新的数据集版本(在我们的情况下是 v2),然后选择“选择数据集”。
  4. 保持目标列和构建配置与上一个模型版本类似。

当训练完成后,让我们评估模型性能。下图显示,添加额外的数据并重新训练我们的 ML 模型有助于提高模型性能。

创建预测数据集

使用已训练的 ML 模型,让我们为预测创建数据集并批量运行预测。

  1. 在“数据集”页面上,创建一个表格数据集。
  2. 输入名称并选择“创建”。
  3. 在我们的 S3 存储桶中,上传一个包含 500 行的文件以进行预测。

接下来,我们设置预测数据集的自动更新。

  1. 将“启用自动更新”切换到打开状态,并指定数据源。
  2. 选择频率并指定启动时间。
  3. 保存配置。

自动化自动更新的预测数据集上的批量预测工作流程

在此步骤中,我们配置了自动批量预测工作流程。

  1. 我的模型页面上,导航到您的模型的版本2。
  2. 预测选项卡中,选择批量预测自动
  3. 选择选择数据集以指定要生成预测的数据集。
  4. 选择我们之前创建的predict数据集,并选择选择数据集
  5. 选择设置

现在我们有了一个自动批量预测工作流程。当Predict数据集自动更新时,将触发此工作流程。

现在让我们将更多的CSV文件上传到predict S3文件夹中。

此操作将触发predict数据集的自动更新。

这将触发自动批量预测工作流程,并生成我们可以查看的预测结果。

我们可以在自动化页面上查看所有自动化操作。

由于自动数据集更新和自动批量预测工作流程,我们可以使用表格、图像和文档数据集的最新版本来训练ML模型,并构建批量预测工作流程,这些工作流程将在每个数据集更新时自动触发。

清理

为了避免未来产生费用,请注销Canvas。Canvas会为您的会话计费,我们建议在不使用它时注销Canvas。有关更多详细信息,请参阅Amazon SageMaker Canvas的注销。

结论

在本文中,我们讨论了如何使用新的数据集更新功能来构建新的数据集版本,并使用Canvas中的最新数据训练ML模型。我们还展示了如何有效地自动化更新数据的批量预测过程。

要开始您的低代码/无代码ML之旅,请参阅Amazon SageMaker Canvas开发人员指南。

特别感谢所有为此次发布做出贡献的人。