双类逻辑回归
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
创建双类逻辑回归模型
模块概述
本文介绍如何使用 机器学习 Studio (经典 ) 中的双类逻辑回归模块创建一个逻辑回归模型,该模型可用于预测两个 (和两个) 结果。
逻辑回归是一种众所周知的统计方法,用于对许多类型的问题进行建模。 此算法是一种“监督式学习”方法;因此,你必须提供已包含结果的数据集来训练模型。
有关逻辑回归的更多信息
逻辑回归是统计学中著名的用于预测结果概率的方法,尤其是常用于分类任务。 该算法通过将数据拟合到逻辑函数来预测事件发生的概率。 有关此实现的详细信息,请参阅技术说明部分。
在此模块中,分类算法针对二分变量或二元变量进行了优化。 如果需要对多个结果进行分类,请使用多类逻辑回归模块。
如何配置Two-Class回归
若要训练此模型,必须提供一个包含标签或分类列的数据集。 因为此模块专用于解决双类问题,所以标签或分类列必须包含恰好两个值。
例如,标签列可能是 [Voted],并且可能的值为“Yes”或“No”。 或者,它可能是 [Credit Risk],并且可能的值为“High”或“Low”。
将双 类逻辑回归模块 添加到工作室中的试验 (经典) 。
通过设置“创建训练程序模式”选项,指定要如何对模型进行训练。
“单个参数”:如果你知道自己想要如何配置模型,可以提供一组特定的值作为参数。
参数范围:如果不确定最佳参数,可以通过指定多个值和使用优化模型 超 参数模块查找最佳配置来查找最佳参数。 训练程序会多次进行设置组合,并确定生成最佳模型的值的组合。
对于“优化容差”,请指定在优化模型时要使用的阈值。 如果两次迭代之间的改进低于指定的阈值,则会认为算法收敛于某个解,并且训练停止。
对于“L1 正则化权重”和“L2 正则化权重”,请键入要用于正则化参数 L1 和 L2 的值。 对于这两个值,建议使用非零值。
正则化是一种通过处罚具有极端系数值的模型来防止过度拟合的方法。 正则化的工作原理是将与系数值相关联的处罚添加到假设的误差。 因此,具有极端系数值的准确模型受到的处罚更大,但具有保守值的不准确的模型受到的处罚更小。
L1 和 L2 正则化具有不同的效果和用途。
L1 可用于稀疏模型,这在处理高维数据时非常有用。
与此相反,L2 正则化更适合用于非稀疏数据。
此算法支持 L1 和 L2 正则化值的线性组合:也就是说,如果
x = L1
且y = L2
,则ax + by = c
定义正则化术语的线性跨度。注意
想了解 L1 和 L2 正则化的详细信息? 以下文章讨论了 L1 和 L2 正则化有何不同,以及它们对模型拟合有何影响,并提供了用于逻辑回归和神经网络模型的代码示例:机器学习的 L1 和 L2 正则化
已为逻辑回归模型设计了 L1 和 L2 术语的不同线性组合,例如弹性网络正则化。 建议你参考这些组合来定义在你的模型中有效的线性组合。
对于“用于 L-BFGS 的内存大小”,请指定要用于 L-BFGS 优化的内存量。
L-BFGS 表示“limited memory Broyden-Fletcher-Goldfarb-Shanno”。 它是一种常用的参数估计优化算法。 此参数指示要存储以用于下一步计算的过去位置和渐变的数目。
此优化参数限制用来计算下一步和方向的内存量。 指定的内存越少,训练越快,但准确性越低。
对于“随机数种子”,请键入一个整数值。 如果希望在同一试验的多个运行中重现结果,则定义种子值非常重要。
选择" 允许未知分类级别 "选项,在每个分类列中创建其他"未知"级别。 如果这样做,则 (数据集) 测试数据集中不可用的任何值将映射到此"未知"级别。
将带标记的数据集添加到试验,并连接其中一个 训练模块。
注意
如果将参数范围传递给 训练模型,则它只会使用参数范围列表中的第一个值。
如果将一组参数值传递给优化模型超参数模块,则当它需要每个参数的一系列设置时,它会忽略这些值,并且使用学习器的默认值。
如果选择" 参数 范围"选项并输入任何参数的单个值,则指定的单个值将在整个扫描过程中使用,即使其他参数在一系列值中更改。
运行试验。
结果
在训练完成后:
若要查看模型参数的摘要以及从训练中学习的特征权重,请右键单击"训练模型"或"优化模型超参数"的输出,然后选择"可视化"。
若要对新数据进行预测,请使用训练后的模型和新数据作为评分模型模块的输入。
若要对标记的数据集执行交叉验证,请将数据和未训练的模型连接到 交叉验证模型。
示例
有关如何使用此学习算法的示例,请参阅以下 Azure AI 库:
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
使用提示
逻辑回归需要数值变量。 因此,将分类列用作变量时,机器学习将值转换为指示器数组。
对于日期和时间,使用数值表示形式。 (有关日期时间值的信息,请参阅 DateTime Structure (.NET Framework) - Remarks.) 如果要以不同方式处理日期和时间,建议创建派生列。
实现详细信息
逻辑回归假定 数据逻辑 分布,其中示例属于类 1 的概率是公式:
p(x;β0,…, βD-1)
其中:
x
是一个 D 维向量,其中包含 实例的所有功能的值。p
是逻辑分布函数。β{0},..., β {D-1}
是逻辑分布的未知参数。
该算法尝试通过最大化给定输入 β{0},..., β {D-1}
的参数的对数概率来查找 的最佳值。 最大化通过使用常用参数估计方法(称为"有限内存 BFGS")执行。
研究
有关此算法的实现详细信息,请参阅 Andrew 和 Andrew Log-Linear的 L-1 正则化模型可缩放训练。
模块参数
名称 | 范围 | 类型 | 默认 | 说明 |
---|---|---|---|---|
优化容差 | >=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 | 指示是否应为每个分类列创建附加的级别。 测试数据集中不可用于定型数据集的任何级别都会映射到此附加级别。 |
输出
名称 | 类型 | 说明 |
---|---|---|
未训练的模型 | ILearner 接口 | 未训练的分类模型 |