类别

版本

随机森林(并发)

剧情简介

该算子生成一个随机森林模型,该模型可用于分类和回归。

描述

随机森林是一定数量的随机树的集合,由树的数量参数。这些树是在输入端口提供的ExampleSet的自引导子集上创建/训练的。树的每个节点表示一个特定属性的拆分规则。属性指定的属性子集子集的比例标准,用于拆分规则的选择。该规则对所选参数以最优方式分隔值标准。对于分类规则是分离属于不同类别的值,而对于回归规则是分离它们以减少估计所产生的误差。重复构建新节点,直到满足停止条件。

生成后,可以使用Apply model算子将随机森林模型应用到新的示例中。每个随机树通过按照分裂规则跟踪树的分支并评估叶子来生成每个示例的预测。类预测基于大多数示例,而估计是通过到达叶子的值的平均值获得的。得到的模型是所有创建的随机树的投票模型。由于所有单个预测都被认为是同等重要的,并且是基于示例的子集,因此最终预测的变化往往小于单个预测。

一个叫做修剪的概念可以通过替换子树来降低模型的复杂性,这些子树只能提供很少的预测能力。对于不同类型的修剪,请参考参数说明。

极端随机树是一种类似于随机森林的方法,可以通过检查将随机参数和禁用修剪。此方法需要调优的重要参数是最小叶大小分流比,可在禁用后更改猜测分割比。的良好默认选择最小叶大小2用于分类,5用于回归问题。

分化

决策树

决策树操作符创建一个树,其中每个节点上的所有属性都可用,用于选择与所选对象相关的最优属性标准。由于只生成了一棵树,预测对人类来说更容易理解,但可能会导致过度训练。

装袋

Bootstrap aggregating (bagging)是一种机器学习集成元算法,用于提高分类和回归模型的稳定性和分类精度。它还减少了方差,有助于避免“过度拟合”。虽然它通常应用于决策树模型,但它可以用于任何类型的模型。随机森林使用随机树木套袋。

渐变增强树

梯度提升树算子通过迭代改进单个树模型来训练模型。在每个迭代步骤之后,示例都会根据之前的预测重新加权。最终模型是所有已创建模型的加权和。训练参数是根据所产生的误差所描述的函数的梯度来优化的。

输入

  • 训练集(数据表)

    用于生成随机森林模型的输入数据。

输出

  • 模型(随机森林模型)

    随机森林模型从这个输出端口传递。

  • 榜样(数据表)

    作为输入给出的ExampleSet不会通过该端口更改为输出。

  • 权重(权重)

    一个包含属性和权重值的ExampleSet,其中每个权重代表给定属性的特征重要性。权重由节点上提供的给定属性的选择改进的总和给出。改进的数量取决于所选择的标准。

参数

  • number_of_trees

    该参数指定要生成的随机树的数量。对于每棵树,通过自举选择示例的子集。如果参数启用并行执行,则在可用的处理器线程上并行地训练树。

    范围:
  • 标准

    选择将根据其选择属性进行分割的标准。对于这些标准中的每一个,拆分值都针对所选标准进行了优化。它可以是以下值之一:

    • information_gain:计算所有属性的熵,选择熵最小的属性进行拆分。这种方法倾向于选择具有大量值的属性。
    • gain_ratio:信息增益的一个变体,它调整每个Attribute的信息增益,以允许Attribute值的宽度和一致性。
    • gini_index:标签特征分布之间不平等的度量。对所选属性进行拆分会导致所得到子集的平均基尼指数降低。
    • accuracy:选择一个属性进行分割,使整棵树的精度最大化。
    • least_square:选择一个属性进行分割,它最小化节点中值的平均值相对于真实值之间的平方距离。
    范围:
  • maximal_depth

    树的深度取决于ExampleSet的大小和特征。该参数用于限制每个随机树的深度。如果它的值被设置为'-1',则最大深度参数对树的深度没有限制。在这种情况下,所有树都将被构建,直到满足其他停止条件。如果它的值设置为'1',则只生成具有单个节点的树。

    范围:
  • apply_prepruning

    此参数指定是否有更多的停止条件最大深度应该在决策树的生成过程中使用。如果选中,则参数最小增益最小叶大小分体最小尺寸预修剪选项的数目被用作停止标准。

    范围:
  • minimal_gain

    节点的增益是在分裂之前计算的。如果该节点的增益大于最小增益,则该节点被分割。更高的值最小增益导致更少的分裂,从而更小的树。过高的值将完全阻止分裂,生成具有单个节点的树。

    范围:
  • minimal_leaf_size

    叶子的大小是其子集中样本的数量。随机森林的树是这样生成的,每片叶子至少有最小叶大小例数。

    范围:
  • minimal_size_for_split

    节点的大小是其子集中示例的数量。只拆分那些大小大于或等于的节点分体最小尺寸参数。

    范围:
  • number_of_prepruning_alternatives

    当在某个节点上通过预剪枝来防止分裂时,该参数将调整测试分裂的备选节点的数量。在预修剪与树生成过程并行运行时发生。这可能会防止在某些节点上分裂,当在该节点上分裂不会增加整个树的判别能力时。在这种情况下,尝试其他节点进行分裂。

    范围:
  • apply_pruning

    随机森林模型的随机树可以在生成后进行修剪。如果检查,一些树枝会被树叶代替信心参数。该参数不适用于'least_square'标准。

    范围:
  • 信心

    此参数指定用于计算剪枝的悲观误差的置信水平。

    范围:
  • random_splits

    如果选中此参数,则会导致随机选择数值属性的分割,而不是进行优化。对于随机选择,执行当前属性的最小值和最大值之间的均匀抽样。在禁用时激活此参数修剪将随机森林配置为一棵极度随机的树(也称为Extra-Tree)。这也加快了模型构建过程。

    范围:
  • guess_subset_ratio

    如果此参数设置为true,则*int(log(m) + 1)属性,否则应该指定一个比率子集比率*参数。

    范围:
  • subset_ratio

    此参数指定要测试的随机选择属性的比率。

    范围:
  • voting_strategy

    指定不同树模型预测时的预测策略:

    该参数不适用于'least_square'标准。

    • confence_vote:选择累积信心最高的类。
    • majority_vote:选择大多数树模型预测的类。
    范围:
  • use_local_random_seed

    该参数表示a局部随机种子应该用于随机化。

    范围:
  • local_random_seed

    如果使用当地的随机种子参数被选中,此参数确定本地随机种子。

    范围:
  • enable_parallel_execution

    该参数通过在所有可用的CPU线程之间分配随机树生成来支持模型构建过程的并行执行。如果遇到内存问题,请禁用并行执行。

    范围:

教程的过程

使用随机森林操作符生成一组随机树

在本教程过程中,检索'Golf'数据集,并使用它来训练具有10棵随机树的随机森林进行分类。生成的模型随后应用于测试数据集。由此产生的预测、生成的模型和由算子提供的特征重要性值被查看。

检查Apply Model Operators 'lab'端口的输出,将显示标记的数据集,并通过将模型应用于未见过的数据集获得预测。检查模型显示了一个由10棵随机树组成的集合,这些树建立了随机森林并有助于预测过程。查看随机森林算子'wei'端口的输出,可以获得有关属性权重的信息。这些权重包含关于属性对随机森林总体决策的预测能力的重要值。

回归随机森林

在本教程过程中,随机森林用于回归。带有数字目标属性的“Polynominal”数据集用作标签。在训练模型之前,数据集被分成训练集和测试集。然后,将回归值与标签值进行比较,以使用性能(回归)操作符获得性能度量。

决策树与随机森林的比较

在本教程过程中,比较突出了决策树和随机森林之间的差异。“多标称”样本数据集分为训练集和测试集。然后利用每个训练数据集生成决策树和随机森林模型进行回归。将模型应用于测试数据集并对其性能进行评估表明,两种方法的结果相似,但应用于测试数据时,结果的偏差有所不同。