caretのtrain関数はAMOREの同じ関数によってマスクされており、caret[duplicate]を使用して"AMORE"メソッドを動作させることはできません

StackOverflow https://stackoverflow.com//questions/21031099

  •  21-12-2019
  •  | 
  •  

質問

Rstudioで実行したコードは次のとおりです:

library(caret)
set.seed(1)
demo <-data.frame(x1 = runif(100),x2 <- rnorm(100),y <- rbinom(100,1,0.3))
modelout <- try(train(y~.,data = demo,
                  method = "AMORE"),silent = FALSE)

出力は次のようになります:

Loading required package: AMORE
Attaching package: ‘AMORE’
The following object is masked from ‘package:caret’:
   train
Error in order(x$nhid) : argument 1 is not a vector
In addition: There were 50 or more warnings (use warnings() to see the first 50)

警告メッセージは、"AMORE"パッケージの"train"機能に関連しています。私が入力した場合

>train

上記のコードを実行した後のコマンドウィンドウで、AMOREパッケージから明らかなこの関数の本体を取得します。

function (net, P, T, Pval = NULL, Tval = NULL, error.criterium = "LMS", 
   report = TRUE, n.shows, show.step, Stao = NA, prob = NULL, 
   n.threads = 0L) 
{...
}
<environment: namespace:AMORE>

私は私のパスを検索し、明らかにアモーレはキャレットの前に表示されます:

>search()

[1] ".GlobalEnv"        "package:AMORE"     "package:caret"     "package:ggplot2"           "package:lattice"  
 [6] "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices" "package:utils"    
[11] "package:datasets"  "package:methods"   "Autoloads"         "package:base"

そして、以下は私のsessioninfoです:

R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-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] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] AMORE_0.2-14    caret_6.0-21    ggplot2_0.9.3.1 lattice_0.20-24

loaded via a namespace (and not attached):
[1] car_2.0-19         codetools_0.2-8    colorspace_1.2-4   compiler_3.0.2     dichromat_2.0-0   
[6] digest_0.6.4       foreach_1.4.1      grid_3.0.2         gtable_0.1.2       iterators_1.0.6   
[11] labeling_0.2       MASS_7.3-29        munsell_0.4.2      nnet_7.3-7         plyr_1.8          
[16] proto_0.3-10       RColorBrewer_1.0-5 reshape2_1.2.2     scales_0.2.3       stringr_0.6.2     
[21] tools_3.0.2

Rが「AMORE」の「caret」の「train」関数ではなく「caret」の「train」関数を使用するように、問題をどのように解決する必要がありますか?あなたの時間をありがとうと任意の助けのために事前にありがとう。

JT

役に立ちましたか?

解決 2

私は関数のコピーを作成することによってそれを理解しました。はい、これは名前空間の問題です。関数traincを再定義した場合 <-caret::train、およびコードでtraincではなくtrainを使用して問題が解決されます。キャレット::trainを直接使用できない理由だけで好奇心旺盛!しかし、SethBの助けに感謝します。

他のヒント

名前空間を指定します。

caret::train()

library(caret)
set.seed(1)
demo <-data.frame(x1 = runif(100),x2 <- rnorm(100),y <- rbinom(100,1,0.3))
modelout <- try(caret::train(y~.,data = demo,
                  method = "AMORE"),silent = FALSE)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top