Opencpu数据缓存
Opencpu data caching
我的专长是java。我使用 R 进行非常具体的分析。
问题
我的理解是,每次 API 调用 opencpu 都会打开一个新的 R 会话。
我的函数将使用线性判别分析的预测方法(来自 MASS 包的 lda)对数据输入进行分类。
对 100000+ 个案例和 150+ 个因子水平的初始线性判别分析需要时间(超过 30 秒)。这个函数returns一个列表。
后面的预测函数很快returns一个简单的向量
方法
我运行一个opencpu函数到运行初始lda。这只需要运行一次。
我希望我的第二个函数仅 运行 预测函数。如果将 lda 作为全局变量保存,这是可能的。
我的理解是opencpu中不能有全局变量。所以我必须将lda缓存在文件系统上。
总之,我只需要运行 lda 一次,然后将分析(列表)保存在内存或文件系统中。然后我在调用预测时检索 lda 分析。
问题
哪种方法最好,如何实施?
我可以使用创建和 returns lda 的 opencpu 函数。然后,当我调用预测时,我可以从文件系统中检索 lda 对象(列表)。但是我如何从文件系统中检索列表。 opencpu怎么知道它在哪里?
我可以使用 r.cache 包。我以前没有使用过这个包,但文档表明这是一个解决方案。这行得通吗?
如有任何建议,我们将不胜感激。
最佳
杰克
包r.cache很轻松的解决了问题
我的专长是java。我使用 R 进行非常具体的分析。
问题
我的理解是,每次 API 调用 opencpu 都会打开一个新的 R 会话。
我的函数将使用线性判别分析的预测方法(来自 MASS 包的 lda)对数据输入进行分类。
对 100000+ 个案例和 150+ 个因子水平的初始线性判别分析需要时间(超过 30 秒)。这个函数returns一个列表。
后面的预测函数很快returns一个简单的向量
方法
我运行一个opencpu函数到运行初始lda。这只需要运行一次。
我希望我的第二个函数仅 运行 预测函数。如果将 lda 作为全局变量保存,这是可能的。
我的理解是opencpu中不能有全局变量。所以我必须将lda缓存在文件系统上。
总之,我只需要运行 lda 一次,然后将分析(列表)保存在内存或文件系统中。然后我在调用预测时检索 lda 分析。
问题
哪种方法最好,如何实施?
我可以使用创建和 returns lda 的 opencpu 函数。然后,当我调用预测时,我可以从文件系统中检索 lda 对象(列表)。但是我如何从文件系统中检索列表。 opencpu怎么知道它在哪里?
我可以使用 r.cache 包。我以前没有使用过这个包,但文档表明这是一个解决方案。这行得通吗?
如有任何建议,我们将不胜感激。
最佳 杰克
包r.cache很轻松的解决了问题