教程 2:训练信用风险模型 - 机器学习工作室(经典)

适用于:这是一个复选标记,表示本文适用于机器学习工作室(经典)。机器学习 Studio(经典版)Azure 机器学习 这是一个 X,这意味着本文不适用于Azure 机器学习。

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

在本教程中,我们将深入探讨开发预测分析解决方案的过程。 我们将在机器学习工作室(经典版)中开发一个简单模型。 然后将模型部署为机器学习 Web 服务。 部署的模型将使用新数据进行预测。 本教程是由三个部分构成的系列教程的第二部分

假设用户需要根据他们提供的贷款申请相关信息预测个人的信用风险。

信用风险评估是个较为复杂的问题,但本教程会将其适当简化。 你将使用它作为示例,展示如何使用机器学习工作室(经典)来创建预测分析解决方案。 在该解决方案中,将使用机器学习工作室(经典)和机器学习 Web 服务。

在这篇由三个部分构成的教程中,我们将从公开的信用风险数据着手。 然后开发并训练预测模型。 最后将该模型部署为 Web 服务。

本教程的第一部分中,已创建了一个机器学习工作室(经典版)工作区、上传了数据,并创建了试验。

本教程部分介绍以下操作:

  • 训练多个模型
  • 评分和评估模型

本教程的第三部分,我们要将此模型部署为 Web 服务。

先决条件

完成本教程的第一部分

训练多个模型

使用机器学习工作室(经典)创建机器学习模型的优势之一是,能够在单个实验中一次性尝试多种模型并比较结果。 此类型的实验有助于找到最适合解决问题的解决方案。

在本教程开发的试验中,你将创建两个不同类型的模型,然后比较其评分结果,从而确定我们希望用于最终试验的算法。

可从多种模型中进行选择。 要查看可用的模型,请在模块调色板中展开“机器学习”节点,并展开“初始化模型”及其下面的节点。 为实现本试验的目的,将选择两类支持向量机 (SVM) 和两类提升决策树模块。

在此试验中,将同时添加两类提升决策树模块和两类支持向量机模块。

两类提升决策树

首先设置提升决策树模型。

  1. 在模块面板中找到两类提升决策树模块,并将其拖动到画布上。

  2. 找到训练模型模块、将其拖动到画布上,然后将两类提升决策树模块的输出连接到训练模型模块的左侧输入端口。

    两类提升决策树模块初始化泛型模型,训练模型使用训练数据来训练模型。

  3. 将左侧执行 R 脚本模块的左侧输出连接到训练模型模块的右侧输入端口(在本教程中,使用了“拆分数据”模块左侧传出的数据进行训练)。

    提示

    此试验不需要执行 R 脚本模块的两个输入和一个输出,因此可以将其保留为未附加状态。

实验的此部分现在如下所示:

训练模型

现在,需要告诉训练模型模块我们希望它预测信用风险值。

  1. 选择训练模型模块。 在属性窗格中,单击启动列选择器

  2. 选择单个列对话框中,在可用列下的搜索字段中键入“信用风险”,在下方选择“信用风险”,并单击向右箭头按钮 (>) 将“信用风险”移动到选定列

    选择“训练模型”模块的“信用风险”列

  3. 单击确定复选标记。

两类支持向量机

接下来设置 SVM 模型。

首先,简要介绍 SVM。 提升决策树非常适用于所有类型的功能。 但是,因为 SVM 模块生成一个线性分类器,因此它生成的模型在所有数值功能具有相同范围时存在最佳测试错误。 若要使所有数值功能转换为同一范围,请使用“Tanh”转换(通过规范化数据模块)。 这会将我们的数字转换为 [0,1] 范围。 SVM 模块将字符串功能依次转换为分类功能和二进制 0/1 功能,因此无需手动转换字符串功能。 此外,也不需要转换“信用风险”列(列 21)- 它是数值,但也是我们在训练模型时要预测的值,因此需要使其保持不变。

若要设置 SVM 模型,请执行以下操作:

  1. 在模块面板中找到两类支持向量机模块,并将其拖动到画布上。

  2. 右键单击训练模型模块,选择“复制”,然后右键单击画布并选择“粘贴”训练模型模块的副本具有与原始模块相同的列选择。

  3. 两类支持向量机模块的输出连接到第二个训练模型模块的左侧输入端口。

  4. 查找规范化数据模块并将其拖动到画布上。

  5. 将左侧执行 R 脚本模块的左侧输出连接到此模块的输入(请注意,模块的输出端口可以连接到多个其他模块)。

  6. 规范化数据模块的左侧输出端口连接到第二个训练模型模块的右侧输入端口。

我们实验的此部分现在应如下所示:

训练第二个模型

现在,配置规范化数据模块:

  1. 单击选择规范化数据模块。 在“属性”窗格中,选择“Tanh”作为“转换方法”参数。

  2. 单击“启动列选择器”、为“开始”选择“没有列”、在第一个下拉列表中选择“包括”、在第二个下拉列表中选择“列类型”,并在第三个下拉列表中选择“数值”。 这会指定所有数值列(和唯一数值)均已转换。

  3. 单击此行右侧的加号 (+),这会创建一行下拉列表。 在第一个下拉列表中选择“排除”,在第二个下拉列表中选择“列名称”,并在文本字段中输入“信用风险”。 这会指定应忽略“信用风险”列(我们需要执行此操作,因为此列是数值,因此,如果不排除,也将转换)。

  4. 单击确定复选标记。

    选择用于“规范化数据”模块的列

规范化数据模块现在设置为在所有数值列(“信用风险”列除外)上执行 Tanh 转换。

评分和评估模型

使用已由拆分数据模块分隔出的测试数据对已训练的模型进行评分。 然后,可以比较两个模型的结果,查看哪个模型生成的结果更好。

添加“评分模型”模块

  1. 找到评分模型模块并将其拖动到画布上。

  2. 将已连接到两类提升决策树模块的训练模型模块连接到评分模型模块的左侧输入端口。

  3. 将右侧执行 R 脚本模块(测试数据)连接到评分模型模块的右侧输入端口。

    已连接的“评分模型”模块

    评分模型模块现在可以从测试数据中获取信用信息、通过模型运行它,并比较模型生成的预测与测试数据中的实际信用风险列。

  4. 复制并粘贴评分模型模块以创建第二个副本。

  5. 将 SVM 模型的输出(即连接到两类支持向量机模块的训练模型模块的输出端口)连接到第二个评分模型模块的输入端口。

  6. 对于 SVM 模型,我们需要像处理训练数据一样,对测试数据执行相同的转换。 因此,请复制并粘贴规范化数据模块以创建第二个副本,并将其连接到右侧执行 R 脚本模块。

  7. 将第二个规范化数据模块的左侧输出连接到第二个评分模型模块的右侧输入端口。

    已连接的两个“评分模型”模块

添加“评估模型”模块

若要评估两个评分结果并对其进行比较,请使用评估模型模块。

  1. 找到评估模型模块并将其拖动到画布上。

  2. 将与提升决策树模型相关联的评分模型模块的输出端口连接到评估模型模块的左侧输入端口。

  3. 将另一个评分模型模块连接到右侧输入端口。

    已连接的“评估模型”模块

运行实验并检查结果

若要运行此实验,请单击画布下面的“运行”按钮。 可能需要几分钟时间。 每个模块上的旋转指示符显示它正在运行,模块完成后,会显示一个绿色对号。 当所有模块都有一个对号时,表示该实验已完成运行。

实验现在看起来应当与下图类似:

评估两种模型

要检查结果,请单击评估模型模块的输出端口,并选择“可视化”

评估模型模块将生成一对曲线和度量值,从而比较两个已评分模型的结果。 可将结果视为受试者工作特征 (ROC) 曲线、精度/召回曲线或提升曲线。 其他显示数据包括混淆矩阵、曲线下面积 (AUC) 的累积值和其他度量值。 可通过将滑块向左或向右移动更改阈值,并查看它如何影响度量值集。

在图表右侧,单击“已评分数据”或“要比较的已评分数据集”,突出显示关联的曲线并在下方显示关联的度量值。 在曲线图例中,“已评分数据集”对应于评估模型(本例中的是提升决策树模型)模块的左侧输入端口。 “要比较的已评分数据集”对应于右侧输入端口;在本例中,这是 SVM 模型。 单击其中一个标签后,该模型的曲线将突出显示,并且会显示相应的度量值,如下图所示。

模型的 ROC 曲线

通过检查这些值,可以确定哪个模型提供的结果与你所需的结果最接近。 可以返回到之前的步骤,通过更改不同模型中的参数值来迭代进行实验。

对这些结果进行解释以及对模型性能进行优化的科学与艺术不在本教程的范围内。 若要获得更多帮助,可以阅读以下文章:

提示

每次运行实验时,该迭代的记录都会保留在运行历史记录中。 可以通过单击画布下面的“查看运行历史记录”查看这些迭代,并返回到任何一个迭代。 也可以单击“属性”窗格中的“之前运行”,返回到已打开迭代的前一个迭代。

可通过单击画布下面的“另存为”,复制实验的任何迭代。 使用试验的“摘要”和“说明”属性,保留在试验迭代中所尝试操作的记录。

有关详细信息,请参阅在机器学习工作室(经典)中管理试验迭代

清理资源

如果不再需要通过本文创建的资源,请删除它们,以免产生费用。 在导出和删除产品内用户数据一文中了解具体信息。

后续步骤

在本教程中,我们已完成以下步骤:

  • 创建试验
  • 训练多个模型
  • 评分和评估模型

现在,可以部署此数据的模型。