gpt4 book ai didi

R:如何在 randomForest 中使用长向量?

转载 作者:行者123 更新时间:2023-12-03 23:58:13 26 4
gpt4 key购买 nike

R 3.0.0 的新特性之一是引入了长向量。但是, .C() 和 .Fortran() 不接受长向量输入。在 R-bloggers我发现:

This is a precaution as it is very unlikely that existing code will have been written to handle long vectors (and the R wrappers often assume that length(x) is an integer)



我使用 R-package randomForest 并且这个包显然需要 .Fortran() 因为它崩溃并留下错误消息

Error in randomForest.default: long vectors (argument 20) are not supported in .Fortran



如何克服这个问题?我在 Windows 7 64 位计算机上使用 randomForest 4.6-7(在 R 3.0.2 下构建)。

最佳答案

确保您的输入数据帧被 randomForest 接受的唯一方法是确保数据帧内的向量长度不超过 2^31 – 1(即不长)。如果您必须从包含长向量的数据帧开始,那么您将拥有数据帧的子集以实现向量的可接受维度。这是您可以对数据框进行子集化以使其适用于 randomForest 的一种方法:

# given data frame 'df' with long vectors
maxDim <- 2^31 - 1;
df[1:maxDim, ]

但是,这样做有一个主要问题,即您将丢弃出现在第 2^31 行或更高行中的所有观察结果(即特征)。在实践中,您可能不需要这么多观察来运行随机森林计算。解决您的问题的简单方法是简单地取原始数据集的统计有效子样本,其大小不超过 2^31 - 1。使用非长类型的 R 向量存储数据,并且您的 randomForest 计算应该运行没有任何问题。

关于R:如何在 randomForest 中使用长向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com