캐럿 이후에 RSNNS 버전이로드되었으므로 RSNNS::train()
이 caret::train()
을 마스킹하는 것이 문제입니다. 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 mailing list (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 /) 웹 사이트를 방문하십시오. –