我是否需要规范化(或缩放)randomForest(R包)的数据?

时间:2012-01-22 14:01:13

标签: r random-forest

我正在做回归任务 - 我是否需要规范化(或缩放)randomForest(R包)的数据?是否有必要扩大目标价值? 如果 - 我想使用来自插入包的scale函数,但我没有找到如何获取数据(descale,denormalize)。你不知道其他一些函数(在任何包中)对规范化/非规范化有帮助吗? 谢谢, 米兰

6 个答案:

答案 0 :(得分:58)

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

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

  • 你没有得到回归系数的任何类比,回归系数衡量每个预测变量和响应之间的关系。因此,您也不需要考虑如何解释受可变测量尺度影响的系数。

答案 1 :(得分:3)

进行缩放是为了对数据进行归一化,因此不会将优先级给予特定功能。 在基于距离且需要欧几里得距离的算法中,缩放的作用最为重要。

Random Forest是基于树的模型,因此不需要特征缩放。

此算法需要分区,即使您应用Normalization,也>结果将是相同的。

答案 2 :(得分:2)

我在帮助页面或小插图中看不到任何建议,建议在randomForest中对回归变量进行缩放。 This example at Stats Exchange也不使用缩放。

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

您需要进行“正常化”的概念可能需要进行严格的检查。只有在完成回归之后才需要测试非正态性,如果拟合优度方法中没有正态性假设,则可能根本不需要。那么:你为什么这么问?在SO和Stats.Exchange中搜索可能会很有用: citation #1; citation #2; citation #3

boxcox函数是一种常用的转换,当一个人没有事先知道分布“应该”并且你真的需要进行转换时。应用转换存在许多陷阱,因此您需要提出问题这一事实引起了您可能需要进一步咨询或自学的担忧。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

缩放非常重要。随机森林对缩放比其他算法更不敏感,可以使用“粗略”缩放的特征。

答案 5 :(得分:0)

Random Forest本质上使用information gain / gini coefficient,与许多其他机器学习模型(例如k均值聚类,PCA等)不同,它不会受到扩展的影响。但是,正如其他答案所暗示的那样,它可能“可以说”加快了收敛速度