【问题标题】:Do I need to normalize (or scale) data for randomForest (R package)? [closed]我是否需要为 randomForest(R 包)标准化(或缩放)数据? [关闭]
【发布时间】:2012-02-16 05:01:36
【问题描述】:

我正在执行回归任务 - 我需要为 randomForest(R 包)标准化(或缩放)数据吗?是否有必要缩放目标值? 如果 - 我想使用 caret 包中的 scale 函数,但我没有找到如何取回数据(descale,denormalize)。你不知道一些有助于规范化/非规范化的其他功能(在任何包中)吗? 谢谢, 米兰

【问题讨论】:

  • scale 函数不属于caret。它是“基础”R 包的一部分。有一个 unscale 函数可以反转转换。
  • 我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅 machine-learning @ 中的介绍和注意事项987654322@.
  • 当 SE 关闭有 93 个赞和 39 个收藏的问题时,这总是很奇怪。

标签: r random-forest


【解决方案1】:

我在帮助页面或 Vignette 中都没有看到任何建议,这些建议表明 randomForest 中的回归变量需要缩放。 This example at Stats Exchange 也不使用缩放。

我的评论副本:scale 函数不属于 pkg:caret。它是“基础”R 包的一部分。包grtDMwR 中有一个unscale 函数可以反转转换,或者您可以简单地乘以比例属性,然后添加中心属性值。

您对为什么需要进行“标准化”的理解可能需要进行严格的检查。仅在回归完成后才需要进行非正态性检验,如果拟合优度方法中没有正态性假设,则可能根本不需要。所以:你为什么问?在 SO 和 Stats.Exchange 中搜索可能很有用: citation #1 ; citation #2 ; citation #3

boxcox 函数是一种常用的转换,当人们事先不知道分发“应该”是什么以及您确实需要进行转换时。应用转换存在许多陷阱,因此您需要提出问题这一事实引起了您可能需要进一步咨询或自学的担忧。

【讨论】:

  • 我将问题中的规范化理解为数据到例如的简单线性变换。区间 0-1。应该这样做,例如使用神经网络时。所以当我问到我需要的东西时,Hong Ooi 回答了我。我没有找到您建议的功能 unscale。但是感谢您的努力。
  • 添加引用以回答您的第二个问题。
  • 我很抱歉 - 我忽略了 unscale 是包 grt 和 DMwR
  • 不需要道歉。我制造了一个“错误记忆”,它位于“基础”中,并且在scale 的帮助页面上提到了它。您的后续问题有助于澄清事实。
  • @BondedDust:很好的答案,但最后一段有点讨厌。也许改写为“你需要学习什么时候做和不需要做转换,包括预测变量和响应变量”
【解决方案2】:

不,随机森林不需要缩放。

  • RF 的本质是收敛性和数值精度问题,这些问题有时会影响逻辑和线性回归以及神经网络中使用的算法,但并不那么重要。因此,您无需像使用 NN 那样将变量转换为通用尺度。

  • 您没有得到任何回归系数的类似物,它衡量每个预测变量与响应之间的关系。因此,您也无需考虑如何解释这些受可变测量尺度影响的系数。

【讨论】:

  • 不仅不需要缩放,它还可以平滑模型的非线性特性。如果您在 p 维空间中有复杂的非线性关系并且您已经转换了数据,那么当您对 y 进行反向转换时,这些非线性不会反映在估计中。
  • @JeffreyEvans 请结合您出色的 cmets 并将它们作为答案发布。否则,这只会​​在每个人的雷达下溜走。你说的是“不,不仅没有必要,而且由于以下原因a)b)c)......”
  • 我认为他的意思是,如果您使用训练集定义的相同函数来扩展所有集(训练、测试),则没有必要但不会有害。
  • 猜猜会发生什么,在下面的例子中,如果你有 20 个预测特征,其中 15 个在 [0;10] 范围内,另外 5 个
  • 这不取决于 - 如果变量之间的尺度差异很大,那么缩放特征是否可能会启用更短的树?如果使用最小最大范数而不是向量范数,那么网络的拓扑结构也会不同吗?
【解决方案3】:

如果您要向数据集添加交互 - 也就是说,新变量是其他变量的某个函数(通常是简单的乘法),并且您不觉得新变量代表什么(无法​​解释),那么您应该计算这个变量使用缩放变量。

【讨论】:

  • 随机森林是一个非线性模型,节点分裂统计的性质解释了高维交互。因此,尝试定义交互变量是不必要的,也是非常不可取的。
【解决方案4】:

猜猜看,下面的例子会发生什么? 想象一下,你有 20 个预测特征,其中 18 个在 [0;10] 范围内,另外 2 个在 [0;1,000,000] 范围内(取自一个真实的例子)。问题1:随机森林将分配哪些特征重要性。问题2:缩放2个大范围特征后,特征重要性会发生什么变化?

缩放很重要。与其他算法相比,随机森林对缩放的敏感度较低,并且可以处理“粗略”缩放的特征。

【讨论】:

  • 随机森林不需要缩放
  • 如果只需要预测,那么常识是不需要缩放(决策树对线性变换是不变的)。但是,如果“特征重要性”或“特征选择”或“特征等”正在考虑中,然后缩放与未缩放的数据将给出不同的“特征”相关结果。例如参见:1) Strobl et al“Bias in random forest variable important measure: Illustrations, sources and a solution”,BMC Bioinformatics,2007; 2)explained.ai/rf-importance/index.html
  • 旧答案,但是:这是错误的,并且提供的链接没有说明缩放功能。唯一提到缩放的是重要性度量,这是完全不同的
【解决方案5】:

进行缩放以规范化数据,以便不优先考虑特定功能。 在基于距离且需要欧几里得距离的算法中,缩放的作用最为重要。

随机森林是基于树的模型,因此不需要特征缩放。

这个算法需要分区,即使你应用了归一化,结果也是一样的。

【讨论】:

    【解决方案6】:

    随机森林本质上使用information gain / gini coefficient,与许多其他机器学习模型(如k-means聚类、PCA等)不同,它不会受到缩放的影响。但是,正如其他答案所暗示的那样,它可能“可以说”加快收敛

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 2017-06-26
      • 2021-09-08
      • 2010-09-19
      • 2015-12-11
      相关资源
      最近更新 更多