Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带R的随机林无法分配大小为7.5 Gb的向量_R_Machine Learning_Random Forest - Fatal编程技术网

带R的随机林无法分配大小为7.5 Gb的向量

带R的随机林无法分配大小为7.5 Gb的向量,r,machine-learning,random-forest,R,Machine Learning,Random Forest,我有一个数据集(df),有10000条tweet和2条观察结果(主体和标签);前4000条tweet被标记(肯定或否定),我想用它作为训练集来预测其余tweet的标签,根据文本主体进行测试。 我想用随机森林算法来预测(插入符号包)和交叉验证来确定准确度。 我使用了以下脚本: training <- subset(df[1:4000,]) testing <- subset(df[4001:10000,]) fitControl1 <- trainControl(method

我有一个数据集(df),有10000条tweet和2条观察结果(主体和标签);前4000条tweet被标记(肯定或否定),我想用它作为训练集来预测其余tweet的标签,根据文本主体进行测试。 我想用随机森林算法来预测(插入符号包)和交叉验证来确定准确度。 我使用了以下脚本:

training <- subset(df[1:4000,])
testing  <- subset(df[4001:10000,])

fitControl1 <- trainControl(method = "repeatedcv",
                       number = 10,
                       repeats = 10)

rfFit <- train(training$label~ training$body, data = training, 
             method = "rf", 
             trControl = fitControl,
             verbose = FALSE)
我怎样才能修好它?
提前感谢

随机森林算法可能会破坏您的内存,特别是如果您没有很多内存的话。不过,R可以使用磁盘作为内存,所以这可能会对您有所帮助

如果你查一下

memory.limit()
它将显示您的内存大小。但是,您也可以使用此命令进行设置

memory.limit(100000)
好了,现在您有大约100GB的内存。其中一堆在你的硬盘上


如果你没有太多的硬盘空间。。。这对你没有帮助。

随机森林算法会破坏你的内存,特别是如果你没有很多内存的话。不过,R可以使用磁盘作为内存,所以这可能会对您有所帮助

如果你查一下

memory.limit()
它将显示您的内存大小。但是,您也可以使用此命令进行设置

memory.limit(100000)
好了,现在您有大约100GB的内存。其中一堆在你的硬盘上


如果你没有太多的硬盘空间。。。这对你没有帮助。

随机森林将尝试在变量或特征之间的可能性树中分配你的观察结果。但是你做这件事的方式有些奇怪。如果tweet的主体有一个变量(tweet的字符串),第二个变量是标签。没有实际的特征来执行分类,随机森林将尝试记忆(过度拟合)训练集。随机森林算法创建了几种可能性树来创建一个复合模型,这产生了巨大的可能性空间,特别是如果你没有从你的tweet语料库中提取特征(我认为你正在这么做),那么模型的表现会非常糟糕


您需要做的是标记推文主体,以创建一个模型来提取语料库的特征。我建议使用用于提取文本特征的。如果您不懂python,也可以,解释非常明确,您可以在R中找到执行操作的工具。

Random Forest将尝试在变量或特征之间的可能性树中分配您的观察结果。但是你做这件事的方式有些奇怪。如果tweet的主体有一个变量(tweet的字符串),第二个变量是标签。没有实际的特征来执行分类,随机森林将尝试记忆(过度拟合)训练集。随机森林算法创建了几种可能性树来创建一个复合模型,这产生了巨大的可能性空间,特别是如果你没有从你的tweet语料库中提取特征(我认为你正在这么做),那么模型的表现会非常糟糕


您需要做的是标记推文主体,以创建一个模型来提取语料库的特征。我建议使用用于提取文本特征的。如果您不懂python,这没关系,解释非常明确,您可以在R中找到执行操作的工具。

因为您使用完整的tweet作为一个变量(类字符),而训练模型R将首先将字符向量转换为因子(因为统计模型可以建立在数字矩阵而不是字符的基础上)当将每条推文转换为一个因素时,它需要如此巨大的空间,请参考此。
此外,这也是NLP的一个问题。在构建模型之前,我建议您首先标记数据集并创建一个稀疏矩阵。

因为您使用完整的tweet作为一个变量(类字符),而训练模型R时,将首先将字符向量转换为因子(因为统计模型可以建立在数字矩阵而不是字符的基础上)当将每条推文转换为一个因素时,它需要如此巨大的空间,请参考此。 此外,这也是NLP的一个问题。在构建模型之前,我建议您首先标记数据集并生成稀疏矩阵。

Related:Related: