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

为了一个个人项目,我需要对不同的文本运行多种机器学习算法来对其进行分类。

我之前使用RapidMiner来做这件事,但后来决定将所有开发工作转移到R上,因为我觉得在R中我能有更多的控制权。

现在我遇到的问题是(在使用RapidMiner时没有注意到),加载模型需要很长时间。

例如:

我有一个模型,用来检查文本是否涉及体育。这个模型大小为37.7 MB,在我的2.2 GHz i7 Mac,4GB RAM上加载需要8:34

我调用模型的方式如下:

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中使用模型的首批任务之一,如果我做了一些明显错误的事情,请原谅我。

非常感谢你的时间,任何正确的指导都会非常感激!


回答:

你有在活动监视器中检查过RAM使用情况吗?压缩的RData文件相对较小,但解压后会非常大。例如,一个所有元素为0n x n矩阵几乎不占用任何空间,这可能解释了你的矩阵文件较小的情况。你的加载模型可能非常大;我有一些RData文件,大约200 MB,但在R中无法加载到内存中。如果你的RAM不足,这可能会成为一个问题,因为你的电脑可能会尝试使用驱动器空间来加载文件。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注