1

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

我曾经使用 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 中使用模型的第一个任务,所以如果我正在做一些明显错误的事情,请原谅。

非常感谢您的时间,任何正确方向的提示将不胜感激!

4

2 回答 2

2

我不熟悉 RTextTools 的模型输出,但模型对象明显大于输入数据框是很常见的。例如,glm的输出包含所有输入数据,以及预测值、残差、系数、误差,应有尽有。RandomForest模型的输出包含输入数据以及数千棵树的定义等。

模型的加载时间与从头开始运行相比如何?您是否查看模型对象中的内容以查看它包含的内容,并有可能修剪掉您不需要的任何统计信息?

str(fileNameModel)
于 2012-08-23T04:08:32.510 回答
1

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

于 2012-08-23T08:23:30.840 回答