arrow_back

Vertex AI:借助 AutoML 预测贷款风险

登录 加入
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Vertex AI:借助 AutoML 预测贷款风险

Lab 2 个小时 30 分钟 universal_currency_alt 5 个积分 show_chart 入门级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

概览

在本实验中,您将利用 Vertex AI,用表格式数据集训练和部署机器学习模型,以预测贷款风险。

目标

您将学习如何进行以下操作:

  • 将数据集上传到 Vertex AI。
  • 用 AutoML 训练机器学习模型。
  • 评估模型性能。
  • 将模型部署到端点。
  • 获取预测结果。

设置

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。

Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。

要求

要完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
  • 为完成实验留出时间。

注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。

如何开始实验并登录控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧面板中包含您在进行该实验时必须使用的临时凭据。

    凭据面板

  2. 复制用户名,然后点击打开 Google 控制台。 该实验会启动资源并打开另一个标签页,显示选择账号页面。

    注意:请在单独的窗口打开标签页,让它们并排显示。
  3. 在“选择账号”页面中点击使用其他账号。“登录”页面即会打开。

    选择一个账号对话框,其中突出显示了“使用其他账号”选项

  4. 粘贴您从“连接详情”面板复制的用户名,然后复制并粘贴相应的密码。

注意:您必须使用“连接详情”面板中的凭据,请勿使用您的 Google Cloud Skills Boost 凭据。如果您拥有自己的 Google Cloud 账号,请不要在此实验中使用,以免产生费用。
  1. 继续在后续页面中点击以完成相应操作:
  • 接受条款及条件。
  • 由于该账号为临时账号,请勿添加账号恢复选项或双重验证。
  • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Cloud 控制台。

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。 Cloud 控制台菜单

Vertex AI 简介

本实验使用 Vertex AI(Google Cloud 上的统一 AI 平台)训练和部署机器学习模型。Vertex AI 在一个平台上提供了两种构建机器学习模型的方案:使用 AutoML 的无代码解决方案,以及使用 Vertex Workbench 进行自定义训练的基于代码的解决方案。在本实验中,您将使用 AutoML

实验中,您将构建机器学习模型来判断特定客户是否会偿还贷款。

任务 1. 准备训练数据

Vertex AI 信息中心一开始会说明训练和部署机器学习模型的主要阶段:准备训练数据、训练模型、获取预测结果。随后,信息中心将显示您的近期活动,例如最近使用的数据集、模型、预测、端点和笔记本实例。

创建数据集

  1. 在 Google Cloud 控制台中的导航菜单上,依次点击Vertex AI > 数据集
  2. 点击创建数据集
  3. 将数据集命名为 LoanRisk
  4. 对于数据类型和目标,请点击表格并选择回归/分类
  5. 点击创建

上传数据

Vertex AI 提供了三种导入数据的选项:

  • 从计算机上传本地文件。
  • 选择 Cloud Storage 中的文件。
  • 选择 BigQuery 中的数据。

为方便起见,数据集已上传到 Cloud Storage。

  1. 对于数据源,请选择选择 Cloud Storage 中的 CSV 文件

  2. 对于导入文件路径,请输入:

spls/cbl455/loan_risk.csv
  1. 点击继续
注意:您还可以点击左侧菜单中的数据集,并在“数据集”页面上选择数据集名称,来配置此页面。

(可选)生成统计信息

  1. 若要查看数据集每一列的描述性统计信息,请点击生成统计信息
    可能需要几分钟才能生成统计信息,尤其是第一次操作时。

  2. 统计信息就绪后,点击每个列名称即可显示分析图表。

任务 2. 训练模型

上传数据集后,您便可以开始训练模型来预测客户是否会偿还贷款了。

  • 点击训练新模型并选择其他

训练方法

  1. 数据集已被命名为 LoanRisk

  2. 对于目标,请选择分类

需选择“分类”而不是“回归”,因为您要预测单个数字(客户是否会偿还贷款:0 代表偿还,1 代表违约/不偿还)而不是连续数字。

  1. 点击继续

模型详情

指定模型名称和目标列。

  1. 为模型命名,例如命名为 LoanRisk

  2. 对于目标列,选择 Default

  3. (可选)浏览高级选项以确定如何分配训练数据和测试数据,并指定加密方式。

  4. 点击继续

  5. 在“添加特征”部分点击继续

训练选项

指定您想包含在训练模型中的列。例如,ClientID 可能与预测贷款风险无关。

  1. 点击 ClientID 行中的减号,将其从训练模型中排除。

  2. (可选)浏览高级选项以选择不同的优化目标。
    有关表格 AutoML 模型优化目标的详细信息,请参阅表格 AutoML 模型优化目标指南

  3. 点击继续

计算和价格

  1. 预算(代表训练的节点时数)部分,请输入 1
    通常,您可以先训练 AutoML 模型 1 个计算时,了解所选的特征和标签之间是否存在关系。然后,您可以修改特征并训练更长时间,以改进模型性能。

  2. 将早停法保留为已启用状态。

  3. 点击开始训练

根据数据规模和训练方法的不同,训练可能需要几分钟到几小时。通常,您会在训练作业完成时收到 Google Cloud 的电子邮件。然而,在 Qwiklabs 环境中,您不会收到电子邮件。

为节省模型训练的等待时间,请在任务 5 中下载预训练模型,并在任务 6 中获取预测结果。 这个预训练模型是执行了任务 1任务 2 的步骤训练后所得的模型。

任务 3. 评估模型性能(仅限演示)

Vertex AI 提供了许多指标来评估模型性能。您要关注以下三个指标:

  • 精确率/召回率曲线
  • 混淆矩阵
  • 特征重要性
注意:如果您训练了一个模型,则可以在 Vertex AI 中前往模型注册表标签页。

1. 前往模型注册表

2. 点击您刚才训练的模型。

3. 浏览评估标签页。

但在本实验中,您可以跳过这一步骤,因为您使用的是预训练模型。

精确率/召回率曲线

置信度阈值滑块置于 0.5。此外还有精确率/召回率曲线图、ROC 曲线图和特定阈值下的精确率与召回率图

置信度阈值决定了机器学习模型如何统计正例。阈值越高,精确率也越高,但召回率越低。阈值越低,精确率也越低,但召回率越高。

您可以手动调整阈值,观察它对精确率和召回率的影响,并找到满足您业务需求的最佳平衡点。

混淆矩阵

混淆矩阵指出测试集中“每个类别”下模型正确预测的样本比例

显示真正例标签和预测标签分类的混淆矩阵表

混淆矩阵显示,您的初始模型能够正确预测测试集中 100% 的偿付样本和 87% 的违约样本,性能不算太差。

您可以采取一些措施来提升预测准确率,例如,添加更多样本(更多数据)、设计新特征和更改训练方法等。

特征重要性

在 Vertex AI 中,特征重要性通过条形图显示,表明每项特征对预测结果的影响。特征的柱形越长,或者与其相关的数值越大,表明特征越重要。

贷款、收入和年龄的特征重要性条形图

这些特征重要性值可用于帮助您改进模型并获得更高的预测置信度。在下次训练模型时,您可以尝试删除最不重要的特征,或者将两个更重要的特征结合为一个特征组合,看看是否能够提升模型性能。

特征重要性只是 Vertex AI 综合性机器学习功能 Explainable AI 的一个例子。Explainable AI 是一组工具和框架,可帮助您理解和解释机器学习模型作出的预测。

任务 4. 部署模型(仅限演示)

注意:请不要将模型部署到端点,因为模型训练可能需要花费一个小时。您可以在这里查看要在生产环境中执行的步骤。

至此模型已经训练完成,下一步是在 Vertex 中创建端点。Vertex 中的一个模型资源可能会与多个端点关联,您可以在这些端点之间分摊流量。

创建并定义端点

  1. 在您的模型页上,点击部署和测试,然后点击部署到端点

  2. 端点名称部分,输入 LoanRisk

  3. 点击继续

模型设置和监控

  1. 将流量分配设置保留原样。

  2. 机器类型中,选择 e2-standard-8、8 vCPU、30 GiB 内存

  3. 对于可解释性选项,请点击特征归因

  4. 点击完成

  5. 点击继续

  6. 模型监控中,点击继续

  7. 模型目标 > 训练数据源中,选择 Vertex AI 数据集

  8. 从下拉菜单中选择您的数据集。

  9. 目标列中,输入 Default

  10. 将其他设置保留原样,并点击部署

端点需要几分钟才能完成部署。完成后,名称旁边将显示绿色对勾标记

现在准备好了,您可以用部署的模型获取预测结果了。

任务 5. SML 不记名令牌

检索您的不记名令牌

您需要提供不记名令牌,才能让流水线进行身份验证并让其获得授权以通过调用端点来获取预测结果。

请按照以下说明获取令牌。如果您在获取不记名令牌时遇到问题,这可能是由于无痕式窗口中的 Cookie 造成的。如果您遇到这种情况,请尝试在非无痕式窗口中按照以下步骤操作。

  1. 登录 https://gsp-auth-kjyo252taq-uc.a.run.app/

  2. 登录时,请使用您的学员电子邮件地址和密码。

  3. 点击复制按钮。此操作会将很长的令牌复制到剪贴板。

bearer-login.png

此令牌的有效期只有 60 秒,因此请立即复制并继续后续步骤。

如果您在获取不记名令牌时遇到问题,这可能是由于无痕式窗口中的 Cookie 造成的,请尝试在非无痕式窗口中进行操作。

任务 6. 获取预测结果

在本部分,将共享机器学习 (SML) 服务与训练好的模型搭配使用。

ENVIRONMENT VARIABLE VALUE
AUTH_TOKEN 使用来自上一任务中的值
ENDPOINT https://sml-api-vertex-kjyo252taq-uc.a.run.app/vertex/predict/tabular_classification
INPUT_DATA_FILE INPUT-JSON

要使用训练好的模型,您需要创建一些环境变量。

  1. 打开一个 Cloud Shell 窗口。

  2. INSERT_SML_BEARER_TOKEN 替换为上一任务中的不记名令牌值:

export AUTH_TOKEN="INSERT_SML_BEARER_TOKEN"
  1. 下载实验资源:
gcloud storage cp gs://spls/cbl455/cbl455.tar.gz .
  1. 提取实验资源:
tar -xvf cbl455.tar.gz
  1. 创建 ENDPOINT 环境变量。
export ENDPOINT="https://sml-api-vertex-kjyo252taq-uc.a.run.app/vertex/predict/tabular_classification"
  1. 创建 INPUT_DATA_FILE 环境变量:
export INPUT_DATA_FILE="INPUT-JSON" 注意:提取实验资源后,请花些时间审阅内容。

INPUT-JSON 文件用于为 Vertex AI 提供所需模型数据。请修改此文件以生成自定义预测结果。

smlproxy 应用用于与后端通信。

INPUT-JSON 文件包含以下值:

age ClientID income loan
40.77 997 44964.01 3944.22
  1. 通过传递环境变量中指定的参数来测试 SML 服务。

  2. 执行对 SML 服务的请求:

./smlproxy tabular \ -a $AUTH_TOKEN \ -e $ENDPOINT \ -d $INPUT_DATA_FILE

此查询应得到类似如下的响应:

SML Tabular HTTP Response: 2022/01/10 15:04:45 {"model_class":"0","model_score":0.9999981}
  1. 修改 INPUT-JSON 文件以测试新场景:
age ClientID income loan
30.00 998 50000.00 20000.00
  1. 通过传递环境变量中指定的参数来测试 SML 服务。

  2. 编辑 INPUT-JSON 文件并替换原始值。

  3. 执行对 SML 服务的请求:

./smlproxy tabular \ -a $AUTH_TOKEN \ -e $ENDPOINT \ -d $INPUT_DATA_FILE

在本例中,假设个人收入为 50,000 元,年龄为 30 岁,贷款为 20,000 元,模型预测此人将偿还贷款。

此查询应得到类似如下的响应:

SML Tabular HTTP Response: 2022/01/10 15:04:45 {"model_class":"0","model_score":1.0322887E-5}

如果您使用 Google Cloud 控制台,下图描绘了如何执行相同的操作:

在相关部分突出显示的预测步骤

恭喜!

您现在已经可以使用 Vertex AI 完成以下操作:

  • 上传数据集。
  • 通过 AutoML 训练模型。
  • 评估模型性能。
  • 将训练好的 AutoML 模型部署到端点。
  • 获取预测结果。

如需详细了解 Vertex AI 的各个部分,请参阅 Vertex AI 文档

结束实验

完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

星级数的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。