【问题标题】:Why loading a model takes so much time for me in R?为什么在 R 中加载模型需要我这么多时间?
【发布时间】:2012-08-18 12:52:33
【问题描述】:

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

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

非常感谢您抽出宝贵时间,我们将不胜感激任何正确方向的提示!

【问题讨论】:

    标签: r machine-learning text-mining


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我在考虑从干净的重启并验证RAM。我在执行中注意到CPU Spikes和返回几乎没有一段时间,但我必须验证RAM。关于您的另一个点,您是否知道是否有一种方法来验证压缩RDATA文件的最终大小吗?非常感谢您的时间! span>
    • 我在重新启动之前做了一些测试,这可能是问题。加载模型后,R从70MB到1.42GB(即20型号中的1个)。因此,这意味着模型是错误地格式化和生产具有许多不必要数据的巨大文件,因为@Zjimbob建议或......需要购买更多RAM :( span>
    • 如果您的模型非常大,那么巨大的跳跃并不少见。如果您的很多数据很容易压缩,那么这是正常的。只是为了检查,使用 compress=FALSE 选项将你的东西保存到一个未压缩的文件中。我想不出任何好方法来确定模型是否是问题,也许在线找到保存的型号(RData),自己重新创建它,保存,并比较大小? span>
    • 谢谢!我能够保存未压缩的模型,它是1.95GB!所以我想这可能会回答我的问题。现在我必须想办法减小尺寸或换用更快的机器。
    • 我最近跑进了这个问题,并升级了我的2011年迟到的macbook pro到8 GB RAM,费用〜40美元,非常易于安装。祝你的项目好运! span>
    【解决方案2】:

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

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

    str(fileNameModel)
    

    【讨论】:

    • 您好,感谢您的快速响应。这越来越奇怪了。我运行 str() 并花了将近 3 个小时才完成!我认为我能做的最好的事情就是一一重新训练算法并检查哪些是/是导致问题的算法。至于 str() 我没有看到任何可以证明所有这些加载时间的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2019-11-13
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多