3

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       

質問:

  1. Rstudioデフォルトの R コンソールと Rstudio の 2 つの sessionInfo() 出力に基づいて、デフォルトの R コンソールでうまく機能したため、 との相互作用が必要です。違いはcompilerパッケージでした。 奇妙なことに、この pkg はCRANでは見つかりません。ここでメモを見つけました: Rstudio: 次のエラー メッセージで実行できませんでした:

    エラー: パッケージ 'compiler' は R 3.0.0 より前にビルドされました: 再インストールしてください

更新
コンパイラ パッケージ ライブラリをデフォルトの R lib パスから Rstudio lib パスにコピー アンド ペーストした後、最終的に Rstudio で動作しましたが、それでも時間が長すぎます (約 8 分)。並列処理の別の質問を投稿します。以下のハードウェアとウィンドウがあれば、答えをより早く見つけるのに役立つ場合があります。

  1. 私のラップトップは 2.1GHz デュアル コア プロセッサ、3GB、windows 32bitですが、train()関数で並列処理を行う方法はありますか? このための R コードを発行していただけますか。本当に感謝いたします。
4

2 に答える 2

1

キャレット コード ベースは、doMC やその他の「do」パッケージから完全に独立しています。ここでテストする Windows システムはありませんが、これが再現可能な問題ではないことは 99% 確信しています。このパッケージは、いくつかの場所 (R-Forge など) で夜間にテストされ、Windows を含む 3 ~ 4 の異なる OS でテストされます。Windows のみを使用して大勢の聴衆にパッケージに関するクラスを教えたときでさえ、この問題が発生するのを見たことがありません。

私の推測では、誤ってどこかで doMC 関数を呼び出した可能性があります (それが sessionInfo アウトにリストされていなかったとしても)。

他の誰かがこのエラーを再現できると助かります。

ありがとう、

マックス

于 2014-01-01T21:48:04.210 に答える
1

アップグレード R

    sudo su
    echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu precise/" >> /etc/apt/sources.list
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
    apt-get update
    apt-get upgrade
于 2016-02-17T13:16:49.793 に答える