双类决策林

重要

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

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

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

使用决策林算法创建双类分类模型

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

注意

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

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

模块概述

本文介绍如何使用 机器学习 Studio (经典 ) 中的双类决策林模块基于决策林算法创建机器学习模型。

决策林是快速的监督式集成模型。 如果希望预测具有最多两个结果的目标,则此模块是一个不错的选择。 如果不确定如何配置决策树模型以获得最佳结果,建议使用优化模型 超参数 模块来训练和测试多个模型。 优化会针对多种可能性进行探索,并找到最佳解决方案。

了解决策林

此决策林算法是一种用于分类任务的集成学习方法。 集成方法的基本原理是,可以通过创建多个相关模型并以某种方式组合它们来获得更好的结果和更通用的模型,而不是依赖于单个模型。 一般说来,集成模型可以提供比单个决策树更大的覆盖范围和更高的准确度。

有许多方法可用来创建各个模型并将它们组合到一个集成中。 决策林的此特定实现的工作原理是生成多个决策树,然后对最受欢迎的输出类进行投票。 投票是用于在一个集成模型中生成结果的更知名方法之一。

  • 将使用整个数据集但使用不同的(通常为随机的)起点创建许多单独的分类树。 这不同于随机林方法,在随机林方法中,各个决策树可能仅使用数据或特征的某个随机部分。
  • 决策林中的每个树都会输出标签的一个非标准化频率直方图。
  • 聚合过程将这些直方图求和,并对结果进行规范化以获得每个标签的“概率”。
  • 决策树的预测置信度越高,它在集成的最终决策中所占的权重越高。

通常,对于分类任务,决策树有许多优势:

  • 它们可以捕获非线性决策边界。
  • 你可以基于大量数据进行训练和预测,因为它们在计算和内存使用方面很有效。
  • 训练和分类流程中集成了特征选择。
  • 树可以容纳干扰数据和许多功能。
  • 它们是非参数模型,这意味着它们可以处理具有不同分布的数据。

但是,简单决策树可能会基于数据过度拟合,并且通用性比集成更低。

有关详细信息,请参阅决策 或技术说明部分 中列出的其他 论文。

如何配置Two-Class林

  1. 双类决策林模块添加到 机器学习 Studio (经典) 中的试验,并打开模块的"属性"窗格。

    可以在“机器学习”下找到此模块。 依次展开“初始化”和“分类”。

  2. 对于“重新采样方法”,请选择用于创建各个树的方法。 你可以选择“装袋”或“复制”。

    • 装袋:装袋也称为“启动聚合”。 在此方法中,每个树都在新示例的基础上发展。新示例的创建方法是,对原始数据集进行随机采样并替换,直到得到与原始数据集相同大小的数据集。

      通过投票(一种聚合形式)组合模型的输出。 分类决策林中的每个树输出标签的未标准化频率直方图。 聚合是计算这些直方图的总和并标准化,以获得每个标签的"概率"。 在此方式中,决策树的预测置信度越高,它在集成的最终决策中所占的权重越高。

      有关详细信息,请参阅关于启动聚合的维基百科条目。

    • 复制:在复制中,每个树都用完全相同的输入数据进行训练。 确定每个树节点使用哪个拆分谓词仍然是随机的,并且树将多种多样。

      有关使用"复制"选项的训练 过程详细信息, 请参阅技术说明部分 中列出的 文章。

  3. 通过设置“创建训练程序模式”选项,指定要如何对模型进行训练。

    • “单个参数”:如果你知道自己想要如何配置模型,可以提供一组特定的值作为参数。

    • 参数范围:如果不确定最佳参数,可以通过指定多个值和使用优化模型 参数模块查找最佳配置来查找最佳参数。 训练程序会多次复用所提供的设置,并确定生成最佳模型的值的组合。

  4. 对于“决策树数目”,键入可在集成中创建的最大决策树数目。 通过创建更多决策树,你可能会获得更好的覆盖范围,但训练时间将会增加。

    注意

    此值还控制对训练后的模型进行可视化时显示的树的数量。 如果希望查看或打印单个树,可以将此值设置为 1。 但是,只能生成一个树(该树采用初始的参数集),不会执行进一步的迭代。

  5. 对于“决策树的最大深度”,请键入一个数字,以限制任何决策树的最大深度。 增加树的深度可能会提高精度,但存在过度拟合和训练时间增加的风险。

  6. 对于“每个节点的随机拆分数”,键入在生成树的每个节点时要使用的拆分数。 “拆分”意味着对树的每个级别(节点)的要素进行随机划分。

  7. 对于“每个叶节点的最少样本数”,指定在树中创建任何终端节点(叶)所需的最小事例数。

    通过增加此值,可以增加创建新规则的阈值。 例如,使用默认值 1 时,即使是单个案例也可以导致创建新规则。 如果将值增加到 5,则训练数据将必须包含至少 5 个满足相同条件的案例。

  8. 选择“允许分类特征的未知值”选项可以为训练或验证集内的未知值创建一个组。 对于已知值,此模型可能不太精确,但是对于新的(未知)值,它可以提供更好的预测。

    如果取消选择此选项,则模型只能接受训练数据中包含的值。

  9. 附加一个带标签的数据集和训练模块之一:

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

    • 如果将"创建训练程序模式"设置为"参数范围",请使用"优化模型超参数"

    注意

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

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

    如果选择" 参数 范围"选项并输入任何参数的单个值,则即使其他参数在一系列值中更改,该单个值也在整个扫描过程中使用。

结果

在训练完成后:

  • 若要查看每次迭代时创建的树,请右键单击"训练模型 " 模块,然后选择 "训练的模型"进行 可视化。 如果使用" 优化模型超参数",请右键单击模块并选择" 训练 的最佳模型",以可视化最佳模型。

    单击每个树以向下钻取拆分,并查看每个节点的规则。

  • 若要保存模型的快照,请右键单击“已训练模型”输出,选择“保存模型”。 在连续运行试验时,不会更新保存的模型。

  • 若要使用模型进行评分,请向试验 添加评分 模型模块。

示例

有关如何在机器学习中使用的决策林的示例,请参阅以下示例中 Azure AI 库

技术说明

本部分包含其他实现详细信息、研究以及常见问题。

使用提示

如果数据有限,或者要尽量减少训练模型所花费的时间,请尝试以下设置:

有限的训练集

如果训练集包含有限数量的实例:

  • 使用大量的决策树(例如,20 个以上)创建决策林。
  • 使用“装袋”选项来重新采样。
  • 为每个节点指定大量的随机拆分(例如,1,000 个以上)。

有限的训练时间

如果训练集包含大量实例并且训练时间有限:

  • 使用较少的决策树(例如,5-10 个)创建决策林。
  • 使用“复制”选项来重新采样。
  • 为每个节点指定少量的随机拆分(例如,100 个以下)。

实现详细信息

Microsoft Research 的本文提供了有关使用决策树的一系列方法的有用信息。 从"树"到"树"到"林"

有关使用"复制"选项的训练过程详细信息,请参阅决策林计算机视觉和医疗图像分析。Criminisi 和 J. Shotton。Springer 2013。

模块参数

名称 范围 类型 默认 说明
重新采样方法 任意 ResamplingMethod 装袋 选择重新采样方法
决策树数 >=1 Integer 8 指定要在系综中创建的决策树数
决策树的最大深度 >=1 Integer 32 指定可创建的任何决策树的最大深度
每个节点的随机拆评分 >=1 Integer 128 为要从中选择最佳拆分的每个节点指定生成的拆评分
每个叶节点的最小样本数 >=1 Integer 1 指定生成叶节点所需的最小训练样本数
允许分类特征的未知值 任意 布尔 True 指示是否可将现有分类特征的未知值映射到其他新特征

输出

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

另请参阅

分类
决策林回归
多类决策林
A-Z 模块列表