对于个人项目,我需要针对不同的文本运行多种机器学习算法,以便对它们进行分类。
我曾经使用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中使用模型的第一个任务之一,请原谅我,如果我做的事情显然是错误的。
非常感谢您的时间,并且非常感谢任何正确方向的提示!
答案 0 :(得分:2)
我不熟悉RTextTools的模型输出,但模型对象比输入数据框大得多是很常见的。例如, glm 的输出包含所有输入数据,以及预测值,残差,系数,错误,您可以为其命名。 RandomForest 模型的输出包含输入数据以及数千棵树等的定义。
模型的加载时间与从头开始运行它们相比如何?您是否查看了模型对象中的内容以查看其中包含的内容,是否可以删除您不需要的任何统计信息?
str(fileNameModel)
答案 1 :(得分:1)
您是否检查了活动监视器中的RAM使用情况?压缩的RData
文件相对较小,但是它们解压缩成大量的。例如,所有n x n
的{{1}}矩阵将基本上不占用任何0
的空间(这可以解释您的小矩阵大小)。你加载的模型可能会很大;我有一些n
个文件可能RData
,但无法在200 MB
的内存中加载。如果您的RAM运行不足,这可能会成为一个问题,因为您的计算机可能会尝试使用驱动器空间来加载文件。