Vertex AI:借助 AutoML 预测贷款风险
概览
在本实验中,您将利用 Vertex AI,用表格式数据集训练和部署机器学习模型,以预测贷款风险。
目标
您将学习如何进行以下操作:
- 将数据集上传到 Vertex AI。
- 用 AutoML 训练机器学习模型。
- 评估模型性能。
- 将模型部署到端点。
- 获取预测结果。
设置
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。
Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。
要求
要完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
- 为完成实验留出时间。
注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。
如何开始实验并登录控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧面板中包含您在进行该实验时必须使用的临时凭据。
-
复制用户名,然后点击打开 Google 控制台。 该实验会启动资源并打开另一个标签页,显示选择账号页面。
注意:请在单独的窗口打开标签页,让它们并排显示。 -
在“选择账号”页面中点击使用其他账号。“登录”页面即会打开。
-
粘贴您从“连接详情”面板复制的用户名,然后复制并粘贴相应的密码。
- 继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于该账号为临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Cloud 控制台。
Vertex AI 简介
本实验使用 Vertex AI(Google Cloud 上的统一 AI 平台)训练和部署机器学习模型。Vertex AI 在一个平台上提供了两种构建机器学习模型的方案:使用 AutoML 的无代码解决方案,以及使用 Vertex Workbench 进行自定义训练的基于代码的解决方案。在本实验中,您将使用 AutoML。
实验中,您将构建机器学习模型来判断特定客户是否会偿还贷款。
任务 1. 准备训练数据
Vertex AI 信息中心一开始会说明训练和部署机器学习模型的主要阶段:准备训练数据、训练模型、获取预测结果。随后,信息中心将显示您的近期活动,例如最近使用的数据集、模型、预测、端点和笔记本实例。
创建数据集
- 在 Google Cloud 控制台中的导航菜单上,依次点击Vertex AI > 数据集。
- 点击创建数据集。
- 将数据集命名为 LoanRisk。
- 对于数据类型和目标,请点击表格并选择回归/分类。
- 点击创建。
上传数据
Vertex AI 提供了三种导入数据的选项:
- 从计算机上传 CSV 文件。
- 选择 Cloud Storage 中的 CSV 文件。
- 从 BigQuery 中选择表或视图。
为方便起见,数据集已上传到 Cloud Storage。
-
对于数据源,请选择选择 Cloud Storage 中的 CSV 文件
-
对于导入文件路径,请输入:
- 点击继续。
(可选)生成统计信息
-
若要查看数据集每一列的描述性统计信息,请点击生成统计信息。
可能需要几分钟才能生成统计信息,尤其是第一次操作时。 -
统计信息就绪后,点击每个列名称即可显示分析图表。
任务 2. 训练模型
上传数据集后,您便可以开始训练模型来预测客户是否会偿还贷款了。
- 点击训练新模型并选择其他。
训练方法
-
数据集已被命名为 LoanRisk。
-
对于目标,请选择分类。
需选择“分类”而不是“回归”,因为您要预测单个数字(客户是否会偿还贷款:0 代表偿还,1 代表违约/不偿还)而不是连续数字。
- 点击继续。
模型详情
指定模型名称和目标列。
-
为模型命名,例如命名为 LoanRisk。
-
对于目标列,选择 Default。
-
(可选)浏览高级选项以确定如何分配训练数据和测试数据,并指定加密方式。
-
点击继续。
-
在“添加特征”部分点击继续。
训练选项
指定您想包含在训练模型中的列。例如,ClientID 可能与预测贷款风险无关。
-
点击 ClientID 行中的减号,将其从训练模型中排除。
-
(可选)浏览高级选项以选择不同的优化目标。
有关表格 AutoML 模型优化目标的详细信息,请参阅表格 AutoML 模型优化目标指南。 -
点击继续。
计算和价格
-
在预算(代表训练的节点时数)部分,请输入 1。
通常,您可以先训练 AutoML 模型 1 个计算时,了解所选的特征和标签之间是否存在关系。然后,您可以修改特征并训练更长时间,以改进模型性能。 -
将早停法保留为已启用状态。
-
点击开始训练。
根据数据规模和训练方法的不同,训练可能需要几分钟到几小时。通常,您会在训练作业完成时收到 Google Cloud 的电子邮件。然而,在 Qwiklabs 环境中,您不会收到电子邮件。
为节省模型训练的等待时间,请在任务 5 中下载预训练模型,并在任务 6 中获取预测结果。 这个预训练模型是执行了任务 1 到任务 2 的步骤训练后所得的模型。
任务 3. 评估模型性能(仅限演示)
Vertex AI 提供了许多指标来评估模型性能。您要关注以下三个指标:
- 精确率/召回率曲线
- 混淆矩阵
- 特征重要性
精确率/召回率曲线
置信度阈值决定了机器学习模型如何统计正例。阈值越高,精确率也越高,但召回率越低。阈值越低,精确率也越低,但召回率越高。
您可以手动调整阈值,观察它对精确率和召回率的影响,并找到满足您业务需求的最佳平衡点。
混淆矩阵
混淆矩阵指出测试集中“每个类别”下模型正确预测的样本比例
混淆矩阵显示,您的初始模型能够正确预测测试集中 100% 的偿付样本和 87% 的违约样本,性能不算太差。
您可以采取一些措施来提升预测准确率,例如,添加更多样本(更多数据)、设计新特征和更改训练方法等。
特征重要性
在 Vertex AI 中,特征重要性通过条形图显示,表明每项特征对预测结果的影响。特征的柱形越长,或者与其相关的数值越大,表明特征越重要。
这些特征重要性值可用于帮助您改进模型并获得更高的预测置信度。在下次训练模型时,您可以尝试删除最不重要的特征,或者将两个更重要的特征结合为一个特征组合,看看是否能够提升模型性能。
特征重要性只是 Vertex AI 综合性机器学习功能 Explainable AI 的一个例子。Explainable AI 是一组工具和框架,可帮助您理解和解释机器学习模型作出的预测。
任务 4. 部署模型(仅限演示)
至此模型已经训练完成,下一步是在 Vertex 中创建端点。Vertex 中的一个模型资源可能会与多个端点关联,您可以在这些端点之间分摊流量。
创建并定义端点
-
在您的模型页上,点击部署和测试,然后点击部署到端点。
-
在端点名称部分,输入 LoanRisk
-
点击继续。
模型设置和监控
-
将流量分配设置保留原样。
-
在机器类型中,选择 e2-standard-8、8 vCPU、32 GiB 内存。
-
对于可解释性选项,请点击特征归因。
-
点击完成。
-
点击继续。
-
在模型监控中,点击继续。
-
在模型目标 > 训练数据源中,选择 Vertex AI 数据集。
-
从下拉菜单中选择您的数据集。
-
在目标列中,输入 Default
-
将其他设置保留原样,并点击部署。
端点需要几分钟才能完成部署。完成后,名称旁边将显示绿色对勾标记。
现在准备好了,您可以用部署的模型获取预测结果了。
任务 5. SML 不记名令牌
检索您的不记名令牌
您需要提供不记名令牌,才能让流水线进行身份验证并让其获得授权以通过调用端点来获取预测结果。
请按照以下说明获取令牌。如果您在获取不记名令牌时遇到问题,这可能是由于无痕式窗口中的 Cookie 造成的。如果您遇到这种情况,请尝试在非无痕式窗口中按照以下步骤操作。
-
登录时,请使用您的学员电子邮件地址和密码。
-
点击复制按钮。此操作会将很长的令牌复制到剪贴板。
此令牌的有效期只有 60 秒,因此请立即复制并继续后续步骤。
任务 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 |
要使用训练好的模型,您需要创建一些环境变量。
-
打开一个 Cloud Shell 窗口。
-
将
INSERT_SML_BEARER_TOKEN
替换为上一任务中的不记名令牌值:
- 下载实验资源:
- 提取实验资源:
- 创建 ENDPOINT 环境变量。
- 创建
INPUT_DATA_FILE
环境变量:
INPUT-JSON
文件包含以下值:
age | ClientID | income | loan |
---|---|---|---|
40.77 | 997 | 44964.01 | 3944.22 |
-
通过传递环境变量中指定的参数来测试 SML 服务。
-
执行对 SML 服务的请求:
此查询应得到类似如下的响应:
- 修改
INPUT-JSON
文件以测试新场景:
age | ClientID | income | loan |
---|---|---|---|
30.00 | 998 | 50000.00 | 20000.00 |
-
编辑
INPUT-JSON
文件并替换原始值。(您可以使用自己选择的编辑器 [vim
、nano
、emacs
] 或 Cloud Shell 代码编辑器) -
通过传递环境变量中指定的参数来测试 SML 服务。
-
执行对 SML 服务的请求:
在本例中,假设个人收入为 50,000 元,年龄为 30 岁,贷款为 20,000 元,模型预测此人将偿还贷款。
此查询应得到类似如下的响应:
如果您使用 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 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。