为什么在R中加载模型需要花费很多时间?

时间:2012-08-23 03:21:52

标签: r machine-learning text-mining

对于个人项目,我需要针对不同的文本运行多种机器学习算法,以便对它们进行分类。

我曾经使用RapidMiner这样做,但我决定将我的所有开发都移到R,因为我觉得我有更多的控制权。

我现在看到的问题(我没有注意到RapidMiner)是加载模型需要花费很多时间。

例如:

我有一个模型,检查文本是否指运动。 该模型为37.7 MB,我的8:34

需要2.2 GH i7 Mac with 4GB of RAM

我调用该模型的方式如下:

fileNameMatrix = paste(query,query1,"-matrix.Rd", sep ="")
fileNameModel= paste(query,query1,"-model.Rd", sep ="")

load(fileNameMatrix)
load(fileNameModel)

使用RTextTools

生成模型

您阅读的那些查询变量是因为我需要调用近20个模型并将它们与不同的数据集进行比较。这就是为什么虽然8分钟并不是很多,但是当我阅读所有这些内容时,只需加载3个小时,这使我的任务几乎无用,因为它几乎是实时任务。

如果减少模型的尺寸不是一种选择,我应该考虑减少加载时间的哪些因素?

我认为可疑的另一件事是,虽然矩阵文件相当小64KB,但模型仍为37.7MB。模型文件是否可能超过必要的大小?有没有人使用RTextTools经历过类似的事情?

这是我在R中使用模型的第一个任务之一,请原谅我,如果我做的事情显然是错误的。

非常感谢您的时间,并且非常感谢任何正确方向的提示!

2 个答案:

答案 0 :(得分:2)

我不熟悉RTextTools的模型输出,但模型对象比输入数据框大得多是很常见的。例如, glm 的输出包含所有输入数据,以及预测值,残差,系数,错误,您可以为其命名。 RandomForest 模型的输出包含输入数据以及数千棵树等的定义。

模型的加载时间与从头开始运行它们相比如何?您是否查看了模型对象中的内容以查看其中包含的内容,是否可以删除您不需要的任何统计信息?

str(fileNameModel)

答案 1 :(得分:1)

您是否检查了活动监视器中的RAM使用情况?压缩的RData文件相对较小,但是它们解压缩成大量的。例如,所有n x n的{​​{1}}矩阵将基本上不占用任何0的空间(这可以解释您的小矩阵大小)。你加载的模型可能会很大;我有一些n个文件可能RData,但无法在200 MB的内存中加载。如果您的RAM运行不足,这可能会成为一个问题,因为您的计算机可能会尝试使用驱动器空间来加载文件。