3

Rパッケージcaretを使用していますが、並列処理が機能しません。train関数からexampleを実行しようとすると、次のようになります。

library(mlbench)
data(BostonHousing)

library(doMC)
registerDoMC(2)

## NOTE: don't run models form RWeka when using
### multicore. The session will crash.

## The code for train() does not change:
set.seed(1)
usingMC <-  train(medv ~ .,
                  data = BostonHousing, 
                  "glmboost")

次のエラーが発生します。

Error in names(resamples) <- gsub("^\\.", "", names(resamples)) : 
  attempt to set an attribute on NULL

私はMacBookPro、2.3GHz IntelCorei5およびMacOSX10.6.8を搭載した2011年初頭のモデルを使用しています。

Rセッション情報:

Rバージョン2.13.0(2011-04-13)プラットフォーム:x86_64-apple-darwin9.8.0 / x86_64(64ビット)

添付の基本パッケージ:[1]統計グラフィックgrDevicesutils
データセットメソッドベース

その他の添付パッケージ:[1] caret_5.13-20 cluster_1.14.2 reshape_0.8.4 plyr_1.7.1lattice_0.19-33 mlbench_2.1-0
doMC_1.2.3 multicore_0.1-7 [9] foreach_1.3.2 codetools_0.2-8 iterators_1.0.5

名前空間を介してロードされます(接続されていません):[1]compiler_2.13.0 grid_2.13.0 rpart_3.1-51 tools_2.13.0

これを修正するために私にできることはありますか?

4

2 に答える 2

2
  1. あなたのエラーを再現できる人を見つけるのは難しいかもしれません:

    > sessionInfo ()
    R version 2.15.0 (2012-03-30)
    Platform: x86_64-pc-linux-gnu (64-bit)
    

    [...をちょきちょきと切る...]

    other attached packages:
     [1] mboost_2.1-2    caret_5.15-023  cluster_1.14.2  reshape_0.8.4  
     [5] plyr_1.7.1      lattice_0.20-6  doMC_1.2.5      multicore_0.1-7
     [9] iterators_1.0.6 foreach_1.4.0   mlbench_2.1-0          
    
    loaded via a namespace (and not attached):
    [1] codetools_0.2-8  compiler_2.15.0  grid_2.15.0      Matrix_1.0-6    
    [5] splines_2.15.0   survival_2.36-14 tools_2.15.0    
    

    できます。

  2. これは、おそらくコードを掘り下げる必要があることを意味し、traceback ()役立つdebug ()はずです。

于 2012-06-16T09:48:08.430 に答える
1

少なくとも 2.14.0 では問題を再現できません (下記参照)。

キャレットコードには、順次処理と並列処理のバージョンが異なるわけではないので、問題があったかどうかはわかりません。順次バージョンは動作しますか? 他のモデルはどうですか?新しいセッションもお試しいただけますか?

また、より良い結果を得るために、パッケージのメンテナーに直接メールを送信することをお勧めします (あなたがメールを送った場合や、私が見逃した場合を除きます)。

> library(caret)

<-中略->

> library(mlbench)
> data(BostonHousing)
> 
> library(doMC)

<-中略->

> registerDoMC(2)
> 
> ## NOTE: don't run models form RWeka when using
> ### multicore. The session will crash.
> 
> ## The code for train() does not change:
> set.seed(1)
> usingMC <-  train(medv ~ .,
+                   data = BostonHousing, 
+                   "glmboost")
Warning message:
In glmboost.matrix(x = c(0.00632, 0.02731, 0.02729, 0.03237, 0.06905,  :
  model with centered covariates does not contain intercept
> usingMC
506 samples
 13 predictors

No pre-processing
Resampling: Bootstrap (25 reps) 

Summary of sample sizes: 506, 506, 506, 506, 506, 506, ... 

Resampling results across tuning parameters:

  mstop  RMSE  Rsquared  RMSE SD  Rsquared SD
  50     5.44  0.663     0.484    0.0661     
  100    5.33  0.675     0.518    0.0669     
  150    5.27  0.681     0.526    0.0661     

Tuning parameter 'prune' was held constant at a value
 of 'no'
RMSE was used to select the optimal model using 
 the smallest value.
The final values used for the model were mstop = 150
 and prune = no. 
> sessionInfo()
R version 2.14.0 (2011-10-31)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets 
[6] methods   base     

other attached packages:
 [1] mboost_2.1-1    doMC_1.2.5      multicore_0.1-7
 [4] iterators_1.0.5 mlbench_2.1-0   caret_5.15-023 
 [7] foreach_1.4.0   cluster_1.14.1  reshape_0.8.4  
[10] plyr_1.7.1      lattice_0.20-0 

loaded via a namespace (and not attached):
[1] codetools_0.2-8  compiler_2.14.0  grid_2.14.0     
[4] Matrix_1.0-3     splines_2.14.0   survival_2.36-10
[7] tools_2.14.0  
于 2012-06-17T15:07:04.103 に答える