多类逻辑回归

重要

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

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

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

创建多类逻辑回归分类模型

类别:机器学习/初始化模型/分类

注意

适用于:机器学习 Studio (经典) 应用

可在 Azure 机器学习设计器中获取类似的拖放模块。

模块概述

本文介绍如何使用 机器学习 Studio (经典 ) 中的多类逻辑回归模块创建可用于预测多个值逻辑回归模型。

使用逻辑回归的分类方法是一种监督式学习方法,因此需要经过标记的数据集。 通过提供模型和标记数据集作为模块的输入(如训练模型或优化模型超参数)来训练模型。 然后即可使用训练的模型来预测新输入示例的值。

机器学习 Studio (经典) 还提供双类逻辑回归模块,该模块适用于二元变量或二分变量的分类。

有关多类逻辑回归的更多信息

逻辑回归是统计信息中的一种已知方法,用于预测结果的概率,特别适用于分类任务。 该算法通过将数据拟合到逻辑函数来预测事件发生的概率。 有关此实现的详细信息,请参阅技术说明部分。

在多类逻辑回归中,分类器可用于预测多个结果。

如何配置多类逻辑回归

  1. 多类逻辑回归 模块添加到试验。

  2. 通过设置“创建训练程序模式”选项,指定所希望的模型训练方式。

    • 单个参数:如果知道自己想要如何配置模型,请使用此选项并提供一组特定的值作为参数。

    • 参数范围:如果不确定最佳参数,并且想要使用参数扫描,请使用此选项。

  3. 优化容差,指定优化器收敛的阈值。 如果迭代间的改进小于阈值,则算法将停止并返回当前模型。

  4. L1 正则化权重L2 正则化权重:键入要用于正则化参数 L1 和 L2 的值。 对于这两个值,建议使用非零值。

    正则化是一种通过处罚具有极端系数值的模型来防止过度拟合的方法。 正则化的工作原理是将与系数值相关联的处罚添加到假设的错误。 具有极端系数值的准确模型受到的处罚相较而言更大,而值更保守的不准确的模型受到的处罚相较而言更小。

    L1 和 L2 正则化具有不同的效果和用途。 L1 可用于稀疏模型,这在处理高维数据时非常有用。 与此相反,L2 正则化更适合用于非稀疏数据。 此算法支持 L1 和 L2 正则化值的线性组合:也就是说,如果 x = L1y = L2,则 ax + by = c 定义正则化术语的线性跨度。

    已为逻辑回归模型设计了 L1 和 L2 术语的不同线性组合,例如弹性网络正则化

  5. L-BFGS 的内存大小:指定用于 L-BFGS 优化的内存 量。 此参数指示要存储以用于下一步计算的过去位置和渐变的数目。

    L-BFGS 代表受限内存 Broyden-Fletcher-Goldfarb-Shanno,它是一种优化算法,常用于参数估计。 此优化参数限制用来计算下一步和方向的内存量。 指定的内存越少,训练越快,但准确性越低。

  6. 随机数种子:如果希望结果在运行期间是可重复的,请键入一个整数值作为算法的种子。 否则,系统时钟值用作种子,在运行同一试验时可能会产生略有不同的结果。

  7. 允许未知分类级别:选择此选项可在每个分类列中创建其他"未知"级别。 测试 (数据集中) 级别的任何值将映射到此"未知"级别。

  8. 将带标签的数据集连接到一个训练模块:

    • 如果将“创建训练程序模式”设置为“单个参数”,请使用训练模型模块。

    • 如果将“创建训练程序模式”设置为“参数范围”,请使用优化模型超参数模块 。 使用此选项,可以指定多个值,并且训练程序会访问设置的多个组合,以确定生成最佳模型的值的组合。

    注意

    如果将参数范围传递给训练模型模块,则它只使用参数范围列表中的第一个值。

    如果将一组参数值传递给优化模型超参数模块,则当它期望每个参数有一系列设置时,它会忽略这些值,并为学习器使用默认值。

    如果选择“参数范围”选项并为任何参数输入单个值,则整个整理过程中都会使用你指定的单个值,即使其他参数的值发生一系列更改。

  9. 运行试验。

结果

在训练完成后:

  • 若要查看模型参数的摘要以及从训练中学习的特征权重,请右键单击"训练模型"模块的输出或"优化模型超参数",然后选择"可视化"

示例

有关如何使用此学习算法的示例,请参阅以下 Azure AI 库

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

想了解 L1 和 L2 正则化的详细信息? 以下文章通过逻辑回归和神经网络模型的代码示例,讨论了 L1 和 L2 正则化有何不同,以及它们如何影响模型拟合。

有关此算法的实现详细信息,请参阅:

实现详细信息

逻辑回归需要数值变量。 因此,当你尝试使用分类列作为变量时,机器学习将值转换为指示器数组。

对于日期和时间,使用数值表示形式。 有关日期时间值的信息,请参阅 DateTime 结构.NET Framework。 如果要以不同方式处理日期和时间,建议创建派生列。

标准逻辑回归是二项式回归,假定有两个输出类。 多类或多项式逻辑回归假设有三个或多个输出类。

二项式逻辑回归假定数据逻辑分布,其中,示例属于类 1 的概率是公式:

p(x;β0,…, βD-1)

其中:

  • x 是一个 D 维向量,包含 实例的所有特征的值。

  • p 是逻辑分布函数。

  • β{0},..., β {D-1} 是逻辑分布的未知参数。

该算法尝试通过最大化给定输入 β{0},..., β {D-1} 的参数的对数概率来查找 的最佳值。 最大化通过使用常用参数估计方法(称为"有限内存 BFGS")执行

模块参数

名称 范围 类型 默认 说明
优化容差 >=double.Epsilon Float 0.0000001 为 L-BFGS 优化器指定容差值
L1 正则化权重 >= 0。0 Float 1.0 指定 L1 正则化权重。 使用非零值以避免过度拟合。
L2 正则化权重 >= 0。0 Float 1.0 指定 L2 正则化权重。 使用非零值以避免过度拟合。
L-BFGS 的内存大小 >=1 Integer 20 指定用于 L-BFGS 优化器的内存量(以 MB 为单位)。 使用的内存越少,训练速度就越快,但准确性越低。
随机数种子 任意 Integer 键入一个值以设置模型使用的随机数生成器种子。 默认留空。
允许未知的分类级别 任意 布尔 True 指示是否应为每个分类列创建附加的级别。 测试数据集中不可用于定型数据集的任何级别都会映射到此附加级别。

Outputs

名称 类型 说明
未训练的模型 ILearner 接口 未训练的分类模型

另请参阅

分类
双类逻辑回归
A-Z 模块列表