使用purrr提高批量预测的速度
我正在读一篇关于批量预测的文章,想加快速度。我尝试使用使用purrr提高批量预测的速度,r,forecasting,purrr,R,Forecasting,Purrr,我正在读一篇关于批量预测的文章,想加快速度。我尝试使用purr,但只减少了不到一半的时间。下面是一个可复制的示例,显示了Hyndman博客文章中的示例,并显示了purr备选方案。我怎样才能减少这段时间 library(forecast) library(tidyverse) library(purrr) #read file retail <- read.csv("https://robjhyndman.com/data/ausretail.csv",header=FALSE) # hy
purr
,但只减少了不到一半的时间。下面是一个可复制的示例,显示了Hyndman博客文章中的示例,并显示了purr
备选方案。我怎样才能减少这段时间
library(forecast)
library(tidyverse)
library(purrr)
#read file
retail <- read.csv("https://robjhyndman.com/data/ausretail.csv",header=FALSE)
# hyndmans loop
retail <- ts(retail[,-1],f=12,s=1982+3/12)
ns <- ncol(retail)
h <- 24
fcast <- matrix(NA,nrow=h,ncol=ns)
system.time(
for(i in 1:ns)
fcast[,i] <- forecast(retail[,i],h=h)$mean
)
# user system elapsed
# 60.14 0.17 61.72
# purrr try
system.time(
retail_forecast <- retail %>%
as_tibble() %>%
map(~ts(.,frequency = 7)) %>%
map_dfc(~forecast(.,h=h)$mean))
# user system elapsed
# 32.23 0.03 35.32
库(预测)
图书馆(tidyverse)
图书馆(purrr)
#读取文件
零售您可以使用该软件包并行化purrr
函数。以下是软件包页面的摘录
furr
的目标是简化purr
的映射函数系列和未来的
并行处理功能的组合。已经定义了一组新的future\u map_*()
函数,可以(希望)作为相应map_*()
函数的插入式替换
该代码大量借鉴了purr
和future.apply的实现
使用furr
我能够在我的Linux机器上减少3倍以上的计算时间
库(预测)
图书馆(tidyverse)
###读取文件
如果使用频率=12而不是不正确的频率=7,零售purrr几乎与使用环路相同。Furr仍然非常快。更改频率将改变计算时间。频率越小速度越快。使频率=12,purr结果几乎与循环相同。