关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
6年前关闭。
Improve this question
我正在进行的项目的一部分正在确定 residuals
.我正在执行 linear models
.
不幸的是,我发现的软件包要么不符合要求,要么出现故障。
我已尝试为我的项目使用以下软件包。
lm
- R
中的标准线性建模函数+ 专业人士 -- 无
- 缺点 - 使用标准统计库,单核,无法处理内存不足计算
fastLm
- RcppArmadillo
package 的一部分+ pro's -- 多核
- 缺点 - 无法处理内存不足的计算。
biglm
- biglm
package 的一部分+ pro's -- 特别设计用于通过将数据拆分成 block 来处理内存不足的计算
- 缺点 - 单核
speedlm
- speedglm
package 的一部分+ pro's -- 多核,应该能够通过将数据分成 block 来处理内存不足的计算
我个人使用
speedlm
遇到的一些问题,否则这将是选择的包:updateWithMoreData
当列包含 non-numeric data 时似乎失败了谷歌搜索没有成功后,我使用以下代码尝试查找新包,尝试不同的关键字,但我似乎根本找不到任何合适的包。
find <- findFn("linear model lm", sortby="function", maxPages = 10)
format(find)
除了我上面提到的之外,是否还有满足以下要求的线性模型包:
update
具有数据集 block 的线性模型最佳答案
线性模型的典型估计程序,例如R 用于 lm,涉及 QR decomposition这似乎(在大多数 BLAS 中;有关更多详细信息,请参见下文)本质上是一个顺序过程,因此绑定(bind)到单个内核。
其他方法可能是多核的,但可能无法实现您的真正目标 - 更快的计算。我会注意两个。
stochastic gradient decent
查看结果.如果有足够的资源,该方法可能能够为您提供一个能带来速度优势的多核解决方案。 顺便说一句,您在快速审查时认可为多核的两种方法在我看来并不是真正的多核。一般来说,将数据分成 block 很容易,我可能又错了,但我认为你不能并行处理这些 block 并重新组合模型......也就是说......除非你愿意做一些一般性的事情(在这种情况下,你拒绝的方法也会起作用)。
如果您愿意有点不精确,您可能会做的一般事情是:
...但这并不能再次解决您的RAM问题-我怀疑您是否会发现足够的速度优势以使其值得您花时间。
也可以看看:
关于r - 使用多个 CPU,我可以使用哪些包来计算线性模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33254837/