随机森林

随机森林是一种流行的有监督机器学习方法,用于分类和回归。它由多个决策树组成,并将这些决策树的预测结果组合成一个总体预测。训练随机森林即独立训练其中的每一棵决策树。每棵决策树通常在训练集的略有不同的部分上进行训练,并且在节点分裂时可能会考虑不同的特征。

其核心思想是,每棵决策树训练方式的差异有助于避免过拟合,而在整个训练集上仅训练单棵决策树时,过拟合现象并不罕见。组合多个预测器(本例中为决策树)的方法也称为集成学习,而为每个预测器使用训练集的不同部分通常被称为自助聚合(bootstrap aggregating)或装袋法(bagging)。

分类

此功能处于 Beta 测试阶段。有关功能分级的更多信息,请参阅 API 分级

对于分类任务,随机森林的预测是通过简单地对其决策树的预测结果进行多数投票来完成的。在 GDS 决策树分类器训练中,用于计算节点分裂潜力的不纯度标准有 基尼不纯度(默认)和

随机森林分类可用于节点分类链接预测流水线的训练。

回归

此功能处于 Alpha 阶段。有关功能阶段的更多信息,请参阅 API 阶段

对于回归任务,随机森林的预测是通过简单地对其决策树的预测结果取平均值来完成的。在 GDS 决策树回归器训练中,用于计算节点分裂潜力的不纯度标准是 均方误差

随机森林回归可用于节点回归流水线的训练。

调整超参数

为了平衡模型的偏差与方差、训练速度与内存消耗等事项,GDS 提供了若干可调整的超参数。每一项的说明如下。

决策树数量

此参数设置组成随机森林的决策树数量。

树的数量过少可能意味着模型会对数据集的某些部分产生过拟合。

通常,树的数量越多,训练所需的时间就越长,内存消耗也会越高。

最大特征比例

对于决策树中的每个节点分裂,都会考虑特征向量中的一组特征。所考虑特征的数量是 maxFeaturesRatio 乘以特征总数。如果待考虑的特征数量少于特征总数,则会对所有特征的子集进行抽样(不放回)。这有时被称为特征装袋(feature bagging)。

较高的最大特征比例(接近 1.0)意味着训练需要更长时间,因为决策树中节点分裂的方式有更多选择。这也意味着每棵决策树在训练集上的预测表现会更好。虽然这在某种意义上是积极的,但也可能意味着每棵决策树会在训练集上发生过拟合。

最大深度

此参数设置随机森林中决策树的最大深度。

较高的最大深度意味着训练可能需要更长时间,因为可能需要考虑更多的节点分裂。生成的预测模型的内存占用也可能更高,因为树的规模(深度)可能会更大。

更深的决策树可能能够更好地拟合训练集,但这同时也可能意味着过拟合。

最小叶子节点大小

此参数设置决策树叶子节点中所需的最少训练样本数量。

较大的叶子节点大小意味着对训练集的特异性降低,因此在训练集上的表现可能会变差,但可能有助于避免过拟合。这通常也意味着训练和预测会更快,因为树可能包含更少的节点。

最小分裂大小

此参数设置决策树节点在训练过程中进行分裂所需的最少训练样本数量。分裂节点意味着继续树的构建过程,在节点下方添加更多的子节点。

较大的分裂大小意味着对训练集的特异性降低,因此在训练集上的表现可能会变差,但可能有助于避免过拟合。这也通常意味着训练和预测会更快,因为考虑的节点分裂次数更少,从而树包含的节点也更少。

样本数量比例

随机森林中的每棵决策树都是使用训练集的一个子集进行训练的。该子集是有放回抽样的,这意味着一个训练特征向量对于单棵决策树可能会被多次采样。每棵决策树的训练样本数量是 numberOfSamplesRatio 乘以训练集中的总样本数。

较高的比例可能会使每棵决策树具有更好的泛化能力,但对于整个随机森林而言未必如此。由于每棵决策树的每个节点分裂都需要考虑更多的特征向量,训练时间也会变长。

特殊值 0.0 用于表示不进行抽样。在这种情况下,随机森林中的每棵决策树都将使用训练集的所有特征向量进行训练。

准则(仅限分类)

在决定如何分裂决策树中的节点时,会使用不纯度标准来评估潜在的分裂。两个潜在子节点的组合不纯度越低,分裂效果被认为越好。对于 GDS 中的随机森林分类,通过 criterion 配置参数,有两种可供选择的不纯度标准:

  • 基尼不纯度

    • 一种衡量指标,用于度量如果根据集合中标签的分布随机标记元素,则从该集合中随机选择的元素被错误标记的频率。

    • 通过字符串 "GINI" 选择使用。

    • 一种信息论度量,用于度量集合中不确定性的数量。

    • 通过字符串 "ENTROPY" 选择使用。

很难预先判断哪种准则对特定问题最好,但通常使用基尼不纯度意味着更快的训练速度,因为使用熵需要计算对数。