問題は、がマスキングcaret::train()
です。なぜなら、キャレットの後にRSNNSバージョンがロードされたからです。 packageName::function()
の構文を使用してcaret::train()
を呼び出して、問題を解決します。
library(caret)
library(RSNNS)
library(mlbench)
data(Sonar)
inTraining <- createDataPartition(Sonar$Class, p = .75, list=FALSE)
training <- Sonar[inTraining,]
testing <- Sonar[-inTraining,]
fitControl <- trainControl(method = "cv",
number = 3)
# error because RSNNS::train does not work like caret::train()
system.time(fit <- train(Class ~ ., method="rf",data=Sonar,trControl = fitControl))
# correct by calling caret::train()
system.time(fit <- caret::train(Class ~ ., method="rf",data=Sonar,trControl = fitControl))
fit
...と出力:
> system.time(fit <- train(Cx=Sonar[,-61],y=Sonar[,61], method="rf",data=Sonar,trControl = fitControl))
Error in UseMethod("train") :
no applicable method for 'train' applied to an object of class "data.frame"
Timing stopped at: 0.033 0 0.034
> # correct by calling caret::train()
> system.time(fit <- caret::train(x=Sonar[,-61],y=Sonar[,61], method="rf",data=Sonar,trControl = fitControl))
user system elapsed
3.888 0.069 3.981
> fit
Random Forest
208 samples
60 predictor
2 classes: 'M', 'R'
No pre-processing
Resampling: Cross-Validated (3 fold)
Summary of sample sizes: 139, 138, 139
Resampling results across tuning parameters:
mtry Accuracy Kappa
2 0.8175983 0.6292393
31 0.7645963 0.5249374
60 0.7694272 0.5336925
Accuracy was used to select the optimal model using the largest value.
The final value used for the model was mtry = 2.
>
が魅力のように働きました!ありがとう!私はなぜそれがどこにも書かれていないのだろうかと思う。 – Mark2Bra
@ Mark2Bra - これは少なくとも2002年の[r helpメーリングリスト](https://stat.ethz.ch/pipermail/r-help/2002-April/020891.html)に基づいた、少なくとも15歳の問題です。 。 'packageName :: function()'構文の使用方法は、[UCLAデジタル研究教育機関](https://stats.idre.ucla.edu/r)のこの記事のように、複数の場所で文書化されています。/faq/how-does-r-handle-overlapping-object-names /)のウェブサイトを参照してください。 –