跳到主要内容

ExtraTrees回归(ExtraTreesRegressor)使用文档

组件名称ExtraTrees回归(ExtraTreesRegressor)
工具集机器学习/回归/ExtraTrees回归(ExtraTreesRegressor)
组件作者雪浪云-燕青
文档版本1.0
功能ExtraTrees回归(ExtraTreesRegressor)
镜像名称ml_components:3
开发语言Python

组件原理

ET或Extra-Trees(Extremely randomized trees,极端随机树)是由PierreGeurts等人于2006年提出。该算法与随机森林算法十分相似,都是由许多决策树构成。但该算法与随机森林有两点主要的区别:

  • 随机森林应用的是Bagging模型,而ET是使用所有的训练样本得到每棵决策树,也就是每棵决策树应用的是相同的全部训练样本;
  • 随机森林是在一个随机子集内得到最佳分叉属性,而ET是完全随机的得到分叉值,从而实现对决策树进行分叉的。

对于第2点的不同,我们再做详细的介绍。我们仅以二叉树为例,当特征属性是类别的形式时,随机选择具有某些类别的样本为左分支,而把具有其他类别的样本作为右分支;当特征属性是数值的形式时,随机选择一个处于该特征属性的最大值和最小值之间的任意数,当样本的该特征属性值大于该值时,作为左分支,当小于该值时,作为右分支。这样就实现了在该特征属性下把样本随机分配到两个分支上的目的。然后计算此时的分叉值(如果特征属性是类别的形式,可以应用基尼指数;如果特征属性是数值的形式,可以应用均方误差)。遍历节点内的所有特征属性,按上述方法得到所有特征属性的分叉值,我们选择分叉值最大的那种形式实现对该节点的分叉。从上面的介绍可以看出,这种方法比随机森林的随机性更强。

对于某棵决策树,由于它的最佳分叉属性是随机选择的,因此用它的预测结果往往是不准确的,但多棵决策树组合在一起,就可以达到很好的预测效果。

当ET构建好了以后,我们也可以应用全部的训练样本来得到该ET的预测误差。这是因为尽管构建决策树和预测应用的是同一个训练样本集,但由于最佳分叉属性是随机选择的,所以我们仍然会得到完全不同的预测结果,用该预测结果就可以与样本的真实响应值比较,从而得到预测误差。如果与随机森林相类比的话,在ET中,全部训练样本都是OOB样本,所以计算ET的预测误差,也就是计算这个OOB误差。

在这里,我们仅仅介绍了ET算法与随机森林的不同之处,ET算法的其他内容(如预测、OOB误差的计算)与随机森林是完全相同的,具体内容请看关于随机森林的介绍。

输入桩

支持单个csv文件输入。

输入端子1

  • 端口名称:训练数据
  • 输入类型:Csv文件
  • 功能描述: 输入用于训练的数据

输出桩

支持sklearn模型输出。

输出端子1

  • 端口名称:输出模型
  • 输出类型:sklearn模型
  • 功能描述: 输出训练好的模型用于预测

参数配置

树的数量

  • 功能描述:树的数量
  • 必选参数:是
  • 默认值:10

质量函数

  • 功能描述:用于计算分割质量的函数。
  • 必选参数:是
  • 默认值:mse

节点拆分策略

  • 功能描述:用于在每个节点上选择拆分的策略。
  • 必选参数:是
  • 默认值:best

树的最大深度

  • 功能描述:树的最大深度
  • 必选参数:否
  • 默认值:(无)

分割内部节点所需的最小样本数

  • 功能描述:分割内部节点所需的最小样本数
  • 必选参数:是
  • 默认值:2

叶节点上所需的最小样本数

  • 功能描述:叶节点上所需的最小样本数
  • 必选参数:是
  • 默认值:1

叶节点(所有输入样本)所需权值之和的最小加权分数

  • 功能描述:叶节点(所有输入样本)所需权值之和的最小加权分数
  • 必选参数:是
  • 默认值:0

在寻找最佳分割时要考虑的特征数量

  • 功能描述:在寻找最佳分割时要考虑的特征数量
  • 必选参数:是
  • 默认值:auto

Random State

  • 功能描述:随机种子。
  • 必选参数:否
  • 默认值:(无)

最小杂志减少值

  • 功能描述:如果这个分裂导致杂质的减少大于或等于这个值,一个节点就会分裂。
  • 必选参数:是
  • 默认值:0

最大叶节点数

  • 功能描述:最大叶节点数
  • 必选参数:否
  • 默认值:(无)

CCP Alpha

  • 功能描述:用于最小成本-复杂性修剪的复杂性参数
  • 必选参数:是
  • 默认值:0

最大样本数

  • 功能描述:用于训练的样本数
  • 必选参数:否
  • 默认值:(无)

并行度

  • 功能描述:训练时使用的CPU核数
  • 必选参数:否
  • 默认值:(无)

需要训练

  • 功能描述:该模型是否需要训练,默认为需要训练。
  • 必选参数:是
  • 默认值:true

特征字段

  • 功能描述:特征字段
  • 必选参数:是
  • 默认值:(无)

识别字段

  • 功能描述:识别字段
  • 必选参数:是
  • 默认值:(无)

使用方法

  • 将组件拖入到项目中
  • 与前一个组件输出的端口连接(必须是csv类型)
  • 点击运行该节点

测试用例

  • 模板

  • 右面板配置

  • 查看结果