簡體   English   中英

在R中,如何並行計算摘要函數?

[英]In R, how can I compute the summary function in parallel?

我有一個龐大的數據集。 我在nnet包中通過多項式計算了多項式回歸。

mylogit<- multinom(to ~ RealAge, mydata)

需要10分鍾。 但是,當我使用匯總函數計算系數時,它需要超過1天的時間!!! 這是我使用的代碼:

output <- summary(mylogit) 

Coef<-t(as.matrix(output$coefficients))

我想知道是否有人知道如何通過R中的並行處理來計算這部分代碼?

這是一小部分數據樣本:

mydata:
to  RealAge
513 59.608
513 84.18
0   85.23
119 74.764
116 65.356
0   89.03
513 92.117
69  70.243
253 88.482
88  64.23
513 64
4   84.03
65  65.246
69  81.235
513 87.663
513 81.21
17  75.235
117 49.112
69  59.019
20  90.03

如果只需要系數,則僅使用coef()方法,該方法會減少計算量。

例:

mydata <- readr::read_table("to  RealAge
513 59.608
513 84.18
0   85.23
119 74.764
116 65.356
0   89.03
513 92.117
69  70.243
253 88.482
88  64.23
513 64
4   84.03
65  65.246
69  81.235
513 87.663
513 81.21
17  75.235
117 49.112
69  59.019
20  90.03")[rep(1:20, 3000), ]

mylogit <- nnet::multinom(to ~ RealAge, mydata)
system.time(output <- summary(mylogit))          # 6 sec
all.equal(output$coefficients, coef(mylogit))    # TRUE & super fast

如果您對summary()函數進行summary() ,您會發現大部分時間都由crossprod()函數crossprod() 因此,如果您確實需要summary()函數的輸出,則可以使用優化的數學庫,例如Microsoft R Open提供的MKL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM