Max Kuhn と Kjell Johnson による非常に優れた本「Applied Predictive Modeling」の例を見て回っていましたが、残念ながら、train()
関数を使用した例の 1 つと、サポートの相互検証用パッケージGermanCredit
によって提供されたデータセットの 1 つに行き詰まりました。caret
ベクター マシン:
library(AppliedPredictiveModeling)
library(caret)
# preparing the data
data(GermanCredit)
GermanCredit <- GermanCredit[, -nearZeroVar(GermanCredit)]
GermanCredit$CheckingAccountStatus.lt.0 <- NULL
GermanCredit$SavingsAccountBonds.lt.100 <- NULL
GermanCredit$EmploymentDuration.lt.1 <- NULL
GermanCredit$EmploymentDuration.Unemployed <- NULL
GermanCredit$Personal.Male.Married.Widowed <- NULL
GermanCredit$Property.Unknown <- NULL
GermanCredit$Housing.ForFree <- NULL
set.seed(100)
inTrain <- createDataPartition(GermanCredit$Class, p = .8)[[1]]
GermanCreditTrain <- GermanCredit[ inTrain, ]
GermanCreditTest <- GermanCredit[-inTrain, ]
# Grid selection for `sigma` and `cost` tuning parameters:
library(kernlab)
set.seed(231)
sigDist <- sigest(Class ~ ., data = GermanCreditTrain, frac = 1)
svmTuneGrid <- data.frame(.sigma = sigDist[1], .C = 2^(-2:7))
# SVM classification and cross-validation
svmFit <- train(Class ~ .,
data = GermanCreditTrain,
method = "svmRadial",
preProc = c("center", "scale"),
tuneGrid = svmTuneGrid,
trControl = trainControl(method = "repeatedcv", repeats = 5,
classProbs = TRUE))
そして、このエラーがスローされました:
Error in comp(expr, env = envir, options = list(suppressUndefined = TRUE)) :
could not find function "makeCenv"
時々このエラーメッセージ:
Loading required package: class
Warning: namespace ‘compiler’ is not available and has been replaced
by .GlobalEnv when processing object ‘GermanCredit’
Error in comp(expr, env = envir, options = list(suppressUndefined = TRUE)) :
could not find function "makeCenv"
In addition: Warning message:
executing %dopar% sequentially: no parallel backend registered
makeCenv()
それから、並列計算または並列処理の代替として提案されたパッケージに含まれていることを知りましたdoMC
が、Windows プラットフォームでは使用できないため、このパッケージには行かないでしょう。代替案はありますか?
更新:
これらのエラーは、コードが で実行された場合にのみRstudio IDE
表示されました。デフォルトの R コンソールからは問題がなかったため、問題は Rstudio に限定されていると思います。R コンソールでは少し時間がかかりましたが (約 8 分)、以下に示すハードウェア スペックを考えると、どうすれば高速化できるのでしょうか。
私の sessioninfo() 出力はここにあります (Rstudio):
R version 3.0.2 (2013-09-25)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] datasets grid splines utils stats graphics grDevices methods
[9] base
other attached packages:
[1] proxy_0.4-10 e1071_1.6-1
[3] class_7.3-9 kernlab_0.9-19
[5] caret_5.17-7 foreach_1.4.1
[7] AppliedPredictiveModeling_1.1-4 CORElearn_0.9.42
[9] rpart_4.1-3 xtable_1.7-1
[11] knitr_1.5 texreg_1.30
[13] pastecs_1.3-15 boot_1.3-9
[15] gridExtra_0.9.1 reshape2_1.2.2
[17] plyr_1.8 scales_0.2.3
[19] ggplot2_0.9.3.1 vcdExtra_0.5-11
[21] gnm_1.0-6 vcd_1.3-1
[23] corrplot_0.73 RColorBrewer_1.0-5
[25] car_2.0-19 Hmisc_3.13-0
[27] Formula_1.1-1 cluster_1.14.4
[29] xlsx_0.5.5 xlsxjars_0.5.0
[31] rJava_0.9-5 lmPerm_1.1-2
[33] coin_1.0-23 survival_2.37-4
[35] GPArotation_2012.3-1 psych_1.3.12
[37] sos_1.3-8 brew_1.0-6
[39] data.table_1.8.10 mice_2.18
[41] nnet_7.3-7 MASS_7.3-29
[43] lattice_0.20-23
loaded via a namespace (and not attached):
[1] codetools_0.2-8 colorspace_1.2-4 dichromat_2.0-0 digest_0.6.4
[5] evaluate_0.5.1 formatR_0.10 gtable_0.1.2 iterators_1.0.6
[9] labeling_0.2 Matrix_1.1-0 modeltools_0.2-21 munsell_0.4.2
[13] mvtnorm_0.9-9996 proto_0.3-10 qvcalc_0.8-8 relimp_1.0-3
[17] stats4_3.0.2 stringr_0.6.2 tcltk_3.0.2 tools_3.0.2
デフォルトの R コンソールからの sessionInfo() 出力:
R version 3.0.2 (2013-09-25)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] datasets grDevices grid splines graphics utils stats
[8] methods base
other attached packages:
[1] e1071_1.6-1 class_7.3-9 kernlab_0.9-19 caret_5.17-7
[5] foreach_1.4.1 cluster_1.14.4 lattice_0.20-23 reshape2_1.2.2
[9] plyr_1.8 scales_0.2.3 ggplot2_0.9.3.1 lmPerm_1.1-2
[13] coin_1.0-23 survival_2.37-4 sos_1.3-8 brew_1.0-6
loaded via a namespace (and not attached):
[1] codetools_0.2-8 colorspace_1.2-4 compiler_3.0.2 dichromat_2.0-0
[5] digest_0.6.3 gtable_0.1.2 iterators_1.0.6 labeling_0.2
[9] MASS_7.3-29 modeltools_0.2-21 munsell_0.4.2 mvtnorm_0.9-9996
[13] proto_0.3-10 RColorBrewer_1.0-5 stats4_3.0.2 stringr_0.6.2
[17] tools_3.0.2
質問:
Rstudio
デフォルトの R コンソールと Rstudio の 2 つの sessionInfo() 出力に基づいて、デフォルトの R コンソールでうまく機能したため、 との相互作用が必要です。違いはcompiler
パッケージでした。 奇妙なことに、この pkg はCRANでは見つかりません。ここでメモを見つけました: Rstudio: 次のエラー メッセージで実行できませんでした:エラー: パッケージ 'compiler' は R 3.0.0 より前にビルドされました: 再インストールしてください
更新
コンパイラ パッケージ ライブラリをデフォルトの R lib パスから Rstudio lib パスにコピー アンド ペーストした後、最終的に Rstudio で動作しましたが、それでも時間が長すぎます (約 8 分)。並列処理の別の質問を投稿します。以下のハードウェアとウィンドウがあれば、答えをより早く見つけるのに役立つ場合があります。
- 私のラップトップは 2.1GHz デュアル コア プロセッサ、3GB、windows 32bitですが、
train()
関数で並列処理を行う方法はありますか? このための R コードを発行していただけますか。本当に感謝いたします。