我正在使用随机森林进行回归,以根据多个属性预测价格。代码是使用 Scikit-learn 用 Python 编写的。
您如何决定是否应该在使用exp/log之前转换变量以拟合回归模型?使用随机森林等集成方法时是否有必要?
我正在使用随机森林进行回归,以根据多个属性预测价格。代码是使用 Scikit-learn 用 Python 编写的。
您如何决定是否应该在使用exp/log之前转换变量以拟合回归模型?使用随机森林等集成方法时是否有必要?
随机森林的构建方式对于自变量的单调变换是不变的。拆分将完全类似。如果您只是追求准确性,您将看不到任何改进。事实上,由于随机森林能够动态找到复杂的非线性(为什么称这种线性回归?)关系和变量交互,如果你转换你的自变量,你可以平滑允许这个算法做的信息这妥妥的。
有时随机森林不被视为黑盒并用于推理。例如,您可以解释它提供的变量重要性度量,或计算自变量对因变量的某种边际效应。这通常被可视化为部分依赖图。我很确定最后这件事受变量规模的影响很大,当试图从随机森林中获取更具描述性的信息时,这是一个问题。在这种情况下,它可能会帮助您转换变量(标准化),这可以使部分依赖图具有可比性。这个不是很确定,需要考虑一下。
不久前,我尝试使用随机森林预测计数数据,回归平方根和因变量的自然对数有点帮助,不多,也不足以让我保留模型。
您可以使用随机森林进行推理的一些软件包:
https://cran.r-project.org/web/packages/randomForestExplainer/index.html
https://pbiecek.github.io/DALEX_docs/2-2-useCaseApartmetns.html
与@JEquihua 相呼应,随机森林预测的准确性不会提高。
另请注意,如果同时保留原始预测器和转换后的预测器(线性回归中经常这样做),则可能会导致问题。这是因为 RF 随机选择变量的子集来生长每棵树,而您实际上已经将转换后的变量放入了两次。如果它是一个强预测器,它将被使用,并且您的随机森林不会像它们可能的那样不相关,从而导致更高的方差。