加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:10:13 所属栏目:Java 来源:网络整理
导读: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
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计算应运行没有任何问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读