使用SageMaker Canvas模型排行榜建立和评估具有高级配置的机器学习模型

SageMaker Canvas模型排行榜:构建和评估高级配置的机器学习模型

Amazon SageMaker Canvas(亚马逊SageMaker画布)是一个无代码工作空间,让分析师和普通数据科学家能够生成准确的机器学习(ML)预测以满足业务需求。从今天开始,SageMaker Canvas支持高级模型构建配置,例如选择训练方法(集成或超参数优化)和算法,自定义训练和验证数据的分割比例,并设置AutoML迭代次数和作业运行时间的限制,从而使用户能够自定义模型构建配置,而无需编写任何代码。这种灵活性可以提供更强大和深入的模型开发。非技术相关的利益相关者可以使用默认设置的无代码功能,而普通数据科学家可以尝试各种ML算法和技术,帮助他们了解哪种方法最适合他们的数据,并进行优化以确保模型的质量和性能。

除了模型构建配置,SageMaker Canvas现在还提供了一个模型排行榜。排行榜允许您比较不同模型配置的关键性能指标(例如准确性、精确度、召回率和F1分数),以确定最适合您数据的模型,从而提高模型构建的透明度,并帮助您在模型选择上做出明智的决策。您还可以在笔记本中查看整个模型构建工作流程,包括建议的预处理步骤、算法和超参数范围。要访问这些功能,在构建模型时,请先签出然后重新登录SageMaker Canvas,并选择配置模型

在本文中,我们将向您介绍如何使用新的SageMaker Canvas高级模型构建配置,以启动集成和超参数优化(HPO)训练。

解决方案概述

在本节中,我们为您展示使用新的SageMaker Canvas高级模型构建配置启动集成和超参数优化(HPO)训练的逐步说明,以分析我们的数据集,构建高质量的ML模型,并查看模型排行榜,以决定发布哪个模型用于推理。SageMaker Canvas可以根据数据集大小自动选择训练方法,或者您可以手动选择。选择如下:

  • 集成(Ensemble):使用AutoGluon库训练多个基础模型。为了找到数据集的最佳组合,集成模式下会运行10次试验,使用不同的模型和元参数设置,并使用堆叠集成方法将这些模型组合起来创建一个最佳的预测模型。在集成模式下,SageMaker Canvas支持以下类型的机器学习算法:
    • Light GBM:优化的框架,使用基于梯度提升的树算法。该算法使用横向增长的树而不是纵向增长的树,速度非常快。
    • CatBoost:使用基于梯度提升的树算法的框架。优化处理分类变量。
    • XGBoost:使用基于梯度提升的树算法,树向纵深增长而不是横向增长。
    • 随机森林:基于树的算法,对数据的随机子样本使用多个决策树,各个树按层拆分为最佳节点,每个树的决策进行平均以防止过度拟合并提高预测结果。
    • Extra Trees:基于树的算法,在整个数据集上使用多个决策树,各个树在每个层级上进行随机拆分,每个树的决策进行平均以防止过度拟合并提高预测结果。与随机森林算法相比,Extra Trees算法添加了一定程度的随机化。
    • 线性模型:使用线性方程模拟观测数据中两个变量之间的关系的框架。
    • 神经网络torch:使用Pytorch实现的神经网络模型。
    • 神经网络fast.ai:使用fast.ai实现的神经网络模型。
  • 超参数优化(HPO):SageMaker Canvas通过优化贝叶斯或多样性优化来调整超参数,找到模型的最佳版本,并在数据集上运行训练任务。HPO模式选择与数据集最相关的算法,并选择最佳的超参数范围来调整您的模型。为了调整您的模型,HPO模式可以运行多达100次试验(默认值),找到在选择的范围内最佳的超参数设置。如果您的数据集大小小于100MB,SageMaker Canvas将使用贝叶斯优化。如果数据集大小大于100MB,SageMaker Canvas将选择多样性优化。在多样性优化中,训练容器会持续发出度量。性能较差的试验会被提前中止,表现较好的试验会被分配更多资源。在HPO模式下,SageMaker Canvas支持以下类型的机器学习算法:
  • 线性学习器(Linear learner):一种有监督学习算法,可以解决分类或回归问题。
  • XGBoost:一种有监督学习算法,通过组合一组简单且较弱的模型的集合来准确预测目标变量。
  • 深度学习算法:多层感知器(MLP)和前馈人工神经网络。该算法可以处理不是线性可分的数据。
  • 自动选择(Auto):SageMaker Canvas根据数据集大小自动选择集成模式或HPO模式。如果数据集大小大于100MB,SageMaker Canvas选择HPO模式。否则,它选择集成模式。

先决条件

在阅读本篇文章之前,请完成以下先决条件:

  1. 拥有一个AWS账户
  2. 设置SageMaker Canvas。参见设置Amazon SageMaker Canvas的先决条件
  3. 将经典的Titanic数据集下载到本地计算机。

创建模型

我们将使用Titanic数据集和SageMaker Canvas来创建一个预测哪些乘客在Titanic沉船中幸存的模型。这是一个二分类问题。我们专注于使用集成训练模式创建Canvas实验,并将F1得分和总运行时间的结果与使用HPO训练模式(100个试验)的SageMaker Canvas实验进行比较。

列名 描述
乘客ID 识别号码
是否幸存 幸存情况
票类 票的等级
姓名 乘客姓名
性别 性别
年龄 年龄
兄弟姐妹/配偶数量 在Titanic上的兄弟姐妹或配偶数量
父母/子女数量 在Titanic上的父母或子女数量
船票号码 船票号码
票价 乘客船费
船舱号码 船舱号码
登船港口 登船港口

Titanic数据集共有890行和12列。它包含有关乘客的人口统计信息(年龄、性别、票等级等)和幸存(是/否)目标列。

  1. 首先将数据集导入SageMaker Canvas。将数据集命名为Titanic。
  2. 选择Titanic数据集并选择创建新模型。为模型命名,选择预测分析作为问题类型,然后选择创建
  3. 选择要预测的列下,使用目标列下拉菜单选择幸存。Survived目标列是一种二进制数据类型,值为0(未幸存)和1(幸存)。

配置和运行模型

在第一个实验中,您将配置SageMaker Canvas以在数据集上运行集成训练,准确度作为您的目标指标。较高的准确度得分表示模型进行更多正确的预测,而较低的准确度得分则表示模型进行更多错误的预测。准确度在平衡数据集上效果良好。对于集成训练,选择XGBoost、随机森林、CatBoost和线性模型作为您的算法。将数据拆分保持默认的80/20进行训练和验证。最后,将训练作业的最大运行时间配置为1小时。

  1. 首先选择配置模型
  2. 这将弹出一个配置模型的窗口。从导航窗格中选择高级
  3. 通过选择目标指标来开始配置您的模型。对于这个实验,选择准确度。准确度得分告诉您模型的预测在整体上有多少次是正确的。
  4. 选择训练方法和算法,然后选择集成。机器学习中的集成方法涉及创建多个模型,然后将它们组合起来产生改进的结果。这种技术利用不同算法的优势来提高预测准确度。集成方法已被证明在各种机器学习竞赛和实际应用中产生更准确的解决方案。
  5. 选择要用于集成的各种算法。对于这个实验,选择XGBoost线性CatBoost随机森林。清除所有其他算法。
  6. 从导航窗格中选择数据拆分。对于这个实验,保持默认的80/20训练和验证拆分。下一个实验迭代将使用不同的拆分方式来查看是否会得到更好的模型性能。
  7. 从导航窗格中选择Max candidates and runtime并将Max job runtime设置为1小时,然后选择保存
  8. 选择 Standard build开始构建。

此时,SageMaker Canvas根据您提供的配置正在调用模型训练。由于您为训练作业指定了最大运行时间1小时,SageMaker Canvas将花费最多一个小时来完成训练作业。

查看结果

训练任务完成后,SageMaker Canvas会自动跳转到分析视图,并显示您在模型训练实验中配置的目标指标结果。在本例中,您可以看到模型准确率为86.034%。

  1. 选择模型排行榜旁边的折叠箭头按钮,以查看模型性能数据。
  2. 选择评分选项卡,深入了解模型准确度的洞察。训练模型报告称,它可以正确预测未幸存乘客的时间为89.72%。
  3. 选择高级指标选项卡,评估额外的模型性能细节。首先选择指标表,以查看诸如F1精确率召回率AUC等指标的详细信息。
  4. SageMaker Canvas还可帮助可视化训练模型的混淆矩阵
  5. 并且可视化精确率-召回率曲线。 AUPRC为0.86表示高的分类准确性,这是很好的。
  6. 选择模型排行榜,以比较SageMaker Canvas评估的不同模型的关键性能指标(如准确率、精确率、召回率和F1分数),从而确定最适合数据的最佳模型,基于您为该实验设置的配置。具有最佳性能的默认模型在模型排行榜上会用默认模型标签突出显示。
  7. 您可以使用侧边栏的上下文菜单深入了解任何模型的详细信息,或将模型设置为默认模型。选择排行榜上第二个模型的查看模型详细信息以查看详细信息。
  8. SageMaker Canvas会更改视图,显示所选模型候选人的详细信息。虽然默认模型的详细信息已经可用,但备选模型的详细视图需要10-15分钟来渲染这些详细信息。

创建第二个模型

既然你已经构建、运行和审核了一个模型,让我们再建立一个第二个模型进行比较。

  1. 通过在顶角选择X返回默认模型视图。现在,选择添加版本来创建一个新版本的模型。
  2. 选择你最初创建的泰坦尼克数据集,然后选择选择数据集

SageMaker画布会自动加载带有目标列的模型。在这个第二次实验中,你会切换到HPO训练,看看它是否能给数据集带来更好的结果。对于这个模型,你保持相同的目标指标(准确率)以便与第一个实验进行对比,并使用XGBoost算法进行HPO训练。你将训练和验证的数据分割设定为70/30,并将HPO作业的最大候选人数和运行时间设定为20个候选人和最大作业运行时间为1小时。

配置和运行模型

  1. 通过选择配置模型开始第二个实验,以配置你的模型训练细节。
  2. 配置模型窗口中,从导航栏中选择目标指标。对于目标指标,使用下拉菜单选择准确率,这样你可以将所有版本的输出并排进行比较。
  3. 选择训练方法和算法。选择超参数优化作为训练方法。然后,向下滚动以选择算法。
  4. 选择XGBoost作为算法。XGBoost提供并行的树提升,能快速准确地解决许多数据科学问题,并提供大量的超参数可以调整以改进和充分发挥XGBoost模型的优势。
  5. 选择数据分割。对于这个模型,将训练和验证的数据分割设定为70/30。
  6. 选择最大候选人数和运行时间,并将HPO作业的值设定为20(最大候选人数)和1小时(最大作业运行时间)。选择保存完成第二个模型的配置。
  7. 既然你已经配置了第二个模型,选择标准构建来开始训练。

SageMaker Canvas使用配置开始HPO作业。与第一个作业一样,这个训练作业将需要最多一个小时才能完成。

查看结果

当HPO训练作业完成(或最大运行时间过期)时,SageMaker Canvas将显示基于默认模型的训练作业输出,并显示模型的准确性分数。

  1. 选择模型排行榜以查看HPO训练运行中的所有20个候选模型列表。根据寻找最佳准确性的目标,最佳模型被标记为默认模型。

虽然默认模型的准确性是最好的,但HPO作业运行的另一个模型具有更高的ROC曲线下面积(AUC)分数。AUC分数用于评估二进制分类模型的性能。较高的AUC表明模型在区分两个类别方面更好,其中1是完美分数,0.5表示随机猜测。

  1. 使用上下文菜单将具有更高AUC的模型设为默认模型。选择该模型的上下文菜单,然后在行菜单中选择更改为默认模型选项,如下图所示。

SageMaker Canvas需要几分钟将选定的模型更改为实验的版本2的新默认模型,并将其移到模型列表的顶部。

比较模型

此时,您有两个版本的模型,可以在SageMaker Canvas中通过转到我的模型来并排查看它们。

  1. 选择在泰坦尼克号上预测生存以查看可用的模型版本。
  2. 有两个版本,它们的性能以表格形式显示,可进行并排比较。
  3. 您可以看到模型的版本1(使用集成算法训练)具有更好的准确性。您现在可以使用SageMaker Canvas生成一个SageMaker笔记本,其中包含代码、注释和说明,以定制AutoGluon的试验并运行SageMaker Canvas工作流,而无需编写任何代码。选择上下文菜单并选择查看笔记本即可生成SageMaker笔记本。
  4. SageMaker笔记本将在弹出窗口中显示。该笔记本可帮助您检查和修改SageMaker Canvas提出的参数。您可以交互式地选择SageMaker Canvas提出的配置之一,对其进行修改,并在SageMaker Studio环境中运行处理作业,以根据所选配置训练模型。

推論

現在您已經找到了最佳模型,您可以使用上下文功能表將其部署到端點以進行實時推理

或者使用上下文功能表將您的ML模型在生產環境中進行運營,將機器學習(ML)模型註冊到SageMaker模型註冊表

清理

為了避免未來產生費用,請刪除您在本文中創建的資源。 SageMaker Canvas會根據會話的持續時間計費,我們建議在不使用時登出SageMaker Canvas。

請參閱登出Amazon SageMaker Canvas以獲取更多詳細信息。

結論

SageMaker Canvas是一個強大的工具,使機器學習普及化,既適合非技術利益相關者,也適合公民數據科學家。新增的功能包括高級模型構建配置和模型排行榜,提升了平台的靈活性和透明度。這使您能夠根據特定的業務需求自定義機器學習模型,而無需深入研究代碼。自定義訓練方法,算法,數據分割和其他參數的能力可以讓您嘗試各種機器學習技術,從而更深入地了解模型的性能。

模型排行榜的引入是一個重大的增強功能,它提供了不同配置的重要性能指標的明確概覽。這種透明度使用戶能夠就模型選擇和優化做出明智的決策。SageMaker Canvas在筆記本中顯示整個模型構建工作流程,包括建議的預處理步驟,算法和超參數範圍,從而有助於全面理解模型開發過程。

要開始您的低代碼/無代碼ML之旅,請參閱Amazon SageMaker Canvas

特別感謝所有貢獻者:

Esha Dutta,Ed Cheung,Max Kondrashov,Allan Johnson,Ridhim Rastogi,Ranga Reddy Pallelra,Ruochen Wen,Ruinong Tian,Sandipan Manna,Renu Rozera,Vikash Garg,Ramesh Sekaran和Gunjan Garg