在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码

自全球金融危机以来,风险管理在银行决策制定中发挥了重要作用,包括预测潜在客户的贷款状况。这通常是一项需要机器学习 (ML) 的数据密集型练习。然而,并非所有组织都拥有构建风险管理机器学习工作流程的数据科学资源和专业知识。

亚马逊SageMaker 是一个完全托管的 ML 平台,允许数据工程师和业务分析师快速轻松地构建、训练和部署 ML 模型。数据工程师和业务分析师可以使用 SageMaker 的无代码/低代码功能​​进行协作。数据工程师可以使用 亚马逊SageMaker数据牧马人 无需编写代码即可快速聚合和准备用于模型构建的数据。然后业务分析师可以使用可视化的点击界面 亚马逊 SageMaker 画布 自行生成准确的 ML 预测。

在这篇文章中,我们将展示数据工程师和业务分析师无需编写代码即可协作构建涉及数据准备、模型构建和推理的 ML 工作流程是多么简单。

解决方案概述

尽管 ML 开发是一个复杂且迭代的过程,但您可以将 ML 工作流程概括为数据准备、模型开发和模型部署阶段。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

Data Wrangler 和 Canvas 抽象了数据准备和模型开发的复杂性,因此您可以通过从数据中获取见解来专注于为您的业务创造价值,而无需成为代码开发专家。以下架构图突出显示了无代码/低代码解决方案中的组件。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

亚马逊简单存储服务 (Amazon S3) 充当我们的原始数据、工程数据和模型工件的数据存储库。您还可以选择从以下位置导入数据 亚马逊Redshift, 亚马逊雅典娜、Databricks 和雪花。

作为数据科学家,我们使用 Data Wrangler 进行探索性数据分析和特征工程。尽管 Canvas 可以运行特征工程任务,但特征工程通常需要一些统计和领域知识来将数据集丰富为模型开发的正确形式。因此,我们将这一责任交给了数据工程师,以便他们无需使用 Data Wrangler 编写代码即可转换数据。

数据准备好后,我们将模型构建职责交给数据分析师,他们可以使用 Canvas 来训练模型,而无需编写任何代码。

最后,我们直接在 Canvas 中根据生成的模型进行单个和批量预测,而无需自己部署模型端点。

数据集概述

我们使用 SageMaker 功能通过 Lending Club 的修改版本来预测贷款状态 公开的贷款分析数据集。该数据集包含 2007 年至 2011 年发放的贷款数据。描述贷款和借款人的栏目是我们的特色。 Loan_status 列是目标变量,这就是我们要预测的变量。

为了在 Data Wrangler 中进行演示,我们将数据集拆分为两个 CSV 文件: 第一部分第二部分。我们从 Lending Club 的原始数据集中删除了一些列以简化演示。我们的数据集包含超过 37,000 行和 21 个特征列,如下表所述。

栏名 产品描述
loan_status 贷款的当前状态(目标变量)。
loan_amount 借款人申请的贷款金额。如果信贷部门减少贷款金额,则会反映在该值中。
funded_amount_by_investors 当时投资者对该贷款承诺的总金额。
term 贷款的还款次数。值以月为单位,可以是 36 或 60。
interest_rate 贷款利率。
installment 如果贷款产生,借款人每月应支付的款项。
grade LC 指定的贷款等级。
sub_grade LC 指定贷款路基。
employment_length 工作年限(以年为单位)。可能的值介于 0–10 之间,其中 0 表示不到一年,10 表示十年或更长。
home_ownership 借款人在登记时提供的房屋所有权状况。我们的价值观是租金、自有、抵押贷款和其他。
annual_income 借款人在登记时提供的自我报告的年收入。
verification_status 表明收入是否经过信用证验证。
issued_amount 贷款融资的月份。
purpose 借款人为贷款请求提供的类别。
dti 使用借款人的每月总债务支付总额除以总债务义务(不包括抵押贷款和所申请的信用证贷款)除以借款人自我报告的月收入计算得出的比率。
earliest_credit_line 借款人最早报告的信用额度开启的月份。
inquiries_last_6_months 过去 6 个月的查询数量(不包括汽车和抵押贷款查询)。
open_credit_lines 借款人信用档案中未结信用额度的数量。
derogatory_public_records 贬损性公共记录的数量。
revolving_line_utilization_rate 循环额度利用率,或借款人相对于所有可用循环信贷使用的信贷金额。
total_credit_lines 借款人信用档案中当前的信用额度总数。

我们使用该数据集进行数据准备和模型训练。

先决条件

完成以下先决条件步骤:

  1. 上传两个贷款文件 到您选择的 S3 存储桶。
  2. 确保您拥有必要的权限。 有关详细信息,请参阅 开始使用 Data Wrangler.
  3. 设置配置为使用 Data Wrangler 的 SageMaker 域。 有关说明,请参阅 加入 Amazon SageMaker 域.

导入数据

创建新的 Data Wrangler 数据流 来自 亚马逊 SageMaker Studio 用户界面.

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

通过从放置数据集的 S3 存储桶中选择 CSV 文件,从 Amazon S3 导入数据。导入这两个文件后,您可以在 数据流 视图。

在 Data Wrangler 流中导入数据时,您可以选择多个采样选项。当您的数据集太大而无法以交互方式准备时,或者当您想要保留采样数据集中稀有事件的比例时,采样会有所帮助。因为我们的数据集很小,所以我们不使用采样。

准备数据

对于我们的用例,我们有两个具有公共列的数据集: id。作为数据准备的第一步,我们希望通过连接这些文件来组合它们。有关说明,请参阅 转换资料.

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

我们使用 加入 数据转换步骤并使用 上的连接类型 id 列。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

作为连接转换的结果,Data Wrangler 创建了两个附加列: id_0id_1。然而,这些列对于我们的模型构建目的来说是不必要的。我们使用以下方法删除这些冗余列 管理栏 变换步骤。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。
在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

我们导入了数据集,加入了它们,并删除了不必要的列。我们现在准备通过特征工程丰富我们的数据并为模型构建做好准备。

执行特征工程

我们使用 Data Wrangler 来准备数据。您还可以使用 数据质量和见解报告功能 在 Data Wrangler 中验证您的数据质量并检测数据中的异常情况。数据科学家通常需要使用这些数据洞察来有效地将正确的领域知识应用于工程功能。对于这篇文章,我们假设我们已经完成了这些质量评估,并且可以继续进行特征工程。

在此步骤中,我们对数字、分类和文本列应用一些转换。

我们首先将利率标准化为 0-1 之间的值。我们使用 处理数值 变换以缩放 interest_rate 使用最小-最大缩放器的列。标准化(或标准化)的目的是消除模型中的偏差。以不同尺度测量的变量对模型学习过程的贡献并不相同。因此,像最小-最大缩放器变换这样的变换函数有助于规范化特征。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

为了将类别变量转换为数值,我们使用 one-hot 编码。我们选择的是 分类编码 变换,然后选择 一键编码。 One-hot 编码提高了 ML 模型的预测能力。此过程通过将二进制值 1 或 0 分配给特征,将分类值转换为新特征。举一个简单的例子,如果您有一列包含以下任一值: yes or no,one-hot 编码会将该列转换为两列: Yes 列和一个 No 柱子。 yes 值的值为 1 Yes 列和 0 No 柱子。 One-hot 编码使我们的数据更加有用,因为数值可以更轻松地确定我们预测的概率。

最后,我们提出了 employer_title 列将其字符串值转换为数值向量。我们应用 计数向量化器 和一个标准分词器 向量化 转换。标记化将句子或一系列文本分解为单词,而矢量化器将文本数据转换为机器可读的形式。这些单词被表示为向量。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

完成所有特征工程步骤后,我们可以导出数据并将结果输出到 S3 存储桶中。或者,您可以将流程导出为 Python 代码或 Jupyter 笔记本,以使用您的视图创建管道 Amazon SageMaker管道。当您想要大规模运行特征工程步骤或作为 ML 管道的一部分时,请考虑这一点。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

我们现在可以使用 Data Wrangler 输出文件作为 Canvas 的输入。我们将其引用为 Canvas 中的数据集来构建我们的 ML 模型。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

在我们的例子中,我们将准备好的数据集导出到默认的 Studio 存储桶,并使用 output 字首。我们在接下来将数据加载到 Canvas 中进行模型构建时会引用该数据集位置。

使用 Canvas 构建和训练您的 ML 模型

在 SageMaker 控制台上,启动 Canvas 应用程序。为了根据上一节中准备的数据构建 ML 模型,我们执行以下步骤:

  1. 将准备好的数据集从 S3 存储桶导入到 Canvas。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

我们引用与上一节中导出 Data Wrangler 结果相同的 S3 路径。

  1. 在Canvas中创建新模型并命名 loan_prediction_model.
  2. 选择导入的数据集并将其添加到模型对象中。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

要让 Canvas 构建模型,我们必须选择目标列。

  1. 因为我们的目标是预测贷方偿还贷款的能力的概率,所以我们选择 loan_status 列。

Canvas 自动识别 ML 问题陈述的类型。在撰写本文时,Canvas 支持回归、分类和时间序列预测问题。您可以指定问题的类型,或者让 Canvas 自动从您的数据推断问题。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

  1. 选择您的选项来开始模型构建过程: 快速建立 or 标准构建.

快速建立 选项使用您的数据集在 2-15 分钟内训练模型。当您尝试新的数据集以确定您拥有的数据集是否足以进行预测时,这非常有用。我们在这篇文章中使用这个选项。

标准构建 选项选择准确性而不是速度,并使用大约 250 个候选模型来训练模型。该过程通常需要 1-2 小时。

模型构建完成后,您可以查看模型的结果。 Canvas 估计您的模型能够在 82.9% 的时间内预测正确的结果。由于训练模型的变化,您自己的结果可能会有所不同。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

此外,您还可以深入模型的细节分析,以了解有关模型的更多信息。

特征重要性表示每个特征在预测目标列时的估计重要性。在这种情况下,信用额度栏对于预测客户是否会偿还贷款金额影响最大,其次是利率和年收入。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

混淆矩阵在 高级指标 部分包含为想要更深入地了解其模型性能的用户提供的信息。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

在为生产工作负载部署模型之前,请使用 Canvas 测试模型。 Canvas 管理我们的模型端点,并允许我们直接在 Canvas 用户界面中进行预测。

  1. 预测 并审查以下任一方面的调查结果 批量预测 or 单次预测 标签。

在下面的示例中,我们通过修改值来预测目标变量来进行单个预测 loan_status 在实时

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

我们还可以选择更大的数据集,并让 Canvas 代表我们生成批量预测。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。

结论

端到端机器学习是复杂且迭代的,并且通常涉及多个角色、技术和流程。 Data Wrangler 和 Canvas 支持团队之间的协作,而无需这些团队编写任何代码。

数据工程师可以使用 Data Wrangler 轻松准备数据,而无需编写任何代码,并将准备好的数据集传递给业务分析师。然后,业务分析师只需使用 Canvas 单击几下即可轻松构建准确的 ML 模型,并实时或批量获得准确的预测。

开始使用数据牧马人 使用这些工具而无需管理任何基础设施。你可以 设置画布 立即快速开始创建 ML 模型来支持您的业务需求。


作者简介

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。彼得·颂 是 AWS 的解决方案架构师,热衷于帮助客户从数据中发现见解。他一直在构建解决方案,帮助公共和私营部门的组织做出数据驱动的决策。他拥有所有 AWS 认证以及两项 GCP 认证。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。 Meenakshisundaram 坦达瓦拉扬 是 AWS 的高级 AI/ML 专家。 他帮助高科技战略客户进行 AI 和 ML 之旅。 他对数据驱动的人工智能充满热情。

在 Amazon SageMaker 上构建风险管理机器学习工作流程,无需代码 PlatoBlockchain Data Intelligence。 垂直搜索。 哎。丹·弗格森 是位于美国纽约的 AWS 的解决方案架构师。作为机器学习服务专家,Dan 致力于支持客户高效、有效和可持续地集成 ML 工作流程。

时间戳记:

更多来自 AWS机器学习