数据准备是任何机器学习(ML)工作流程中的关键步骤,然而它经常涉及繁琐和耗时的任务。 Amazon SageMaker Canvas 现在支持由 Amazon SageMaker Data Wrangler 提供支持的全面数据准备功能。通过这个整合,SageMaker Canvas 为客户提供一个无代码工作空间,用于准备数据、构建和使用机器学习和基础模型,加速从数据到业务洞察的时间。现在可以轻松地发现和聚合来自超过50个数据源的数据,并使用SageMaker Canvas的可视化界面中的300多个内建分析和转换来探索和准备数据。您还将看到转换和分析的更快性能,以及用于探索和转换机器学习数据的自然语言界面。
在本文中,我们将为您介绍在SageMaker Canvas中准备数据以进行端到端模型构建的过程。
解决方案概览
对于我们的用例,我们扮演一个金融服务公司的数据专业人员的角色。我们使用两个样本数据集构建一个ML模型,该模型预测借款人是否会全额偿还贷款,这对于管理信用风险至关重要。SageMaker Canvas 的无代码环境使我们能够快速准备数据、构建特征、训练ML模型,并在端到端工作流中部署模型,无需编码。
前提条件
如要按照本教程进行操作,请确保已按照详细说明实施前提条件
- 启动 Amazon SageMaker Canvas。如果您已经是 SageMaker Canvas 的用户,请确保退出登录并重新登录以使用此新功能。
- 要从 Snowflake 导入数据,请按照设置 Snowflake 的 OAuth 步骤进行操作。
准备交互式数据
准备工作完成后,我们现在可以创建一个数据流来启用交互式数据准备。数据流提供内建转换和实时可视化来整理数据。请按照以下步骤完成:
- 使用以下方法之一创建一个新的数据流:
- 选择 Data Wrangler,Data flows,然后选择 Create。
- 选择 SageMaker Canvas 数据集,然后选择 Create a data flow。
- 选择 Import data 并从下拉列表中选择 Tabular。
- 您可以直接通过超过50个数据连接器导入数据,例如 亚马逊简单存储服务 (Amazon S3)、亚马逊 Athena、亚马逊 Redshift、Snowflake 和 Salesforce。在本教程中,我们将介绍如何直接从 Snowflake 导入数据。
或者,您可以从本地计算机上传相同的数据集。您可以下载数据集 loans-part-1.csv 和 loans-part-2.csv。
- 从导入数据页面中,从列表中选择Snowflake并选择添加连接。
- 为连接输入一个名称,从身份验证方法下拉列表中选择OAuth选项。输入您的okta帐户ID并选择添加连接。
- 您将被重定向到Okta登录屏幕,输入Okta凭据进行身份验证。成功验证后,您将被重定向到数据流页面。
- 浏览以查找来自Snowflake数据库的贷款数据集
从屏幕左侧拖放选择两个贷款数据集到右侧。这两个数据集将连接,并出现具有红色感叹号的连接符号。点击它,然后为两个数据集选择id键。将连接类型保留为内部连接。它应该看起来像这样:
- 选择保存并关闭。
- 选择创建数据集。为数据集命名。
- 导航到数据流,您将看到以下内容。
- 为了快速探索贷款数据,选择获取数据洞察并选择
loan_status
目标列和分类问题类型。
生成的数据质量和洞察报告提供关键统计数据,可视化和特征重要性分析。
- 查看数据质量问题和不平衡类别的警告,以了解和改进数据集。
对于此用例中的数据集,您应该期望出现”非常低的快速模型分数”高优先级警告,并且少数类别(坏账和目前)的模型效果非常低,表明需要清理和平衡数据。详细了解数据洞察报告,请参阅Canvas文档。
凭借由SageMaker Data Wrangler提供支持的300多个内置转换,SageMaker Canvas让您能够快速整理贷款数据。您可以点击添加步骤,然后浏览或搜索适合的转换方式。对于此数据集,请使用丢弃缺失值和处理异常值来清理数据,然后应用独热编码和文本向量化来创建用于机器学习的特征。
数据准备聊天是一种新的自然语言功能,通过以简单的英语描述请求,实现直观的数据分析。例如,您可以使用自然语言短语在贷款数据上获得统计数据和特征相关性分析。SageMaker Canvas通过对话交互理解并运行这些操作,将数据准备提升到新的水平。
我们可以使用数据准备聊天和内置的变换功能来平衡贷款数据。
- 首先,输入以下指令:
replace “charged off” and “current” in loan_status with “default”
数据准备聊天会生成代码,将两个少数类合并为一个default
类。
- 选择内置的SMOTE变换函数来为默认类生成合成数据。
现在,您有一个平衡的目标列。
- 在清理和处理贷款数据后,重新生成数据质量和洞察报告以查看改进。
高优先级的警告已消失,表明数据质量有所改善。您可以根据需要添加进一步的转换来改善用于模型训练的数据质量。
扩展和自动化数据处理
为了自动化数据准备工作,您可以将整个工作流程作为分布式Spark处理作业运行或预定,以处理整个数据集或任何新的数据集。
- 在数据流中添加一个Amazon S3目标节点。
- 通过选择创建作业来启动SageMaker处理作业。
- 配置处理作业并选择创建,使流程可以在大量数据(数百GB)上运行而无需采样。
数据流可以集成到端到端的MLOps流水线中,以自动化机器学习生命周期。数据流可以作为数据处理步骤进入SageMaker Studio笔记本,用于SageMaker流水线的数据处理步骤,或用于部署SageMaker推理流水线。这样就可以从数据准备到SageMaker训练和托管的流程实现自动化。
在SageMaker Canvas中构建和部署模型
在数据准备完成后,我们可以将最终数据集无缝导出到SageMaker Canvas中,以构建、训练和部署贷款收款预测模型。
- 在数据流的最后一个节点或节点面板中选择创建模型。
这将导出数据集并启动引导式模型创建流程。
- 为导出的数据集命名并选择导出。
- 在通知中选择创建模型。
- 为模型命名,选择预测分析,并选择创建。
这将重定向您到模型构建页面。
- 继续使用SageMaker Canvas模型构建体验,选择目标列和模型类型,然后选择快速构建或标准构建。
要了解更多关于模型构建体验的信息,请参考构建模型。
当训练完成后,您可以使用该模型预测新数据或部署它。请参考将在Amazon SageMaker Canvas中构建的ML模型部署到Amazon SageMaker实时终端节点,了解更多关于从SageMaker Canvas部署模型的信息。
结论
在本文中,我们通过扮演负责准备数据以预测贷款还款的金融数据专业人士的角色,展示了SageMaker Canvas的端到端能力,其中使用了SageMaker Data Wrangler。通过交互式的数据准备过程,快速清洁、转换和分析贷款数据,并提取有信息量的特征。通过简化编码复杂性,SageMaker Canvas使我们能够快速迭代创建高质量的训练数据集。这种加速的工作流程直接进入构建、训练和部署高效的ML模型,以实现业务影响。借助其全面的数据准备和从数据到洞察的统一体验,SageMaker Canvas赋予您提高ML结果的能力。有关如何加速从数据到业务洞察的旅程的更多信息,请参阅SageMaker Canvas immersion day和AWS用户指南。