Rのキャレットパッケージで予測モデルを作成しようとしていて、端末/ cmdから新しいデータを予測しています。ここでは再現性の例である:Rscript - 実行時間が長い
# Sonar_training.R
## learning and saving model
library(caret)
library(mlbench)
data(Sonar)
set.seed(107)
inTrain <- createDataPartition(y = Sonar$Class, p = .75,list = FALSE)
training <- Sonar[ inTrain,]
testing <- Sonar[-inTrain,]
saveRDS(testing,"test.rds")
ctrl <- trainControl(method = "repeatedcv",
repeats = 3)
plsFit <- train(Class ~ .,data = training,method = "pls",
tuneLength = 15,
trControl = ctrl,
preProc = c("center", "scale"))
plsClasses <- predict(plsFit, newdata = testing)
saveRDS(plsFit,"fit.rds")
そしてここRscript.exeで起動するためのスクリプトです:私は、次の文を使用して、端末でこれを実行する
# script.R
##reading model and predict test data
t <- Sys.time()
pls <- readRDS("fit.rds")
testing <- readRDS("test.rds")
head(predict(pls, newdata = testing))
print(Sys.time() - t)
:
[email protected]:~$ Rscript script.R
Loading required package: pls
Attaching package: ‘pls’
The following object is masked from ‘package:stats’:
loadings
[1] M M R M R R
Levels: M R
Time difference of 2.209697 secs
方法はありますより速く/より効率的にするには?例えば、実行ごとにパッケージをロードしない可能性はありますか? readRDSは、この場合のモデルの読み込みに適していますか?
コードをプロファイルします。 – Roland