如何在机器学习中提高R的性能?

时间:2016-06-23 06:59:55

标签: python r performance machine-learning regression

我正在使用R和python(Anaconda)。当涉及到建模时,R花费更多时间进行相同的操作。在R中是否存在任何并行操作或多线程的方法?

1 个答案:

答案 0 :(得分:1)

在R中使用机器学习算法时,可以调用一些允许并行化的库。在下面的例子中,差异很大。

您可以这样称呼它们(注意'2'取决于您的群集数量):

library(doParallel)
cl <- makeCluster(2)
registerDoParallel(cl)

此示例摘自https://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf

> x <- iris[which(iris[,5] != "setosa"), c(1,5)]
> trials <- 10000
> ptime <- system.time({
+ r <- foreach(icount(trials), .combine=cbind) %dopar% {
+ ind <- sample(100, 100, replace=TRUE)
+ result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit))
+ coefficients(result1)
+ }
+ })[3]
> ptime 

并且比

快得多
> stime <- system.time({
+ r <- foreach(icount(trials), .combine=cbind) %do% {
+ ind <- sample(100, 100, replace=TRUE)
+ result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit))
+ coefficients(result1)
+ }
+ })[3]
> stime
相关问题