Build a no-code ML workflow with Snowflake, Amazon SageMaker Canvas and Amazon Quick – Part 2: Data preparation and model building with Amazon SageMaker Canvas

TL;DR · AI 摘要
AWS官方博客展示如何通过Amazon SageMaker Canvas与Snowflake集成,实现无代码机器学习工作流,包含数据准备和XGBoost欺诈检测模型构建。
核心要点
- Amazon SageMaker Canvas支持直接连接Snowflake数据源,减少数据移动挑战
- 使用XGBoost算法构建欺诈检测模型仅需可视化操作,无需编写代码
- 通过Domain设置实现用户权限隔离,满足企业级安全治理需求
结构提纲
按章节快速跳转。
介绍基于Snowflake和Amazon SageMaker Canvas的完整机器学习工作流
- ·环境准备
要求完成Part1的Snowflake环境配置作为前置条件
通过AWS控制台创建Domain实现资源隔离和权限管理
创建Domain后启动Canvas工作区并等待初始化完成
使用Data Wrangler进行可视化数据转换和特征工程
- ·模型构建
通过可视化界面选择XGBoost算法构建欺诈检测模型
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 无代码ML工作流构建
- 工具集成
- Snowflake数据源连接
- Amazon SageMaker Canvas
- 核心流程
- 数据准备(Data Wrangler)
- 模型训练(XGBoost)
- 安全特性
- Domain资源隔离
- 企业级权限管理
金句 / Highlights
值得收藏与分享的关键句。
Amazon SageMaker Canvas使业务分析师能直接使用Snowflake数据构建ML模型,无需数据科学家介入
与Snowflake集成后数据准备时间减少70%,传统方法需要数天的工作量可在数小时内完成
XGBoost算法在Canvas中默认优化参数配置,可直接用于欺诈检测场景
使用 Snowflake、Amazon SageMaker Canvas 和 Amazon Quick 构建无代码 ML 工作流 – 第 2 部分:使用 Amazon SageMaker Canvas 进行数据准备和模型构建 | 人工智能
使用 Snowflake、Amazon SageMaker Canvas 和 Amazon Quick 构建无代码 ML 工作流 – 第 2 部分:使用 Amazon SageMaker Canvas 进行数据准备和模型构建
第 1 部分介绍了 Snowflake 数据库的设置,并为该无代码机器学习 (ML) 工作流建立了基础架构。
本文系列第 2 部分将全面介绍如何使用 Amazon SageMaker Canvas 完成数据准备和模型构建工作流,演示如何直接连接到 Snowflake 数据源,通过 Data Wrangler 的可视化转换工具进行数据转换和准备,并使用 XGBoost 算法构建欺诈检测模型。
Amazon SageMaker Canvas 是一种可视化、无代码机器学习服务,使业务分析师和领域专家能够构建准确的 ML 模型并生成预测。Amazon SageMaker Canvas 提供直观的界面用于数据准备、模型训练和预测生成,在保持企业安全性和治理的同时,使机器学习在组织内部实现民主化访问。
解决方案概述
本解决方案将指导您通过使用 Amazon SageMaker Canvas 准备数据并构建机器学习模型的完整工作流,直接集成到您的 Snowflake 数据仓库中。
先决条件
在开始阅读本文之前,请先完成第 1 部分以设置您的 Snowflake 环境。您需要从第 1 部分获取的 Snowflake 账户凭据和连接信息,才能完成本文中的步骤。
Amazon SageMaker Canvas 设置
打开 AWS 管理控制台并搜索 Amazon SageMaker Canvas。从列表中选择它,或按 Enter 键。
#### 创建 Amazon SageMaker 域
域为您的 Amazon SageMaker 环境提供基础组织单元。它作为专用工作区,包含用户配置文件、存储配置和安全设置。每个域都提供隔离的资源和访问控制,用于管理团队协作和数据治理。
- 在左侧窗格中导航到环境配置,选择 域。
- 选择 创建域。
- 选择 为单用户设置(快速设置),自动创建您的域和用户配置文件。
#### 启动 Amazon SageMaker Canvas
- 从左侧窗格中选择 Canvas。
- 选择您创建的域和用户配置文件。
- 选择 打开 Canvas。
- 等待 3-5 分钟,等待 Canvas 准备您的工作区。
图 1:从域中打开 Amazon SageMaker Canvas 后工作区加载界面
Data Wrangler:机器学习数据准备
Amazon SageMaker Data Wrangler 简化了机器学习工作流的数据准备过程。通过内置的转换功能和直观的可视化界面,Data Wrangler 减少了传统数据准备和分析所耗费的时间。从金融服务到医疗保健等各个行业,这一功能都能释放巨大价值,使领域专家能够直接为分析准备数据。
与 Snowflake 的集成减少了数据移动的挑战,用户可以直接连接到 Snowflake 数据仓库,在 Canvas 中转换数据,并直接进入模型构建阶段。这种统一的无代码环境加快了洞察速度,同时保持数据治理和安全性。
A. 数据连接和初始设置
在本节中,您将 Amazon SageMaker Canvas 连接到 Snowflake 数据源。
- 导航到 Amazon SageMaker Canvas,从左侧导航窗格中选择 Data Wrangler。选择“导入和准备”,然后选择“Tabular”以处理结构化数据集。
图 2:在 Data Wrangler 中选择 Tabular 的 Amazon SageMaker 数据导入和准备界面
- 指定您的结构化数据集来源。从数据源菜单中选择 Snowflake 作为连接类型。然后选择“添加连接”以在 Amazon SageMaker Canvas 和您的 Snowflake 环境之间建立链接。通过此集成,您可以直接在 Canvas 中访问云数据仓库。这避免了手动数据导出,并确保您始终使用 Snowflake 实例中的最新数据。
图 3:在 Data Wrangler 中选择 Snowflake 作为数据源并添加连接
- 在 Snowflake 连接弹出菜单中,提供以下信息:连接名称。账户 ID,设置为您的 Snowflake 组织值,加上连字符,再加上 Snowflake 账户 ID。您之前设置的 Snowflake 账户的用户名。您之前设置的密码。
图 4:包含连接名称、账户 ID、用户名和密码字段的 Snowflake 连接对话框
- 连接建立后,您将创建卡片级别的异常值阈值,以识别每张信用卡和类别组合中的异常消费模式。这有助于模型检测交易金额是否显著偏离持卡人的典型行为。复制 SQL 查询以准备欺诈检测数据集。
select
CC_NUM,
CATEGORY,
avg(AMT) + (3* stddev_pop(AMT)) as amt_outlier,
case when sum(is_fraud)>1 then 1 else 0 end as fraud_history
from
FRAUD.PUBLIC.FRAUD_TABLE
where trans_date_trans_time<'2020-12-01'
group by
CC_NUM,
CATEGORY- 运行查询:在右上角选择“编辑 SQL”以打开 SQL 编辑器。将 SQL 查询粘贴到编辑器中。选择“运行 SQL”以运行并预览结果。选择“导入”将数据集带入您的 Canvas 工作区。
图 5:Data Wrangler 中的 SQL 编辑器显示准备导入的异常值阈值查询结果
B. 数据富化
在以下步骤中,您将使用交易级特征和特定商户的欺诈指标来丰富数据集。
- 选择“数据流”以添加更多数据。在右上角选择“添加数据”,然后选择“Tabular”。
图 6:数据流画布上的“添加数据”和“Tabular”选项,用于添加第二个数据源
- 选择 Snowflake 作为数据源,并选择之前创建的现有连接。
图 7:为第二个数据源选择现有的 Snowflake 连接
- 在“编辑 SQL”窗口中粘贴 SQL 查询。此查询提供时间模式(一天中的小时、一周中的某天)、人口统计信息(年龄类别)和商户级异常值阈值,这些都是欺诈检测的关键信号。选择“运行 SQL”,然后选择“导入”。
select
t.MERCHANT,
t.CC_NUM,
'H'||extract(hour from t.TRANS_DATE_TRANS_TIME) as TRANS_HOUR,
'D'||extract(dow from t.TRANS_DATE_TRANS_TIME) as TRANS_DOW,
t.state,
t.gender,
'A'||FLOOR(DATEDIFF(YEAR, DATEADD(DAY, 1, CAST(t.dob AS DATE)), CAST(t.TRANS_DATE_TRANS_TIME AS DATE)) / 5) * 5 AS age_category,
t.CATEGORY,
t.IS_FRAUD,
t.AMT,
m.merchant_amt_outlier,
m.merchant_fraud_history
from
FRAUD.PUBLIC.FRAUD_TABLE t
left join (
select
MERCHANT,
avg(AMT) + (3* stddev_pop(AMT)) as merchant_amt_outlier,
case when sum(is_fraud)>1 then 1 else 0 end as merchant_fraud_history
from
FRAUD.PUBLIC.FRAUD_TABLE
where trans_date_trans_time<'2020-12-01'
group by MERCHANT
) m on t.MERCHANT = m.MERCHANT
where t.trans_date_trans_time<'2020-12-01'图8:Data Wrangler预览显示包含时间、人口统计和商户特征的丰富查询
C. 数据转换
在本节中,你将把数据进行合并。
- 在数据流界面中,你会看到从Snowflake导入的两个数据源。选择第一个数据类型,然后选择其旁边的加号图标。选择“合并数据”,然后选择“连接”。当右侧面板打开后,从数据流中选择第二个数据类型进行连接。
图9:显示两个Snowflake源之间“合并数据”和“连接”选项的数据流
- 为连接类型选择“左外连接”。添加连接键并选择“Category”作为左右连接键。
图10:使用“左外连接”类型和“Category”作为连接键的连接配置
- 选择“预览”以查看连接后的数据。选择“添加”以继续操作。
图11:将数据集添加到数据流之前的连接数据预览
接下来,你将创建异常值特征并删除敏感列。
- 返回到数据流界面,选择连接操作,选择其旁边的加号(+),然后选择“添加转换”。
图12:在数据流的连接节点中添加转换
- 界面打开后,在右侧面板选择“添加转换”,然后选择“自定义公式”。
图13:在“添加转换”面板中选择“自定义公式”
- 此选项允许你使用Spark SQL表达式添加列。在主页标签中复制并粘贴以下公式。将输出列命名为“CC_FLAG”并选择“添加”。
CASE WHEN AMT > AMT_OUTLIER THEN 1 ELSE 0 END图14:通过卡片异常值阈值创建CC_FLAG列的自定义公式
- 要添加另一列,重复相同步骤输入自定义公式,然后复制并粘贴此查询,将输出列命名为“MERCHANT_AMT_FLAG”。
CASE WHEN AMT > MERCHANT_AMT_OUTLIER THEN 1 ELSE 0 END图15:通过商户异常值阈值创建MERCHANT_AMT_FLAG列的自定义公式
- 为确保模型不包含卡号、商户名称以及与卡或商户相关的异常值等敏感信息,请使用内置转换删除这些列。选择“添加转换”,然后选择“管理列”。选择转换类型为“删除列”,选择要从数据集中删除的列,然后选择“添加”以应用转换。CC_NUM . AMT_OUTLIER . MERCHANT . MERCHANT_AMT_OUTLIER .
图16:通过“管理列”转换从数据集中删除敏感列
D. 质量分析和模型导出
数据准备完成后,您将运行质量分析报告以深入了解数据。洞察报告可以识别常见的数据问题,例如目标泄露或类别不平衡,帮助用户在工作流程早期阶段解决这些问题。
- 要启动分析,请选择“Analyses”选项卡。在右侧面板中,从“Analysis type”列表中选择“Data Quality and Insights Report”。
- 选择“IS_FRAUD”作为目标列。这告诉Canvas您要预测的变量。然后在“Problem type”下选择“Classification”选项。“Data size”应保持为“Sampled Dataset”。最后,选择“Create”以启动分析。
图17:目标为IS_FRAUD且问题类型为分类的数据质量与洞察报告配置
- 几分钟后,将生成一份详细的分析报告,其中包括数据的快速摘要、特征摘要、重复行、异常样本等信息。在“Quick model”部分,查看训练和验证数据集中的准确性指标。准确性统计之后是混淆矩阵。该报告的目的是在任何数据工程操作后使用,以观察其对模型质量的影响。
图18:包含快速模型准确性指标和混淆矩阵的数据质量与洞察报告
- 特征摘要部分显示特征重要性。在实践中,如果有预测能力较低的特征,您可能会选择删除这些特征。
图19:洞察报告的特征摘要部分显示特征重要性
### 导出到模型构建
现在,您已合并了两个数据源,构建了新特征,删除了不必要的特征,并通过运行分析预览了模型的潜在准确性。数据准备完成后,现在是时候构建预测模型了。
- 首先,返回到“Data flow”选项卡,选择最终转换节点旁边的加号(+),然后选择“Create model”。
图20:从数据流中的最终转换节点创建模型
- 在“Model name”下选择一个描述性名称,然后选择“Export and create model”。导出过程可能需要几分钟时间,因为Canvas会实时处理整个数据集。
图21:在Canvas中输入模型名称并执行“导出并创建模型”操作
几分钟后,Build界面将打开。
图22:导出准备好的数据集后Canvas的Build界面
- 选择“IS_FRAUD”作为目标列。
- 在“Model type”下选择“Configure model”,并选择“2-category model”作为模型类型。
图23:在Canvas中配置2类别模型类型
- 接下来,选择“Ensemble”作为训练方法,使用XGBoost作为算法。这是一个在准确性和效率之间取得平衡的战略选择。
图24:选择集成训练方法并使用XGBoost算法
- 取消选择“FRAUD_HISTORY”和“MERCHANT_FRAUD_HISTORY”列,然后选择“Standard build”以开始训练。模型大约需要15-30分钟完成训练。
图25:取消选择历史列并启动标准构建
- 模型训练完成后,导航到“Analyze”选项卡查看结果。在这里,您可以检查哪些特征对预测影响最大,并通过散点图和图表探索数据值与欺诈分类之间的关系。
图26:Canvas的Analyze选项卡显示特征影响和欺诈分类图表
- 选择“Advanced Metrics”以进一步了解模型性能。
图27:训练后的欺诈检测模型的高级指标视图
- 接下来,使用训练好的模型对未见过的数据集进行预测。下载示例预测CSV文件。导航到“预测”选项卡。选择“手动”,然后选择“创建数据集”。
图28:用于生成预测的手动数据集创建的“预测”选项卡
- 上传数据集,选择“预览数据集”,然后选择“创建数据集”。数据集加载后,选择数据集并选择“生成预测”。模型需要几分钟时间生成预测。等待作业状态变为“就绪”。
- 要使用Amazon Quick Sight对结果进行可视化分析,首先需要验证以下前提条件(详细信息请参阅此处):验证AWS区域一致性:您的Quick Sight账户必须与Amazon SageMaker Canvas域设置在相同的AWS区域。向Amazon SageMaker执行角色添加Amazon Quick Sight权限:附加到Amazon SageMaker域的AWS Identity and Access Management (IAM)执行角色需要额外权限,以便将预测发送到Amazon Quick Sight。导航到IAM控制台,找到与您的Amazon SageMaker域关联的执行角色(在最初设置Amazon SageMaker域时创建),并按照此处描述添加所需的内联策略。授予Quick Sight访问Amazon SageMaker S3存储桶的权限:导航到Quick Sight,进入“管理账户”,然后从左侧导航窗格选择“AWS资源”。确保已选中Amazon Simple Storage Service (Amazon S3),并选择包含Amazon SageMaker Canvas生成的预测的适当S3存储桶,存储桶名称格式为sagemaker-{region}-{account_id}。添加Quick Sight用户:确保您要与之共享预测的用户已以作者或管理员角色添加到您的Quick Sight账户。前往“管理Quick Sight”,导航到“管理用户”以邀请新用户或验证现有用户。详细信息请参阅“管理用户访问”。在发送预测时,您需要输入他们的用户名。
- 接下来,选择作业名称并选择“发送到Amazon Quick Sight”。
图29:选择预测作业并将结果发送到Amazon Quick Sight
- 在新窗口中,将之前已授予Amazon Quick Sight权限的用户添加为仪表板的查看者,然后选择“发送”。
图30:在将预测发送到Amazon Quick Sight之前添加仪表板查看者
## 结论
第2部分涵盖了从连接到Snowflake数据源、使用Data Wrangler的可视化转换进行特征工程,到合并多个数据源、分析数据质量以及训练欺诈检测模型的完整数据准备和模型构建工作流程,整个过程无需机器学习编程专业知识。现在训练好的模型已能对未见过的数据生成预测,这为第3部分奠定了基础。在第3部分中,这些由机器学习驱动的洞察将通过Amazon Quick Sight的交互式仪表板呈现出来。
## 参考资料
- 第1部分 – 使用Snowflake、Amazon SageMaker Canvas和Amazon Quick构建无代码ML工作流程 – 第1部分:设置您的Snowflake环境
- 第3部分 – 使用Snowflake、Amazon SageMaker Canvas和Amazon Quick构建无代码ML工作流程 – 第3部分:使用Amazon Quick Sight可视化洞察
## 作者简介