回归与随机森林 - 特征组合

数据挖掘 特征选择 随机森林 特征工程
2021-09-24 19:03:23

我和一个朋友讨论过,我们正在讨论随机森林相对于线性回归的优势。

在某个时候,我的朋友说随机森林相对于线性回归的优势之一是它会自动考虑特征的组合。

他的意思是,如果我有一个模型

  • Y 作为目标
  • X、W、Z 作为预测变量

然后随机森林也测试特征的组合(例如X + W),而在线性回归中,您必须手动构建这些并将它们插入模型中。

我很困惑,这是真的吗?

此外,如果它是真的,那么它是关于任何类型的特征组合(例如 X*W、X+W+Z 等)还是仅针对某些特定的组合(例如 X+W)?

3个回答

我认为这是真的。基于树的算法,尤其是具有多棵树的算法,具有捕获不同特征交互的能力。请参阅 xgboost 官方文档此讨论中的这篇文章。你可以说这是一个非参数模型的好处(树是非参数的,线性回归不是)。我希望这将阐明这个想法。

我会说这是不正确的,因为由决策树组成的随机森林确实执行特征选择,但它们不执行特征工程(特征选择与特征工程不同)。决策树使用一种称为信息增益的度量(即总熵减去加权熵),根据该度量将有用的特征与坏的特征分开。简单地说,在此迭代中表现出最高信息增益的任何特征都被选为在此迭代中拆分树的节点,或者您可以说在此迭代中哪个特征减少熵(又名随机性)最多被选为节点在此迭代中拆分树。因此,如果您的数据是文本,则树会根据单词进行拆分。如果您的数据是实数值,则树会在此基础上进行拆分。希望能帮助到你

有关更多详细信息,请查看

“它测试功能组合”的说法是不正确的它测试各个功能。但是,树可以逼近任何连续函数F在训练点上,因为它是一个通用逼近器,就像神经网络一样。

在随机森林(或决策树,或回归树)中,将各个特征相互比较,而不是它们的组合,然后信息量最大的个体被峰值以分裂一片叶子。因此,整个过程中没有“更好的组合”的概念。

此外,随机森林是一种装袋算法,它不支持随机构建的树,它们在聚合输出中都具有相同的权重。

值得注意的是,“旋转森林”首先将 PCA 应用于特征,这意味着每个新特征都是原始特征的线性组合。但是,这不算数,因为相同的预处理也可以用于任何其他方法。

编辑

@tam 为 XGBoost 提供了一个反例,它与随机森林不同。但是,XGBoost 的问题是相同的。它的学习过程归结为基于单个特征对每个叶子进行大量拆分,而不是在一组组合中选择最佳的特征组合,或者在一组树中选择最好的树。

这个解释中,你可以看到,结构分数是根据每个叶子中损失函数的一阶和二阶导数为一棵树(它是一个函数)定义的j(GjHj分别)总和叶子,即

对象*=-12j=1GjHj+λ+γ
然而,优化过程贪婪地使用最佳个体特征来分割叶子,从而获得最高收益。对象*.

一颗树是通过贪婪地最小化损失来构建的,即在最好的个体特征上分支,当树被构建时,过程去创建下一棵树+1以同样的方式,依此类推。

这是XGBoost 论文的关键引述

这个分数类似于评估决策树的杂质分数,除了它是为更广泛的目标函数导出的 [..] 通常不可能枚举所有可能的树结构 q。取而代之的是一种贪心算法,它从单个叶子开始并迭代地将分支添加到树中。

总之:

虽然一棵树表示特征的组合(一个函数),但 XGBoost 和随机森林都不是在函数之间进行选择。他们通过贪婪地偏爱单个功能来构建和聚合多个功能 。