我正在做回归任务 - 我是否需要为 randomForest(R 包)标准化(或缩放)数据?是否有必要扩展目标值?如果 - 我想使用 caret 包中的 scale 函数,但我没有找到如何取回数据(descale,denormalize)。你不知道其他一些有助于规范化/非规范化的功能(在任何包中)吗?谢谢,米兰
6 回答
不,随机森林不需要缩放。
RF 的本质是收敛性和数值精度问题(有时会影响逻辑和线性回归以及神经网络中使用的算法)并不那么重要。因此,您不需要像使用 NN 那样将变量转换为通用尺度。
您没有得到任何回归系数的类似物,它衡量每个预测变量与响应之间的关系。因此,您也不需要考虑如何解释这些受可变测量尺度影响的系数。
进行缩放以规范化数据,以便不给予特定特征优先级。缩放的作用在基于距离且需要欧几里得距离的算法中最为重要。
随机森林是基于树的模型,因此不需要特征缩放。
该算法需要分区,即使您应用归一化,那么结果也将是相同的。
我在帮助页面或 Vignette 中都没有看到任何建议,建议缩放对于randomForest
. Stats Exchange 的这个例子也没有使用缩放。
我的评论副本:该scale
功能不属于 pkg:caret。它是“基础”R 包的一部分。grt和DMwR包中有一个unscale
函数可以反转转换,或者您可以简单地乘以 scale 属性,然后添加 center 属性值。
您对为什么需要进行“标准化”的概念可能需要严格检查。仅在回归完成后才需要进行非正态性检验,如果拟合优度方法中没有正态性假设,则可能根本不需要。所以:你为什么问?在 SO 和 Stats.Exchange 中搜索可能会很有用: 引文 #1;引文#2;引文#3
boxcox
当人们不知道分布“应该”是什么以及您确实需要进行转换时,该函数是一种常用的转换。应用转换有很多陷阱,因此您需要提出问题这一事实引起了您可能需要进一步咨询或自学的担忧。
猜猜看,下面的例子会发生什么?想象一下,你有 20 个预测特征,其中 18 个在 [0;10] 范围内,另外 2 个在 [0;1,000,000] 范围内(取自一个真实的例子)。问题1:随机森林将分配哪些特征重要性。问题2:缩放2个大范围特征后,特征重要性会发生什么变化?
缩放很重要。与其他算法相比,随机森林对缩放的敏感性较低,并且可以处理“粗略”缩放的特征。
如果您要向数据集添加交互 - 也就是说,新变量是其他变量的某个函数(通常是简单的乘法),并且您不觉得新变量代表什么(无法解释),那么您应该使用计算这个变量标度变量。
与许多其他机器学习模型(如 k-means 聚类、PCA 等)不同,随机森林information gain / gini coefficient
本质上不会受到缩放的影响。但是,正如其他答案所暗示的那样,它可能“可以说”加快收敛